Administrator
2025-05-21 b77b1d2de85ccbb2de9e6e0cb173a31f76315b60
trade/huaxin_trade_order_processor.py
@@ -17,7 +17,7 @@
class HuaxinOrderEntity:
    def __init__(self, code, orderStatus, orderRef, accountID, orderSysID, direction=None, insertDate=None,
                 insertTime=None,
                 acceptTime=None, is_shadow_order=False):
                 acceptTime=None, is_shadow_order=False, sinfo=None):
        self.code = code
        self.orderStatus = orderStatus
        self.orderRef = orderRef
@@ -28,6 +28,7 @@
        self.acceptTime = acceptTime
        self.direction = direction
        self.is_shadow_order = is_shadow_order
        self.sinfo = sinfo
class CancelOrderManager:
@@ -114,18 +115,24 @@
    # 返回是否要监控撤单
    @classmethod
    def process_sell_order(cls, order: HuaxinOrderEntity):
        # 处理卖单
        if order.direction != str(huaxin_util.TORA_TSTP_D_Sell):
    def is_need_watch_cancel(cls, order: HuaxinOrderEntity):
        # 机器买入的不能撤单
        if order.sinfo.find("ba_") == 0:
            return False
        # if order.direction != str(huaxin_util.TORA_TSTP_D_Sell):
        #     return False
        cls.order_ref_dict[order.orderRef] = order
        # 下单时间在9:30以后的如果2s没成交就撤单
        if tool.trade_time_sub(order.insertTime, "09:30:00") >= 0 and str(
                order.orderStatus) == huaxin_util.TORA_TSTP_OST_Accepted:
            sell_mode = AutoCancelSellModeManager().get_mode_cache(order.code)
            if sell_mode == AutoCancelSellModeManager.MODE_CANCEL_MECHINE and order.orderRef < 90000:
                # 只撤机器的单
            if sell_mode == AutoCancelSellModeManager.MODE_CANCEL_MECHINE:
                # 不撤手动买入/卖出的单
                if order.orderRef < 90000:
                    # 非系统单
                    return False
                return False
            return True
        return False