Administrator
2023-08-30 fb39b7c92ff945bdc445ef5c7f8013458d662aab
G撤bug修复
1个文件已修改
58 ■■■■■ 已修改文件
trade/huaxin/trade_server.py 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/trade_server.py
@@ -249,31 +249,7 @@
                            data = data_json["data"]
                            code = data["code"]
                            order_no = data["data"]
                            is_normal = l2_data_util.load_l2_data(code, load_latest=False)
                            volume_rate = code_volumn_manager.get_volume_rate(code)
                            volume_rate_index = code_volumn_manager.get_volume_rate_index(volume_rate)
                            m_val = \
                                L2PlaceOrderParamsManager(code, True, volume_rate, volume_rate_index, None).get_m_val()[
                                    0]
                            limit_up_price = gpcode_manager.get_limit_up_price(code)
                            m_val_num = int(m_val / (float(limit_up_price) * 100))
                            try:
                                need_cancel, msg = self.__GCancelBigNumComputer.start_cancel(code, f"{order_no}",
                                                                                             l2_data_util.local_today_datas.get(
                                                                                                 code),
                                                                                             l2_data_util.local_today_buyno_map.get(
                                                                                                 code),
                                                                                             l2_data_util.local_today_num_operate_map.get(
                                                                                                 code), m_val_num)
                                if need_cancel:
                                    # 需要撤单
                                    l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "G撤撤单", "G撤")
                                    logger_l2_g_cancel.info(f"{code}-需要撤单:{msg}")
                                else:
                                    logger_l2_g_cancel.info(f"{code}-不需要撤单:{msg}")
                            except Exception as e:
                                logger_l2_g_cancel.error(f"{code}-撤单异常:{str(e)}")
                            TradeServerProcessor.trading_order_canceled(code,order_no)
                        finally:
                            sk.sendall(socket_util.load_header(json.dumps({"code": 0}).encode(encoding='utf-8')))
@@ -294,6 +270,7 @@
class TradeServerProcessor:
    __TradeBuyQueue = transaction_progress.TradeBuyQueue()
    __KPLCodeJXBlockManager = KPLCodeJXBlockManager()
    __GCancelBigNumComputer = GCancelBigNumComputer()
    # 设置目标代码
    @classmethod
@@ -417,6 +394,33 @@
        hx_logger_l2_market_data.info(f"{code}#{data}")
    @classmethod
    def trading_order_canceled(cls, code, order_no):
        is_normal = l2_data_util.load_l2_data(code, load_latest=False)
        volume_rate = code_volumn_manager.get_volume_rate(code)
        volume_rate_index = code_volumn_manager.get_volume_rate_index(volume_rate)
        m_val = \
            L2PlaceOrderParamsManager(code, True, volume_rate, volume_rate_index, None).get_m_val()[
                0]
        limit_up_price = gpcode_manager.get_limit_up_price(code)
        m_val_num = int(m_val / (float(limit_up_price) * 100))
        try:
            need_cancel, msg = cls.__GCancelBigNumComputer.start_cancel(code, f"{order_no}",
                                                                         l2_data_util.local_today_datas.get(
                                                                             code),
                                                                         l2_data_util.local_today_buyno_map.get(
                                                                             code),
                                                                         l2_data_util.local_today_num_operate_map.get(
                                                                             code), m_val_num)
            if need_cancel:
                # 需要撤单
                l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "G撤撤单", "G撤")
                logger_l2_g_cancel.info(f"{code}-需要撤单:{msg}")
            else:
                logger_l2_g_cancel.info(f"{code}-不需要撤单:{msg}")
        except Exception as e:
            logger_l2_g_cancel.error(f"{code}-撤单异常:{str(e)}")
def clear_invalid_client():
    while True:
@@ -765,6 +769,10 @@
    def OnMarketData(self, code, datas):
        TradeServerProcessor.l2_market_data(code, datas)
    def OnTradingOrderCancel(self, code, buy_no):
        TradeServerProcessor.trading_order_canceled(code, buy_no)
class MyTradeResponse(TradeResponse):