From d5d2288ba84f2774935b2f866ca6faa8da0aac66 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 07 七月 2025 18:38:05 +0800 Subject: [PATCH] bug修复/策略完善 --- api/outside_api_callback.py | 66 ++++++++++++++++++++++++++++++-- 1 files changed, 61 insertions(+), 5 deletions(-) diff --git a/api/outside_api_callback.py b/api/outside_api_callback.py index e43b9f4..0fa8a74 100644 --- a/api/outside_api_callback.py +++ b/api/outside_api_callback.py @@ -9,16 +9,19 @@ from code_attribute import gpcode_manager from huaxin_client import l1_subscript_codes_manager from huaxin_client.client_network import SendResponseSkManager +from log_module import async_log_util from strategy import strategy_params_settings, env_info, strategy_manager from strategy.env_info import RealTimeEnvInfo +from strategy.place_order_queue_manager import PlaceOrderRecordManager from strategy.strategy_manager import PlateWhiteListManager from strategy.strategy_params_settings import StrategyParamsSettingsManager, StrategyParamsSettings +from strategy.strategy_variable import StockVariables from strategy.strategy_variable_factory import DataLoader from third_data.history_k_data_manager import TradeDateManager from third_data.kpl_block_manager import KPLCodeJXBlocksManager from trade import trade_record_log_util -from trade.trade_manager import TradeStateManager -from utils import socket_util, middle_api_protocol, tool +from trade.trade_manager import TradeStateManager, DealCodesManager, logger_trade +from utils import socket_util, middle_api_protocol, tool, huaxin_util OPERRATE_SET = 1 # 璁剧疆 OPERRATE_DELETE = 2 # 鍒犻櫎 @@ -220,9 +223,62 @@ except: plates = [] result_json = {"code": 0, "data": plates} - - - elif ctype == 'plate_white_list': result_json = self.__on_plate_white_list(data) + elif ctype == 'get_not_process_place_order_record': + # 鑾峰彇鏈鐞嗙殑涓嬪崟璁板綍 + record = PlaceOrderRecordManager(tool.get_now_date_str()).get_not_process_record() + if not record: + result_json = {"code": 1, "msg": '鏆傛棤璁板綍'} + else: + result_json = {"code": 0, "data": json.dumps(record)} + elif ctype == 'set_place_order_buy': + id_ = data.get("id") + place_order_record_manager = PlaceOrderRecordManager(tool.get_now_date_str()) + # (ID,浠g爜,鏉垮潡淇℃伅, 澶у崟淇℃伅, 鏃堕棿, 浠锋牸, 娑ㄥ箙) + record = place_order_record_manager.get_not_process_record_by_id(id_) + if not record: + result_json = {"code": 1, "msg": '璁板綍涓嶅瓨鍦�'} + else: + + code = record[1] + sv: StockVariables = strategy_manager.low_suction_strtegy.stock_variables_dict.get(code) + if sv is None: + result_json = {"code": 1, "msg": '浠g爜鍙橀噺瀵硅薄涓嶅瓨鍦�'} + else: + place_order_record_manager.set_buy(record[0]) + # 鍙互涓嬪崟 + # 鍒ゆ柇鏄惁鍙互涔� + order_ref = huaxin_util.create_order_ref() + price = tool.get_buy_max_price(sv.褰撳墠浠�) + volume = 100 + DealCodesManager().place_order(set(record[2].keys()), record[1], order_ref, price, volume) + trade_record_log_util.add_place_order_log(code, trade_record_log_util.PlaceOrderInfo(code=code, + time_str= + record[4], + price=sv.褰撳墠浠�, + rate=round(( + sv.褰撳墠浠� - sv.鏄ㄦ棩鏀剁洏浠�) * 100 / sv.鏄ㄦ棩鏀剁洏浠�, + 2), + plates=record[ + 2].keys(), + plates_info= + record[2], + info=record[3] + )) + async_log_util.info(logger_trade, f"{code}涓嬪崟锛屾澘鍧楋細{record[2].keys()}") + elif ctype == 'set_place_order_not_buy': + id_ = data.get("id") + place_order_record_manager = PlaceOrderRecordManager(tool.get_now_date_str()) + # (ID,浠g爜,鏉垮潡淇℃伅, 澶у崟淇℃伅, 鏃堕棿, 浠锋牸, 娑ㄥ箙) + record = place_order_record_manager.get_not_process_record_by_id(id_) + if not record: + result_json = {"code": 1, "msg": '璁板綍涓嶅瓨鍦�'} + else: + place_order_record_manager.set_not_buy(record[0], "鎵嬪姩椹冲洖") + elif ctype == 'add_black_list': + code = data.get("code") + gpcode_manager.BlackListCodeManager().add_code(code) + result_json = {"code": 0, "msg": '娣诲姞鎴愬姛'} + self.send_response(result_json, client_id, request_id) -- Gitblit v1.8.0