From c170fbd2d1cbc15d5b07cc5cdffb3e8c43901785 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 14 三月 2025 18:46:23 +0800 Subject: [PATCH] 新版下单逐笔成交数据处理 --- l2/l2_transaction_data_manager.py | 60 ++++++++---------------------------------------------------- 1 files changed, 8 insertions(+), 52 deletions(-) diff --git a/l2/l2_transaction_data_manager.py b/l2/l2_transaction_data_manager.py index 3878edc..f5d458a 100644 --- a/l2/l2_transaction_data_manager.py +++ b/l2/l2_transaction_data_manager.py @@ -337,13 +337,11 @@ # 缁熻鎵�鏈夌殑鎴愪氦閲� __deal_volume_list_dict = {} - # 缁熻娑ㄥ仠涓诲姩涔扮殑鎴愪氦閲� - __deal_active_buy_volume_list_dict = {} @classmethod - def statistic_total_deal_volume(cls, code, fdatas, limit_up_price): + def statistic_active_sell_deal_volume(cls, code, fdatas, limit_up_price): """ - 缁熻鎬诲叡鐨勬垚浜ら噺 + 缁熻涓诲姩鍗栨垚浜� @param code: @param fdatas: [(鏁版嵁鏈韩, 鏄惁涓诲姩涔�, 鏄惁娑ㄥ仠, 鎬绘垚浜ら, 涓嶅惈ms鏃堕棿锛屽惈ms鏃堕棿)] @param limit_up_price: @@ -352,7 +350,9 @@ # 鍙粺璁¤鍔ㄤ拱 if code not in cls.__deal_volume_list_dict: cls.__deal_volume_list_dict[code] = [] - + # 涓轰簡鍔犻�熷鐞嗭紝濡傛灉绗竴鏉℃暟鎹拰鏈�鍚庝竴鏉℃暟鎹兘鏄富鍔ㄤ拱灏辫繑鍥� + if fdatas[0][1] and fdatas[-1][1]: + return for d in fdatas: # 鍙粺璁¤鍔ㄤ拱 if d[1]: @@ -370,33 +370,6 @@ # 鍒犻櫎瓒呰繃5鏉℃暟鎹� if len(cls.__deal_volume_list_dict[code]) > 5: cls.__deal_volume_list_dict[code] = cls.__deal_volume_list_dict[code][-5:] - - try: - # 缁熻涓诲姩涔扮殑鎴愪氦閲� - if code not in cls.__deal_active_buy_volume_list_dict: - cls.__deal_active_buy_volume_list_dict[code] = [] - for d in fdatas: - # 鍙粺璁′富鍔ㄤ拱 - if not d[1]: - continue - # 鍙粺璁℃定鍋滀拱 - if not d[2]: - continue - time_str = d[4] - if cls.__deal_active_buy_volume_list_dict[code]: - if cls.__deal_active_buy_volume_list_dict[code][-1][0] == time_str: - # 濡傛灉鏄悓涓�绉� - cls.__deal_active_buy_volume_list_dict[code][-1][1] += d[0][2] - else: - # 涓嶆槸鍚屼竴绉� - cls.__deal_active_buy_volume_list_dict[code].append([time_str, d[0][2]]) - else: - cls.__deal_active_buy_volume_list_dict[code].append([time_str, d[0][2]]) - # 鍒犻櫎瓒呰繃10鏉℃暟鎹� - if len(cls.__deal_active_buy_volume_list_dict[code]) > 10: - cls.__deal_active_buy_volume_list_dict[code] = cls.__deal_active_buy_volume_list_dict[code][-10:] - except: - pass @classmethod def get_latest_3s_continue_deal_volumes(cls, code): @@ -432,23 +405,6 @@ fdatas.append(deal_list[i]) return fdatas - @classmethod - def get_latest_6s_active_buy_deal_volumes(cls, code): - """ - 鑾峰彇鏈�杩�6s鐨勪富鍔ㄤ拱鎴愪氦 - @param code: - @return: [(鏃堕棿,閲�)] - """ - deal_list = cls.__deal_active_buy_volume_list_dict.get(code) - if not deal_list: - return [] - latest_time = deal_list[-1][0] - fdatas = [] - # 浠庡�掓暟绗簩涓暟鎹绠� - for i in range(len(deal_list) - 1, -1, -1): - if tool.trade_time_sub(latest_time, deal_list[i][0]) < 6: - fdatas.append(deal_list[i]) - return fdatas @classmethod def clear_latest_deal_volume(cls, code): @@ -457,8 +413,9 @@ # 杩斿洖鏈�杩�1s鐨勫ぇ鍗曞崠锛�(鎬诲崠閲戦,[(鍗栧崟鍙�,鎬绘墜鏁�,浠锋牸,锛�'寮�濮嬫椂闂�',涔板崟鍙凤級,锛�'缁撴潫鏃堕棿',涔板崟鍙凤級),...]) @classmethod - def add_transaction_datas(cls, code, fdatas, limit_up_price=None): + def statistic_continue_limit_up_sell_transaction_datas(cls, code, fdatas, limit_up_price=None): """ + 缁熻杩炵画娑ㄥ仠鍗栨垚浜ょ殑鏁版嵁 @param code: @param fdatas: [(鏁版嵁鏈韩, 鏄惁涓诲姩涔�, 鏄惁娑ㄥ仠, 鎬绘垚浜ら, 涓嶅惈ms鏃堕棿锛屽惈ms鏃堕棿)] @param limit_up_price: @@ -488,8 +445,7 @@ __start_time = time.time() # 鏄惁杩樻湁娑ㄥ仠鍗栧墿涓� - no_left_limit_up_sell = L2TradeSingleDataProcessor.process_passive_limit_up_sell_data(code, fdatas, - limit_up_price) + no_left_limit_up_sell = L2TradeSingleDataProcessor.process_passive_limit_up_sell_data(code, fdatas) use_time = time.time() - __start_time __start_time = time.time() use_time_list.append(("澶勭悊娑ㄥ仠鍗�", use_time)) -- Gitblit v1.8.0