From 517b90c5f094d9a8658e16bb748da3f96470fc65 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 27 五月 2025 13:09:16 +0800 Subject: [PATCH] 大单导出修改 --- l2_data_parser.py | 19 ++++++++----------- data_parser/transaction_big_order_parser.py | 41 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/data_parser/transaction_big_order_parser.py b/data_parser/transaction_big_order_parser.py index 48be723..e986684 100644 --- a/data_parser/transaction_big_order_parser.py +++ b/data_parser/transaction_big_order_parser.py @@ -194,10 +194,49 @@ )) +def extract_big_order_of_code(dir_path, code): + """ + 鎻愬彇浠g爜鐨勫ぇ鍗� + @param code: + @return: + """ + + def first_last(group): + """ + 鑾峰彇绗竴鏉℃暟鎹笌鏈�鍚庝竴鏉� + @param group: + @return: + """ + return pd.Series({ + 'TotalAmount': group['TotalAmount'].sum(), + 'TotalVolume': group['TotalVolume'].sum(), + 'StartTime': group['StartTime'].iloc[0], + 'StartPrice': group['StartPrice'].iloc[0], + 'EndTime': group['EndTime'].iloc[-1], + 'EndPrice': group['EndPrice'].iloc[-1] + }) + + combined_path = os.path.join(dir_path, 'combined.csv') + if not os.path.exists(combined_path): + print("鎷兼帴鏁版嵁涓嶅瓨鍦�") + return + df = pd.read_csv(combined_path) + df_copy = df.copy() + df_copy = df_copy[df_copy["SecurityID"] == int(code)] + if df_copy.empty: + print("鐩爣浠g爜瀵瑰簲鎴愪氦鏁版嵁涓虹┖") + return + df_copy["SecurityID"] = df_copy["SecurityID"].apply(BigOrderDealParser.code_format) + # 鎸塖ecurityID鍜孊uyNo鍒嗙粍 + grouped = df_copy.groupby(['SecurityID', 'BuyNo']) + grouped_result = grouped.apply(first_last) + grouped_result = grouped_result[grouped_result["TotalAmount"] > 500000] + grouped_result.to_csv(os.path.join(dir_path, f"{code}.csv")) + print("淇濆瓨鎴愬姛") if __name__ == "__main__": # pre_process_transactions("E:/娴嬭瘯鏁版嵁/Transaction_Test.csv") # pre_process_ngtsticks("E:/娴嬭瘯鏁版嵁/NGTSTick_Test.csv") # concat_pre_transactions("E:/娴嬭瘯鏁版嵁/Transaction_Test") - process_combined_transaction("E:/娴嬭瘯鏁版嵁/Transaction_Test") + extract_big_order_of_code("E:/娴嬭瘯鏁版嵁/Transaction_Test", "000017") diff --git a/l2_data_parser.py b/l2_data_parser.py index eb3f982..7fb76cf 100644 --- a/l2_data_parser.py +++ b/l2_data_parser.py @@ -403,17 +403,14 @@ transaction_big_order_parser.concat_pre_transactions(f"/home/userzjj/ftp/{day}/Transaction") elif _type == 'NGTSTick_Concat': transaction_big_order_parser.concat_pre_ngtsticks(f"/home/userzjj/ftp/{day}/NGTSTick") - - elif _type == 'ExtractDealBigOrder': - # 鎻愬彇鎵�鏈夋垚浜ょ殑澶у崟 - if len(params) > 2: - save_path = params[2].strip() + # 鍛戒护妯″紡 /home/userzjj/app/gp-server/l2_data_parser ExtractDealBigOrder 2025-05-09 + # 鏍规嵁code鎻愬彇澶у崟 + if not code: + print("娌℃湁浼犲叆浠g爜") else: - save_path = None + if tool.is_sh_code(code): + transaction_big_order_parser.extract_big_order_of_code(f"/home/userzjj/ftp/{day}/NGTSTick", code) + else: + transaction_big_order_parser.extract_big_order_of_code(f"/home/userzjj/ftp/{day}/Transaction", code) - if len(params) > 3: - target_code = params[3].strip() - else: - target_code = None - parse_deal_big_orders(day, save_path, target_code) -- Gitblit v1.8.0