From 7d3c00d278c7f45a9c5e02a9410fb69d968de438 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 30 九月 2024 17:28:58 +0800 Subject: [PATCH] bug修复 --- api/outside_api_command_callback.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 50 insertions(+), 8 deletions(-) diff --git a/api/outside_api_command_callback.py b/api/outside_api_command_callback.py index 85dc434..0c7baa3 100644 --- a/api/outside_api_command_callback.py +++ b/api/outside_api_command_callback.py @@ -1,4 +1,5 @@ import concurrent.futures +import copy import json import logging import threading @@ -33,14 +34,16 @@ logger_trade, logger_trade_position_api_request, logger_request_api, \ logger_real_place_order_position, logger_device from output import l2_output_util -from third_data import kpl_data_manager, kpl_util, history_k_data_manager -from third_data.code_plate_key_manager import CodePlateKeyBuyManager +from third_data import kpl_util, history_k_data_manager, huaxin_l1_data_manager, third_blocks_manager, kpl_data_manager +from third_data.code_plate_key_manager import CodePlateKeyBuyManager, KPLCodeJXBlockManager, RealTimeKplMarketData, \ + RadicalBuyBlockManager from third_data.history_k_data_manager import HistoryKDataManager from third_data.history_k_data_util import JueJinApi, HistoryKDatasUtils from third_data.kpl_data_manager import KPLDataManager from third_data.kpl_limit_up_data_manager import CodeLimitUpSequenceManager from third_data.kpl_util import KPLDataType -from trade import trade_manager, l2_trade_util, trade_data_manager +from third_data.third_blocks_manager import CodeThirdBlocksManager, SOURCE_TYPE_KPL, BlockMapManager +from trade import trade_manager, l2_trade_util, trade_data_manager, trade_constant import l2_data_util as l2_data_util_old from trade.huaxin import huaxin_trade_api, huaxin_trade_data_update, \ @@ -136,7 +139,7 @@ raise Exception("灏氭湭鑾峰彇鍒扮幇浠�") # 鑾峰彇涔�1閲戦 price = round(float(current_price), 2) - buy1_info = L1DataManager.current_buy1_dict.get(code) + buy1_info = huaxin_l1_data_manager.get_buy1_info(code) if buy1_info and buy1_info[0] * buy1_info[1] > 50 * 10000: # 濡傛灉涔�1鍦�50w浠ヤ笂灏卞姞涓�妗� price += 0.01 @@ -161,6 +164,7 @@ accountID = data["accountID"] orderSysID = data["orderSysID"] sinfo = data["sinfo"] + async_log_util.info(logger_trade, f"API鎾ゅ崟: {data}") if orderSysID: result = huaxin_trade_api.cancel_order(direction, code, orderSysID, sinfo=sinfo, blocking=True, request_id=request_id) @@ -179,11 +183,13 @@ msg_list.append(f"鎾ゅ崠鍗曟暟閲忥細{sell_count}") except Exception as e: logger_debug.exception(e) - can_cancel = l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎾ゅ崟") + can_cancel = l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎾ゅ崟", + cancel_type=trade_constant.CANCEL_TYPE_HUMAN) if not can_cancel: msg_list.append(f"鏃犳硶鎾や拱鍗�") else: msg_list.append(f"宸叉挙涔板崟") + async_log_util.info(logger_trade, f"API鎾ゅ崟缁撴灉: {msg_list}") self.send_response({"code": 0, "data": {"code": 0, "msg": "锛�".join(msg_list)}}, client_id, request_id) except Exception as e: @@ -296,7 +302,8 @@ if operate == outside_api_command_manager.OPERRATE_SET: # 鍏堟墜鍔ㄦ挙鍗� try: - l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎷夐粦") + l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎷夐粦", + cancel_type=trade_constant.CANCEL_TYPE_HUMAN) except Exception as e: logger_debug.exception(e) l2_trade_util.forbidden_trade(code, msg="鎵嬪姩鍔犲叆 trade_server") @@ -553,6 +560,11 @@ l1_subscript_codes_manager.save_codes(codes_sh, codes_sz) result = {"code": 0, "data": {"codes_sh": len(codes_sh), "codes_sz": len(codes_sz)}} self.send_response(result, client_id, request_id) + # 鎷夊彇涓夋柟鏉垮潡 + codes = [] + codes.extend(codes_sh) + codes.extend(codes_sz) + threading.Thread(target=third_blocks_manager.load_if_less, args=(codes,), daemon=True).start() except Exception as e: logger_debug.error(e) @@ -1055,7 +1067,8 @@ try: limit_up_sequence = CodeLimitUpSequenceManager.get_current_limit_up_sequence(code) if limit_up_sequence: - fdata['block'] = f"{limit_up_sequence[0]}-{limit_up_sequence[1]}({limit_up_sequence[2]}&{limit_up_sequence[2] - limit_up_sequence[3]})" + fdata[ + 'block'] = f"{limit_up_sequence[0]}-{limit_up_sequence[1]}({limit_up_sequence[2]}&{limit_up_sequence[2] - limit_up_sequence[3]})" except: pass # 鑾峰彇娑ㄥ仠鏃堕棿 @@ -1208,11 +1221,40 @@ self.send_response({"code": 0, "data": {}, "msg": f""}, client_id, request_id) + elif ctype == "get_code_third_blocks": + # 鑾峰彇绗笁鏂规澘鍧楁暟鎹� + code = data["code"] + source_dict = copy.deepcopy(CodeThirdBlocksManager().get_source_blocks(code)) + if not source_dict: + source_dict = {} + source_origin_dict = copy.deepcopy(CodeThirdBlocksManager().get_source_blocks_origin(code)) + if not source_origin_dict: + source_origin_dict = {} + kpl_blocks = RadicalBuyBlockManager.get_code_kpl_blocks(code) + if kpl_blocks is None: + kpl_blocks = set() + if not kpl_blocks: + KPLCodeJXBlockManager().load_jx_blocks_radical(code) + filter_blocks, match_blocks = RadicalBuyBlockManager.get_code_blocks(code) + source_origin_dict[SOURCE_TYPE_KPL] = kpl_blocks + source_dict[SOURCE_TYPE_KPL] = BlockMapManager().filter_blocks(kpl_blocks) + data = { + "blocks": {}, + "origin_blocks": {}, + "match_blocks": [list(filter_blocks), list(match_blocks)] + } + for s in source_origin_dict: + data["origin_blocks"][s] = list(source_origin_dict[s]) + for s in source_dict: + data["blocks"][s] = list(source_dict[s]) - + self.send_response({"code": 0, "data": data, "msg": f""}, + client_id, + request_id) except Exception as e: logging.exception(e) + logger_debug.exception(e) self.send_response({"code": 1, "msg": f"鏁版嵁澶勭悊鍑洪敊锛歿e}"}, client_id, request_id) finally: use_time = time.time() - __start_time -- Gitblit v1.8.0