From 31c03f7c3458ca00d66e04df0af53e7dc3438688 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 05 八月 2024 17:36:24 +0800 Subject: [PATCH] 调整账户资金管理目录/买入调整/增加手续费接口 --- l2/l2_data_manager_new.py | 33 ++++++++++++++++++++++++++++----- 1 files changed, 28 insertions(+), 5 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index 1b5610a..cf99e9b 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -34,9 +34,9 @@ from log_module.log import logger_l2_trade_buy, logger_l2_process, logger_l2_error, logger_debug, \ logger_l2_not_buy_reasons, logger_real_place_order_position -from trade.trade_data_manager import CodeActualPriceProcessor, PlaceOrderCountManager +from trade.trade_data_manager import CodeActualPriceProcessor, PlaceOrderCountManager, AccountMoneyManager -from trade.trade_manager import TradeTargetCodeModeManager, AccountAvailableMoneyManager +from trade.trade_manager import TradeTargetCodeModeManager from settings.trade_setting import MarketSituationManager, TradeBlockBuyModeManager @@ -235,7 +235,7 @@ __CodesTradeStateManager = trade_manager.CodesTradeStateManager() __PauseBuyCodesManager = gpcode_manager.PauseBuyCodesManager() __Buy1PriceManager = code_price_manager.Buy1PriceManager() - __AccountAvailableMoneyManager = AccountAvailableMoneyManager() + __AccountMoneyManager = AccountMoneyManager() __TradeBuyDataManager = trade_data_manager.TradeBuyDataManager() __LimitUpTimeManager = limit_up_time_manager.LimitUpTimeManager() __BlackListCodeManager = gpcode_manager.BlackListCodeManager() @@ -253,6 +253,9 @@ # 涔板叆閿� __buy_lock_dict = {} + + # 褰撳墠鎵规姝e湪澶勭悊鐨勬暟鎹储寮� + __processing_data_indexes = {} # 鑾峰彇浠g爜璇勫垎 @classmethod @@ -383,6 +386,8 @@ def process_add_datas(cls, code, add_datas, capture_timestamp, __start_time): now_time_str = tool.get_now_time_str() if len(add_datas) > 0: + # 璁板綍褰撳墠鎵规暟鎹殑绱㈠紩 + cls.__processing_data_indexes[code] = (add_datas[0]["index"], add_datas[1]["index"]) if code not in cls.__trade_log_placr_order_info_dict: cls.__trade_log_placr_order_info_dict[code] = trade_record_log_util.PlaceOrderInfo() # 鎷兼帴鏁版嵁 @@ -975,11 +980,11 @@ place_order_count = trade_data_manager.PlaceOrderCountManager().get_place_order_count(code) # 绗竴鍜岀浜屾涓嬪崟閮藉繀椤昏鏈夎嚦灏戜竴绗旀湭鎴愪氦/寰呮垚浜ょ殑澶у崟 # 璁$畻澶у崟 + total_datas = local_today_datas.get(code) if place_order_count < 2: trade_index, is_default = transaction_progress.TradeBuyQueue().get_traded_index(code) if trade_index is None: trade_index = 0 - total_datas = local_today_datas.get(code) min_money = l2_data_util.get_big_money_val(limit_up_price, tool.is_ge_code(code)) left_count, left_num = L2DataComputeUtil.compute_left_buy_order(code, trade_index, total_datas[-1]["index"], @@ -987,7 +992,25 @@ if left_count < 1: return False, False, f"绗瑊place_order_count + 1}涓嬪崟鏃犲緟鎴愪氦鐨勫ぇ鍗�" - # 鏆傛椂娉ㄩ噴鎯充拱鍗曞姛鑳� + # 鎵ц浣嶉偅涓�鎴虫暟鎹灏忎簬20鏉℃暟鎹� + THRESHOLD_BUY_COUNT = 20 + buy_count = 0 + min_num = int(5000 / limit_up_price) + range_indexes = cls.__processing_data_indexes.get(code) + if range_indexes: + for i in range(range_indexes[0], range_indexes[1] + 1): + val = total_datas[i]["val"] + if not L2DataUtil.is_limit_up_price_buy(val): + continue + if val["num"] < min_num: + continue + buy_count += 1 + if buy_count > THRESHOLD_BUY_COUNT: + break + if buy_count > THRESHOLD_BUY_COUNT: + HuaXinSellOrderStatisticManager.clear_latest_deal_volume(code) + return False, True, f"鎵ц浣嶆壒娆℃暟鎹噺({buy_count})澶т簬{THRESHOLD_BUY_COUNT}" + # 鏆傛椂娉ㄩ噴鎯充拱鍗曞姛鑳� if not cls.__WantBuyCodesManager.is_in_cache(code): # if cls.__TradeTargetCodeModeManager.get_mode_cache() == TradeTargetCodeModeManager.MODE_ONLY_BUY_WANT_CODES: # return False, True, f"鍙拱鎯充拱鍗曚腑鐨勪唬鐮�" -- Gitblit v1.8.0