From 5724dc30a98d0fe00f93e9f71c5901216d506eb6 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 04 十一月 2024 15:12:56 +0800 Subject: [PATCH] 策略修改 --- l2/l2_data_manager_new.py | 39 ++++++++++++++++++++++++++++----------- 1 files changed, 28 insertions(+), 11 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index 72a7891..d4ccca1 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -13,7 +13,7 @@ from l2.huaxin import l2_huaxin_util, huaxin_delegate_postion_manager from l2.l2_limitup_sell_data_manager import L2LimitUpSellDataManager from l2.l2_sell_manager import L2MarketSellManager, L2LimitUpSellManager -from l2.l2_transaction_data_manager import HuaXinSellOrderStatisticManager, BigOrderDealManager +from l2.l2_transaction_data_manager import HuaXinSellOrderStatisticManager, BigOrderDealManager, HuaXinBuyOrderManager from l2.place_order_single_data_manager import L2TradeSingleDataProcessor from log_module import async_log_util, log_export from third_data import kpl_data_manager, block_info @@ -1555,7 +1555,7 @@ max_num_set=set(), buy_volume_rate=buy_volume_rate, mode=OrderBeginPosInfo.MODE_RADICAL, - mode_desc=f"鎬绘姏鍘嬪皬鎵叆", + mode_desc=f"鎬绘姏鍘嬪皬鎵叆:{radical_result[2]}", sell_info=sell_info, threshold_money=threshold_money) order_begin_pos_info.at_limit_up = cls.__is_at_limit_up_buy(code) @@ -1977,14 +1977,14 @@ if cls.__is_at_limit_up_buy(code, start_index): return False, None, "鏉夸笂鏀鹃噺" total_datas = local_today_datas[code] - min_num = int(29900 / gpcode_manager.get_limit_up_price_as_num(code)) + limit_up_price = gpcode_manager.get_limit_up_price_as_num(code) + bigger_money = l2_data_util.get_big_money_val(limit_up_price, tool.is_ge_code(code)) + min_num = int(bigger_money / limit_up_price / 100) # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟 - deal_money_list = BigOrderDealManager().get_total_buy_money_list(code) - if deal_money_list: - for m in deal_money_list: - if m >= 2990000: - min_num = int(5000 / gpcode_manager.get_limit_up_price_as_num(code)) - break + total_deal_money = BigOrderDealManager().get_total_buy_money(code) + THRESHOLD_MONEY = 2990000 + if total_deal_money >= THRESHOLD_MONEY: + min_num = int(5000 / limit_up_price) single_index = None for i in range(start_index, end_index + 1): @@ -1994,11 +1994,26 @@ continue if val["num"] < min_num: continue + # 涓婅瘉鏈夊彲鑳芥槸閮ㄥ垎鎴愪氦鐨勫ぇ鍗� + if i == start_index and tool.is_sh_code(code): + dealing_active_order_info = HuaXinBuyOrderManager().get_dealing_active_order_info(code) + if dealing_active_order_info and dealing_active_order_info[0] == int(val["orderNo"]): + # 鍒ゆ柇鏄惁涓哄ぇ鍗� + order_money = dealing_active_order_info[2] + round(val["price"], 2) * val["num"] * 100 + if order_money >= bigger_money: + total_deal_money += order_money + if total_deal_money >= THRESHOLD_MONEY: + single_index = i + break + if int(val["orderNo"]) <= radical_data[1]: # 涓诲姩涔板崟鍚庣殑鏁版嵁涓嶇畻 continue - single_index = i - break + + total_deal_money += round(val["price"], 2) * val["num"] * 100 + if total_deal_money >= THRESHOLD_MONEY: + single_index = i + break if single_index is not None: return True, single_index, "鏈夊ぇ鍗�" return False, None, "鏃犲ぇ鍗�" @@ -2010,6 +2025,8 @@ return False, None, "瓒呰繃鐢熸晥鏃堕棿" result = __can_order() l2_log.debug(code, f"L2鎵叆鍒ゆ柇锛歿result}") + if result[0]: + return True, result[1], f"鎵叆鏉垮潡锛歿radical_data[2]}" return result @classmethod -- Gitblit v1.8.0