Administrator
2023-08-25 0dd67c24540b3e638a2da4832a973cf904d48dbd
异步日志修改
3个文件已修改
44 ■■■■ 已修改文件
trade/huaxin/huaxin_trade_api.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_huaxin.py 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_manager.py 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api.py
@@ -7,7 +7,8 @@
import threading
import time
from log_module.log import hx_logger_trade_debug, hx_logger_trade_loop, hx_logger_trade_callback
from log_module import async_log_util
from log_module.log import hx_logger_trade_debug, hx_logger_trade_loop, hx_logger_trade_callback, logger_trade
from trade.huaxin import huaxin_trade_data_update
from trade.huaxin.huaxin_trade_record_manager import TradeOrderIdManager
from utils import socket_util, huaxin_util
@@ -66,6 +67,7 @@
    pipe_trade = pipe_trade_
    t1 = threading.Thread(target=lambda: __run_recv_pipe_trade(), daemon=True)
    t1.start()
# 测试交易通道
def test_trade_channel():
@@ -223,13 +225,13 @@
    if not request_id:
        request_id = __get_request_id(_type)
    try:
        hx_logger_trade_loop.info("请求发送开始:client_id-{} request_id-{}", 0, request_id)
        async_log_util.info(hx_logger_trade_loop, "请求发送开始:client_id-{} request_id-{}", 0, request_id)
        root_data = {"type": _type,
                     "data": data,
                     "request_id": request_id}
        root_data = socket_util.encryp_client_params_sign(root_data)
        pipe_trade.send(json.dumps(root_data).encode("utf-8"))
        hx_logger_trade_loop.info("请求发送成功:request_id-{}", request_id)
        async_log_util.info(hx_logger_trade_loop, "请求发送成功:request_id-{}", request_id)
    except BrokenPipeError as e:
        hx_logger_trade_loop.info("请求发送异常:request_id-{} error-{}", request_id, str(e))
        raise e
trade/trade_huaxin.py
@@ -6,7 +6,8 @@
import time
import constant
from log_module.log import logger_juejin_trade, hx_logger_trade_debug
from log_module import async_log_util
from log_module.log import logger_juejin_trade, hx_logger_trade_debug, logger_trade
from trade.huaxin import huaxin_trade_api
from trade.huaxin.huaxin_trade_record_manager import TradeOrderIdManager
from utils import tool, huaxin_util
@@ -45,11 +46,11 @@
    try:
        result = huaxin_trade_api.order(1, code, count, price, blocking=blocking)
        print("华鑫下单耗时", time.time() - start_time)
        hx_logger_trade_debug.info(f"{code}:下单耗时{round(time.time() - start_time, 3)}s")
        async_log_util.info(hx_logger_trade_debug, f"{code}:下单耗时{round(time.time() - start_time, 3)}s")
    except Exception as e:
        if str(e).find("超时") >= 0:
            # 此处出现超时,需要通过读取委托列表来设置订单信息
            hx_logger_trade_debug.error(f"{code}:下单结果反馈出错-{str(e)}")
            async_log_util.error(hx_logger_trade_debug, f"{code}:下单结果反馈出错-{str(e)}")
        else:
            raise e
@@ -59,18 +60,18 @@
            if result['code'] == 0:
                result = result["data"]
                if result["orderStatus"] == huaxin_util.TORA_TSTP_OST_Rejected:
                    logger_juejin_trade.info(f"{code}:下单失败:{result.get('statusMsg')}")
                    async_log_util.info(hx_logger_trade_debug, f"{code}:下单失败:{result.get('statusMsg')}")
                    raise Exception(result.get('statusMsg'))
                else:
                    __TradeOrderIdManager.add_order_id(code, result["accountID"], result["orderSysID"])
                    logger_juejin_trade.info(f"{code}:下单成功 orderSysID:{result['orderSysID']}")
                    async_log_util.info(hx_logger_trade_debug, f"{code}:下单成功 orderSysID:{result['orderSysID']}")
                    return result["securityId"], result["accountID"], result["orderSysID"]
            else:
                raise Exception(result['msg'])
        else:
            local_order_id = result["local_order_id"]
            __TradeOrderIdManager.add_local_order_id(code, local_order_id)
            logger_juejin_trade.info(f"{code}:下单成功 localOrderId:{local_order_id}")
            async_log_util.info(hx_logger_trade_debug, f"{code}:下单成功 localOrderId:{local_order_id}")
            return code, "local", local_order_id
    else:
        raise Exception("下单失败,无返回")
@@ -94,11 +95,11 @@
            order_info = json.loads(order)
            orders.append({'orderSysID': order_info[1], 'accountId': order_info[0]})
        if orders:
            logger_juejin_trade.info(f"{code}:开始执行撤单")
            logger_juejin_trade.info(f"{code}:撤单成功,撤单数量:{len(orders)}")
            async_log_util.info(logger_trade, f"{code}:华鑫开始执行撤单")
            for order in orders:
                huaxin_trade_api.cancel_order(1, code, order["orderSysID"])
                __TradeOrderIdManager.remove_order_id(code, order["accountId"], order["orderSysID"])
            async_log_util.info(logger_trade, f"{code}:华鑫撤单结束,撤单数量:{len(orders)}")
        # 查询是否有本地订单号
    local_orders_info = __TradeOrderIdManager.list_local_order_ids_cache(code)
@@ -106,10 +107,11 @@
    if local_orders_info:
        local_orders_info = copy.deepcopy(local_orders_info)
        for order_id in local_orders_info:
            logger_juejin_trade.info(f"{code}:开始执行撤单")
            async_log_util.info(logger_trade, f"{code}:华鑫开始执行撤单")
            huaxin_trade_api.cancel_order(1, code, '', localOrderID=order_id)
            __TradeOrderIdManager.remove_local_order_id(code, order_id)
            logger_juejin_trade.info(f"{code}:执行撤单结束")
            async_log_util.info(logger_trade, f"{code}:华鑫执行撤单结束")
if __name__ == "__main__":
    pass
trade/trade_manager.py
@@ -482,7 +482,7 @@
    trade_data_manager.TradeBuyDataManager().set_buy_position_info(code, capture_timestamp, use_time, last_data,
                                                                   last_data_index)
    print("买入结束")
    logger_trade.info("{}买入成功".format(code))
    async_log_util.info(logger_trade, "{}买入成功".format(code))
    # kp_client_msg_manager.add_msg(code, "下单成功")
@@ -498,7 +498,7 @@
# 开始取消买入
def start_cancel_buy(code, force=False):
    logger_trade.info("{}进入撤单方法".format(code))
    async_log_util.info(logger_trade, "{}进入撤单方法".format(code))
    trade_state = __CodesTradeStateManager.get_trade_state_cache(code)
    if trade_state == TRADE_STATE_BUY_SUCCESS:
        return None
@@ -506,9 +506,9 @@
        if trade_state != TRADE_STATE_BUY_PLACE_ORDER and trade_state != TRADE_STATE_BUY_DELEGATED:
            return None
    try:
        logger_trade.info("{}开始撤单".format(code))
        async_log_util.info(logger_trade, "{}开始撤单".format(code))
        __CodesTradeStateManager.set_trade_state(code, TRADE_STATE_BUY_CANCEL_ING)
        logger_trade.info("{}撤单方法开始".format(code))
        async_log_util.info(logger_trade, "{}撤单方法开始".format(code))
        if constant.API_TRADE_ENABLE:
            if constant.TRADE_WAY == constant.TRADE_WAY_JUEJIN:
                trade_juejin.cancel_order(code)
@@ -516,7 +516,7 @@
                trade_huaxin.cancel_order(code)
        else:
            guiTrade.cancel_buy(code)
        logger_trade.info("{}撤单方法结束".format(code))
        async_log_util.info(logger_trade, "{}撤单方法结束".format(code))
        __cancel_success(code)
        # 不需要再次撤单了
        # try:
@@ -528,7 +528,7 @@
        CodesTradeStateManager().set_trade_state(code, trade_state)
        logger_trade.error("{}撤单异常:{}".format(code, str(e)))
        raise e
    logger_trade.info("{}撤单完毕".format(code))
    async_log_util.info(logger_trade, "{}撤单完毕".format(code))
# 再次撤单,防止没有撤掉
@@ -557,7 +557,7 @@
    # 下单成功,加入固定代码库
    if constant.L2_SOURCE_TYPE == constant.L2_SOURCE_TYPE_THS:
        l2_data_manager.remove_from_l2_fixed_codes(code)
    logger_trade.info("{}撤单成功".format(code))
    async_log_util.info(logger_trade, "{}撤单成功".format(code))
    kp_client_msg_manager.add_msg(code, "撤单成功")