Пример #1
0
 def setUpClass(cls):
     config = AppConfig.get_config()
     cls.hk_ctx = ft.OpenHKTradeContext(config.get('ftserver', 'host'),
                                        int(config.get('ftserver', 'port')))
     cls.us_ctx = ft.OpenUSTradeContext(config.get('ftserver', 'host'),
                                        int(config.get('ftserver', 'port')))
     cls.hk_trade = Trade(cls.hk_ctx)
     cls.us_trade = Trade(cls.us_ctx)
     cls.hk_trade.unlock_trade(None, config.get('ftserver', 'decipher'))
     cls.us_trade.unlock_trade(None, config.get('ftserver', 'decipher'))
Пример #2
0
    def connectTrade(self):
        """连接交易功能"""
        # 连接交易接口
        if self.market == 'US':
            self.tradeCtx = ft.OpenUSTradeContext(self.host, self.port)
            OrderHandlerBase = USTradeOrderHandlerBase
            DealHandlerBase = USTradeDealHandlerBase
        else:
            self.tradeCtx = ft.OpenHKTradeContext(self.host, self.port)
            OrderHandlerBase = HKTradeOrderHandlerBase
            DealHandlerBase = HKTradeDealHandlerBase

        # 继承实现处理器类
        class OrderHandler(OrderHandlerBase):
            """委托处理器"""
            gateway = self  # 缓存Gateway对象

            def on_recv_rsp(self, rsp_str):
                ret_code, content = super(OrderHandler,
                                          self).on_recv_rsp(rsp_str)
                if ret_code != RET_OK:
                    return RET_ERROR, content
                self.gateway.processOrder(content)
                return RET_OK, content

        class DealHandler(DealHandlerBase):
            """订单簿处理器"""
            gateway = self

            def on_recv_rsp(self, rsp_str):
                ret_code, content = super(DealHandler,
                                          self).on_recv_rsp(rsp_str)
                if ret_code != RET_OK:
                    return RET_ERROR, content
                self.gateway.processDeal(content)
                return RET_OK, content

        # 只有港股实盘交易才需要解锁
        if self.market == 'HK' and self.env == 0:
            self.tradeCtx.unlock_trade(self.password)

        # 设置回调处理对象
        self.tradeCtx.set_handler(OrderHandler())
        self.tradeCtx.set_handler(DealHandler())

        # 启动交易接口
        self.tradeCtx.start()

        # 订阅委托推送
        self.tradeCtx.subscribe_order_deal_push([],
                                                order_deal_push=True,
                                                envtype=self.env)

        self.writeLog(u'交易接口连接成功')
Пример #3
0
def main():
    global hk_ctx
    global us_ctx
    config = AppConfig.get_config()
    total = config.get('quota', 'total')
    kline = config.get('quota', 'kline')
    tiker = config.get('quota', 'ticker')
    quote = config.get('quota', 'quote')
    order_book = config.get('quota', 'order_book')
    rt_data = config.get('quota', 'rt_data')
    broker = config.get('quota', 'broker')

    hk_ctx = ft.OpenHKTradeContext(config.get('ftserver', 'host'), int(config.get('ftserver', 'port')))
    hk_trade = Trade(hk_ctx)
    hk_trade.unlock_trade(None,config.get('ftserver', 'decipher'))
    hk_trade_task(hk_trade)

    us_ctx = ft.OpenUSTradeContext(config.get('ftserver', 'host'), int(config.get('ftserver', 'port')))
    us_trade = Trade(us_ctx)
    us_trade.unlock_trade(None, config.get('ftserver', 'decipher'))
    us_trade_task(us_trade)
Пример #4
0
def main():
    global lf_ctx
    global hf_ctx
    global hk_ctx
    global us_ctx
    config = AppConfig.get_config()
    total = config.get('quota', 'total')
    kline = config.get('quota', 'kline')
    tiker = config.get('quota', 'ticker')
    quote = config.get('quota', 'quote')
    order_book = config.get('quota', 'order_book')
    rt_data = config.get('quota', 'rt_data')
    broker = config.get('quota', 'broker')
    lf_ctx = ft.OpenQuoteContext(config.get('ftserver', 'host'),
                                 int(config.get('ftserver', 'port')))
    lf_ctx.start()
    lf = LF(lf_ctx)
    #lf_task(lf)

    hf_ctx = ft.OpenQuoteContext(config.get('ftserver', 'host'),
                                 int(config.get('ftserver', 'port')))
    hf_ctx.start()
    sub = Subscribe(hf_ctx, total, kline, tiker, quote, order_book, rt_data,
                    broker)
    hf = HF(hf_ctx, sub)
    hf_task(hf)

    hk_ctx = ft.OpenHKTradeContext(config.get('ftserver', 'host'),
                                   int(config.get('ftserver', 'port')))
    hk_trade = Trade(hk_ctx)
    hk_trade.unlock_trade(None, config.get('ftserver', 'decipher'))
    #hk_trade_task(hk_trade)

    us_ctx = ft.OpenUSTradeContext(config.get('ftserver', 'host'),
                                   int(config.get('ftserver', 'port')))
    us_trade = Trade(us_ctx)
    us_trade.unlock_trade(None, config.get('ftserver', 'decipher'))
Пример #5
0
    def __init__(self):
        '''
        QE Engine Init
        '''
        config = AppConfig.get_config()
        self.config = config
        quote_ctx = ft.OpenQuoteContext(config.get('ftserver', 'host'),
                                        int(config.get('ftserver', 'port')))
        self.quote_ctx = quote_ctx
        self.tradehk_ctx = ft.OpenHKTradeContext(
            config.get('ftserver', 'host'), int(config.get('ftserver',
                                                           'port')))
        self.tradeus_ctx = ft.OpenUSTradeContext(
            config.get('ftserver', 'host'), int(config.get('ftserver',
                                                           'port')))
        self.decipher = config.get('ftserver', 'decipher')

        total = config.get('quota', 'total')
        kline = config.get('quota', 'kline')
        tiker = config.get('quota', 'ticker')
        quote = config.get('quota', 'quote')
        order_book = config.get('quota', 'order_book')
        rt_data = config.get('quota', 'rt_data')
        broker = config.get('quota', 'broker')

        quote_ctx.start()
        self.lf = LF(quote_ctx)
        self.sub = Subscribe(quote_ctx, total, kline, tiker, quote, order_book,
                             rt_data, broker)
        self.hf = HF(quote_ctx, self.sub)
        self.hktrade = Trade(self.tradehk_ctx)
        self.hktrade.unlock_trade(self.decipher)
        self.ustrade = Trade(self.tradeus_ctx)
        self.ustrade.unlock_trade(self.decipher)
        self.queryhistory = QueryHistory(quote_ctx)
        self.mysqlService = MysqlService()