Administrator
2023-02-16 92cb2dd75ea37b64b174f42ddd0b5b17d6a4634a
trade/trade_manager.py
@@ -32,6 +32,8 @@
guiTrade = THSGuiTrade()
latest_trade_delegate_data = []
# 获取交易状态
def get_trade_state(code):
@@ -338,6 +340,7 @@
        _time = data["time"]
        if _time == "00:00:00":
            continue
        # 买入成功
        if code is not None and int(data["type"]) == 0:
            l2_trade_util.forbidden_trade(code)
            state = get_trade_state(code)
@@ -349,15 +352,24 @@
                l2_data_manager.TradePointManager.delete_buy_point(code)
                # 移除交易窗口分配
                THSBuyWinManagerNew.cancel_distribute_win_for_code(code)
                # TODO 完全成交后移除L2
            # 交易成功时间过去3s之后,且当前委托列表里面还有该代码数据就再次执行撤单
            if tool.trade_time_sub(tool.get_now_time_str(), _time) > 3:
                # 获取到当前是否委托
                for dd in latest_trade_delegate_data:
                    if dd["code"] == code:
                        logger_trade.info("{}交易成功触发,重复下单撤单".format(code))
                        start_cancel_buy(code, True)
# 处理委托成功数据
def process_trade_delegate_data(datas):
    if datas is None:
        return None
    latest_trade_delegate_data.clear()
    latest_trade_delegate_data.extend(datas)
    codes = []
    for data in datas:
        code = data["code"]
        if code is not None:
            codes.append(code)