| | |
| | | |
| | | @classmethod |
| | | def init(cls, trade_action_callback: TradeActionCallback, |
| | | queue_strategy_trade_read_for_trade: multiprocessing.Queue): |
| | | queue_strategy_trade_read_for_trade: multiprocessing.Queue, |
| | | queue_strategy_w_trade_r_for_query: multiprocessing.Queue): |
| | | cls.action_callback = trade_action_callback |
| | | cls.queue_strategy_w_trade_r = queue_strategy_trade_read_for_trade |
| | | cls.queue_strategy_w_trade_r_for_query = queue_strategy_w_trade_r_for_query |
| | | |
| | | @classmethod |
| | | def process_command(cls, _type, client_id, result_json, sk=None): |
| | |
| | | # 维护连接数的稳定 |
| | | def run(self, blocking=True): |
| | | if blocking: |
| | | threading.Thread(target=lambda: self.run_process_command(self.queue_strategy_w_trade_r_for_query), |
| | | daemon=True).start() |
| | | self.run_process_command(self.queue_strategy_w_trade_r) |
| | | else: |
| | | # 接受命令 |
| | | t1 = threading.Thread(target=lambda: self.run_process_command(self.queue_strategy_w_trade_r), daemon=True) |
| | | t1.start() |
| | | |
| | | threading.Thread(target=lambda: self.run_process_command(self.queue_strategy_w_trade_r), daemon=True).start() |
| | | threading.Thread(target=lambda: self.run_process_command(self.queue_strategy_w_trade_r_for_query), |
| | | daemon=True).start() |
| | | |
| | | # L2指令管理 |
| | | class L2CommandManager: |
| | |
| | | pass |
| | | |
| | | |
| | | def run(queue_strategy_w_trade_r, queue_result): |
| | | def run(queue_strategy_w_trade_r, queue_strategy_w_trade_r_for_query, queue_result): |
| | | """ |
| | | 交易运行 |
| | | :param queue_strategy_w_trade_r: |
| | |
| | | tradeCommandManager = TradeCommandManager() |
| | | tradeCommandManager.init( |
| | | data_callback, |
| | | queue_strategy_w_trade_r) |
| | | queue_strategy_w_trade_r, queue_strategy_w_trade_r_for_query) |
| | | logger_info.debug("全部初始化完成") |
| | | tradeCommandManager.run(True) |
| | | while True: |
| | |
| | | # ===========运行交易外部API========== |
| | | # 策略与交易通信队列 |
| | | # 交易结果读取, 交易命令队列与交易查询队列设置为同一个 |
| | | queue_strategy_r_trade_w, queue_strategy_w_trade_r = multiprocessing.Queue(), multiprocessing.Queue() |
| | | huaxin_trade_api.run_trade(queue_strategy_r_trade_w, queue_strategy_w_trade_r, queue_strategy_w_trade_r) |
| | | queue_strategy_r_trade_w, queue_strategy_w_trade_r, queue_strategy_w_trade_r_for_query = multiprocessing.Queue(), multiprocessing.Queue(), multiprocessing.Queue() |
| | | huaxin_trade_api.run_trade(queue_strategy_r_trade_w, queue_strategy_w_trade_r, queue_strategy_w_trade_r_for_query) |
| | | # 华鑫交易数据更新 |
| | | huaxin_trade_data_update.run() |
| | | |
| | | # ===========运行交易端========== |
| | | tradeProcess = multiprocessing.Process( |
| | | target=trade_client_for_cb.run, |
| | | args=(queue_strategy_w_trade_r, queue_strategy_r_trade_w,)) |
| | | args=(queue_strategy_w_trade_r, queue_strategy_w_trade_r_for_query, queue_strategy_r_trade_w,)) |
| | | tradeProcess.start() |
| | | |
| | | # ===========运行本地API接口========== |