| | |
| | | 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 |
| | |
| | | self.acceptTime = acceptTime |
| | | self.direction = direction |
| | | self.is_shadow_order = is_shadow_order |
| | | self.sinfo = sinfo |
| | | |
| | | |
| | | class CancelOrderManager: |
| | |
| | | |
| | | # 返回是否要监控撤单 |
| | | @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 |