| | |
| | | |
| | | # 交易服务 |
| | | from third_data import data_server |
| | | from trade.huaxin import trade_server, trade_api_server |
| | | from trade.huaxin import huaxin_trade_server, huaxin_trade_api_server |
| | | |
| | | |
| | | # from huaxin_api import trade_client, l2_client, l1_client |
| | |
| | | t1.start() |
| | | # |
| | | # 交易接口服务 |
| | | t1 = threading.Thread(target=trade_api_server.run, name="trade_api_server", args=(pipe_server, pipe_l2), |
| | | t1 = threading.Thread(target=huaxin_trade_api_server.run, name="trade_api_server", args=(pipe_server, pipe_l2), |
| | | daemon=True) |
| | | t1.start() |
| | | # |
| | |
| | | # |
| | | # 启动L2订阅服务 |
| | | t1 = threading.Thread(target=huaxin_client.l2_client.run, name="l2_client", |
| | | args=(ptl2_l2, psl2_l2, trade_server.my_l2_data_callback), |
| | | args=(ptl2_l2, psl2_l2, huaxin_trade_server.my_l2_data_callback), |
| | | daemon=True) |
| | | t1.start() |
| | | # |
| | | # 启动华鑫交易服务 |
| | | trade_server.run(pipe_trade, pipe_l1, pipe_l2, queue_strategy_trade) |
| | | huaxin_trade_server.run(pipe_trade, pipe_l1, pipe_l2, queue_strategy_trade) |
| | | |
| | | |
| | | # 主服务 |
| | |
| | | TradeOrderIdManager().remove_order_id(d['securityID'], |
| | | d['accountID'], |
| | | d['orderSysID']) |
| | | if huaxin_util.is_deal(d["orderStatus"]): |
| | | # 成交之后处理 |
| | | trade_manager.buy_success(d['securityID']) |
| | | if codes: |
| | | try: |
| | | trade_manager.process_trade_delegate_data([{"code": c} for c in codes]) |
| | |
| | | finally: |
| | | RedisUtils.realse(redis_l2) |
| | | |
| | | # 买入成功 |
| | | def buy_success(code): |
| | | # 加入黑名单 |
| | | l2_trade_util.forbidden_trade(code,"buy success") |
| | | # 取消所有的挂单 |
| | | if constant.API_TRADE_ENABLE: |
| | | if constant.TRADE_WAY == constant.TRADE_WAY_JUEJIN: |
| | | trade_juejin.cancel_order(code) |
| | | elif constant.TRADE_WAY == constant.TRADE_WAY_HUAXIN: |
| | | trade_huaxin.cancel_order(code) |
| | | else: |
| | | guiTrade.cancel_buy(code) |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | print(CodesTradeStateManager().get_codes_by_trade_states_cache([0, 1])) |