From 9e5b50a69a64aad3d396e1808344645ad2c25efc Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 17 十月 2024 17:32:18 +0800 Subject: [PATCH] 引入精选流出到买入策略 --- api/outside_api_command_callback.py | 42 ++++++++++++++++++++++++++++++++++++++---- 1 files changed, 38 insertions(+), 4 deletions(-) diff --git a/api/outside_api_command_callback.py b/api/outside_api_command_callback.py index 6373874..86ca4f3 100644 --- a/api/outside_api_command_callback.py +++ b/api/outside_api_command_callback.py @@ -1,3 +1,4 @@ +import base64 import concurrent.futures import copy import json @@ -26,7 +27,7 @@ l2_data_source_util, cancel_buy_strategy from l2.code_price_manager import Buy1PriceManager -from l2.l2_data_manager import TradePointManager +from l2.l2_data_manager import TradePointManager, OrderBeginPosInfo from l2.l2_data_util import L2DataUtil from l2.l2_transaction_data_manager import HuaXinBuyOrderManager, BigOrderDealManager from log_module import async_log_util, log_export @@ -45,7 +46,7 @@ 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.buy_money_count_setting import BuyMoneyAndCountSetting +from trade.buy_money_count_setting import BuyMoneyAndCountSetting, RadicalBuyBlockCodeCountManager from trade.huaxin import huaxin_trade_api, huaxin_trade_data_update, \ huaxin_trade_record_manager, huaxin_trade_order_processor, huaxin_sell_util @@ -281,6 +282,8 @@ code_list_type = data["code_list_type"] operate = data["operate"] code = data.get("code") + if code and not tool.is_can_buy_code(code): + raise Exception(f"涓嶆槸鍙互浜ゆ槗鐨勪唬鐮侊細{code}") fresult = {"code": 0} if code_list_type == outside_api_command_manager.CODE_LIST_WANT: if operate == outside_api_command_manager.OPERRATE_SET: @@ -442,6 +445,7 @@ black = l2_trade_util.is_in_forbidden_trade_codes(code) pause_buy = gpcode_manager.PauseBuyCodesManager().is_in_cache(code) must_buy = gpcode_manager.MustBuyCodesManager().is_in_cache(code) + green = gpcode_manager.GreenListCodeManager().is_in_cache(code) desc_list = [] if want: desc_list.append("銆愭兂涔板崟銆�") @@ -453,6 +457,8 @@ desc_list.append("銆愭殏涓嶄拱銆�") if must_buy: desc_list.append("銆愮孩鍚嶅崟銆�") + if green: + desc_list.append("銆愮豢鍚嶅崟銆�") result = {"code": 0, "data": {"code_info": (code, code_name), "desc": "".join(desc_list)}} self.send_response(result, client_id, request_id) @@ -871,7 +877,7 @@ # 鑾峰彇涓嬪崟浣嶇疆淇℃伅 order_begin_pos = TradePointManager().get_buy_compute_start_data_cache(code) if order_begin_pos is None or order_begin_pos.buy_single_index is None: - continue + order_begin_pos = OrderBeginPosInfo(buy_single_index=0, buy_exec_index=0) l2_data_util.load_l2_data(code) total_datas = l2_data_util.local_today_datas.get(code) trade_index, is_default = transaction_progress.TradeBuyQueue().get_traded_index(code) @@ -879,6 +885,8 @@ trade_index = 0 # 涓嬪崟浣嶇疆 place_order_index = SCancelBigNumComputer().get_real_place_order_index_cache(code) + if place_order_index is None: + place_order_index = 0 # 璁$畻淇″彿浣嶇疆鍒扮湡瀹炰笅鍗曚綅缃殑鎬讳拱锛堜笉绠℃槸鍚﹀凡鎾わ級 total_nums = 0 for i in range(order_begin_pos.buy_single_index, place_order_index): @@ -1096,6 +1104,14 @@ except: pass + try: + if order_begin_pos: + fdata['mode'] = order_begin_pos.mode + else: + fdata['mode'] = -1 + except: + pass + fdatas.append(fdata) except Exception as e: logger_debug.exception(e) @@ -1175,6 +1191,8 @@ kpl_data_manager.PullTask.repaire_pull_task() # 淇鏁版嵁鏈嶅姟 server_util.repaire_data_server() + # 浠诲姟淇 + huaxin_trade_data_update.repaire_task() self.send_response({"code": 0, "data": {}}, client_id, request_id) elif ctype == "get_trade_queue": code = data["code"] @@ -1276,11 +1294,27 @@ data = { "normal": BuyMoneyAndCountSetting().get_normal_buy_setting(), "radical": BuyMoneyAndCountSetting().get_radical_buy_setting(), - "moneys":constant.AVAILABLE_BUY_MONEYS + "moneys": constant.AVAILABLE_BUY_MONEYS } self.send_response({"code": 0, "data": data, "msg": f""}, client_id, request_id) + elif ctype == "set_radical_buy_block_count_setting": + # 璁剧疆涔板叆閲戦鍜屾暟閲� + data_str = data["data"] + data_str = base64.b64decode(data_str).decode('utf-8') + setting = json.loads(data_str) + RadicalBuyBlockCodeCountManager().set_block_code_count(setting) + self.send_response({"code": 0, "data": setting, "msg": f""}, + client_id, + request_id) + elif ctype == "get_radical_buy_block_count_setting": + # 璁剧疆涔板叆閲戦鍜屾暟閲� + data = RadicalBuyBlockCodeCountManager().get_block_code_count_settings() + self.send_response({"code": 0, "data": data, "msg": f""}, + client_id, + request_id) + except Exception as e: logging.exception(e) logger_debug.exception(e) -- Gitblit v1.8.0