From 23361ac1cacec70b840f497cc35d2f7a5de66387 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 28 十一月 2024 19:11:00 +0800 Subject: [PATCH] redis接口本地化/扫入策略修改 --- l2/l2_data_manager_new.py | 62 ++++++++++++++++++------------- 1 files changed, 36 insertions(+), 26 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index 64d85b7..9c4d3b4 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -2075,45 +2075,55 @@ 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) - # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟 - total_deal_money = 0 - if constant.CAN_RADICAL_BUY_NEED_BIG_ORDER_EVERYTIME: - # 姣忔涓嬪崟閮介渶瑕佸ぇ鍗� - current_big_order_deal_money_info = EveryLimitupBigDealOrderManager.get_big_buy_deal_order_money_info( - code) - if current_big_order_deal_money_info: - total_deal_money = current_big_order_deal_money_info[0] - if current_big_order_deal_money_info and tool.trade_time_sub(tool.get_now_time_str(), - current_big_order_deal_money_info[1]) > 60: - # 60s浠ヤ笂鐨勫ぇ鍗曚笉鐪� - total_deal_money = 0 - else: - # 鍙渶瑕佹�绘垚浜ょ殑澶у崟 - total_deal_money = BigOrderDealManager().get_total_buy_money(code) + refer_sell_data = L2MarketSellManager().get_refer_sell_data(code, radical_data[3]) # 鍙傝�冩�诲崠棰� refer_sell_money = 0 if refer_sell_data: refer_sell_money = refer_sell_data[1] - THRESHOLD_MONEY = 2990000 - if refer_sell_money >= 1e7: - THRESHOLD_MONEY = 2990000 * 2 - else: - THRESHOLD_MONEY = 2990000 - if total_deal_money >= THRESHOLD_MONEY: + # 澶у崟鍒ゆ柇缁撴灉 + big_order_deal_enough_result = radical_buy_data_manager.is_big_order_deal_enough(code, + code_volumn_manager.CodeVolumeManager().get_volume_rate_refer_in_5days( + code), + refer_sell_money) + # 缂轰箯鐨勫ぇ鍗曢噾棰� + lack_money = big_order_deal_enough_result[3] + # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟 + if constant.CAN_RADICAL_BUY_NEED_BIG_ORDER_EVERYTIME: + # 姣忔涓嬪崟閮介渶瑕佸ぇ鍗� + current_big_order_deal_money_info = EveryLimitupBigDealOrderManager.get_big_buy_deal_order_money_info( + code) + if current_big_order_deal_money_info and tool.trade_time_sub(tool.get_now_time_str(), + current_big_order_deal_money_info[1]) > 60: + # 60s浠ヤ笂灏变笉涓嬪崟浜� + return False, None, "璺濈涓婃缁熻澶у崟鏃堕棿杩囧幓60s", set() + + if lack_money == 0: min_num = int(5000 / limit_up_price) # 闇�瑕佺洃鍚殑澶у崟 watch_indexes = set() # 鎬诲鎵樺ぇ鍗曢噾棰� total_delegating_big_money = 0 single_index = None - for i in range(start_index, end_index + 1): + # 浠庢垚浜よ繘搴︿綅寮�濮嬬湅 + trade_index, is_default = cls.__TradeBuyQueue.get_traded_index(code) + if trade_index is None: + trade_index = 0 + canceled_buyno_map = local_today_canceled_buyno_map.get(code) + for i in range(trade_index, end_index + 1): data = total_datas[i] val = data["val"] if not L2DataUtil.is_limit_up_price_buy(val): continue if val["num"] < min_num: continue + # 鎾ゅ崟涓嶇畻 + left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count_v2(code, i, + total_datas, + canceled_buyno_map) + if left_count == 0: + continue + # 涓婅瘉鏈夊彲鑳芥槸閮ㄥ垎鎴愪氦鐨勫ぇ鍗� if i == start_index and tool.is_sh_code(code): dealing_active_order_info = HuaXinBuyOrderManager().get_dealing_active_order_info(code) @@ -2121,9 +2131,9 @@ # 鍒ゆ柇鏄惁涓哄ぇ鍗� order_money = dealing_active_order_info[2] + round(val["price"], 2) * val["num"] * 100 if order_money >= bigger_money: - total_delegating_big_money += order_money + lack_money -= order_money watch_indexes.add(i) - if total_delegating_big_money + total_deal_money >= THRESHOLD_MONEY: + if lack_money < 0: single_index = i break @@ -2131,8 +2141,8 @@ # 涓诲姩涔板崟鍚庣殑鏁版嵁涓嶇畻 continue watch_indexes.add(i) - total_delegating_big_money += round(val["price"], 2) * val["num"] * 100 - if total_delegating_big_money + total_deal_money >= THRESHOLD_MONEY: + lack_money -= round(val["price"], 2) * val["num"] * 100 + if lack_money < 0: single_index = i break if single_index is not None: -- Gitblit v1.8.0