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'))
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'交易接口连接成功')
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)
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'))
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()