Administrator
2023-09-06 1b849fc74b1b15095aa20f2a8021a35718c61bf9
优化下单/撤单日志记录
5个文件已修改
27 ■■■■ 已修改文件
huaxin_client/trade_client.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/cancel_buy_strategy.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_data_update.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_huaxin.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_manager.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/trade_client.py
@@ -89,6 +89,8 @@
            return
        if sinfo in self.__buy_sinfo_set:
            raise Exception(f'下单请求已经提交:{sinfo}')
        async_log_util.info(logger_local_huaxin_trade_debug,
                            f"进入买入方法:code-{code} sinfo-{sinfo}")
        self.__buy_sinfo_set.add(sinfo)
        self.req_id += 1
        # 请求报单
@@ -823,10 +825,12 @@
                try:
                    req_rid_dict[sinfo] = (client_id, request_id, sk, local_order_id)
                    self.__tradeSimpleApi.buy(code, volume, price, sinfo)
                except Exception as e:
                    send_response(json.dumps({"code": 1, "msg": str(e)}), TYPE_ORDER, client_id,
                                  request_id)
                async_log_util.info(logger_local_huaxin_trade_debug,
                                    f"买入结束:code-{code} sinfo-{sinfo}")
            elif direction == 2:
                try:
                    price_type = data["price_type"]
@@ -858,6 +862,8 @@
                        raise Exception("没有找到系统订单号")
                    req_rid_dict[sinfo] = (client_id, request_id, sk)
                    self.__tradeSimpleApi.cancel_buy(code, orderSysID, sinfo)
                    async_log_util.info(logger_local_huaxin_trade_debug,
                                        f"撤单结束:code-{code} order_sys_id-{orderSysID} sinfo-{sinfo}")
                except Exception as e:
                    send_response(json.dumps({"code": 1, "msg": str(e)}), TYPE_CANCEL_ORDER, client_id,
                                  request_id)
l2/cancel_buy_strategy.py
@@ -1200,7 +1200,7 @@
    # 开始撤单
    def start_cancel(self, code, buy_no, total_datas, buy_order_no_map, local_operate_map, m_val_num):
        thresh_num = int(m_val_num * 1.5)
        thresh_num = int(m_val_num * 1.8)
        place_order_index = self.__SecondCancelBigNumComputer.get_real_place_order_index_cache(code)
        if place_order_index is None:
            raise Exception("未获取到下单真实位置")
@@ -1224,7 +1224,7 @@
                        break
        if buy_nums > thresh_num:
            need_cancel = False
        return need_cancel, f"成交进度位({transaction_index})-真实下单位({place_order_index})  纯买手数:{buy_nums}/1.5倍m值手数:{thresh_num}"
        return need_cancel, f"成交进度位({transaction_index})-真实下单位({place_order_index})  纯买手数:{buy_nums}/1.8倍m值手数:{thresh_num}"
# --------------------------------封单额变化撤------------------------
trade/huaxin/huaxin_trade_data_update.py
@@ -7,6 +7,7 @@
import time
from l2 import cancel_buy_strategy
from log_module import async_log_util
from log_module.log import hx_logger_trade_debug, logger_system
from trade import trade_huaxin, trade_manager
from trade.huaxin import huaxin_trade_api, huaxin_trade_record_manager
@@ -109,7 +110,7 @@
def add_delegate_list(source, delay=0):
    __add_data({"type": "delegate_list", "delay": delay})
    hx_logger_trade_debug.info(f"请求委托列表,来源:{source}")
    async_log_util.info(hx_logger_trade_debug, f"请求委托列表,来源:{source}")
def add_deal_list():
trade/trade_huaxin.py
@@ -112,7 +112,7 @@
# 撤单
def cancel_order(code):
def cancel_order(code, msg=''):
    orders_info = __TradeOrderIdManager.list_order_ids_cache(code)
    orders_info = copy.deepcopy(orders_info)
    orders = []
@@ -121,7 +121,7 @@
            order_info = json.loads(order)
            orders.append({'orderSysID': order_info[1], 'accountId': order_info[0]})
        if orders:
            async_log_util.info(logger_trade, f"{code}:华鑫开始执行撤单")
            async_log_util.info(logger_trade, f"{code}:华鑫开始执行撤单 {msg}")
            for order in orders:
                huaxin_trade_api.cancel_order(1, code, order["orderSysID"])
                __TradeOrderIdManager.remove_order_id(code, order["accountId"], order["orderSysID"])
@@ -133,7 +133,7 @@
    if local_orders_info:
        local_orders_info = copy.deepcopy(local_orders_info)
        for order_id in local_orders_info:
            async_log_util.info(logger_trade, f"{code}:华鑫开始执行撤单")
            async_log_util.info(logger_trade, f"{code}:华鑫开始执行撤单 {msg}")
            huaxin_trade_api.cancel_order(1, code, '', localOrderID=order_id)
            __TradeOrderIdManager.remove_local_order_id(code, order_id)
            async_log_util.info(logger_trade, f"{code}:华鑫执行撤单结束")
trade/trade_manager.py
@@ -5,6 +5,7 @@
# 交易管理器
import datetime
import json
import threading
import time
import dask
@@ -220,7 +221,7 @@
    # 设置交易状态
    def set_trade_state(self, code, state):
        logger_trade.info("set_trade_state {}-{}".format(code, state))
        async_log_util.info(logger_trade, "set_trade_state {}-{}".format(code, state))
        tool.CodeDataCacheUtil.set_cache(self.__trade_state_cache, code, state)
        RedisUtils.setex_async(self.__db, "trade-state-{}".format(code), tool.get_expire(), state)
@@ -518,6 +519,9 @@
            guiTrade.cancel_buy(code)
        async_log_util.info(logger_trade, "{}撤单方法结束".format(code))
        __cancel_success(code)
        # 再次撤单
        if constant.TRADE_WAY == constant.TRADE_WAY_HUAXIN:
            threading.Thread(target=lambda: trade_huaxin.cancel_order(code, msg="再次撤单"), daemon=True).start()
        # 不需要再次撤单了
        # try:
        #     cancel_buy_again(code)