From 89f860904270b6cdc20b5e7e90a7c12b5b2bf8e3 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 25 四月 2025 09:53:15 +0800 Subject: [PATCH] bug修复 --- l2_data_parser.py | 80 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 78 insertions(+), 2 deletions(-) diff --git a/l2_data_parser.py b/l2_data_parser.py index 0960ea9..00496e8 100644 --- a/l2_data_parser.py +++ b/l2_data_parser.py @@ -13,7 +13,7 @@ return codes -def parse_order_detail(day): +def parse_order_detail(day, code): target_codes = __get_target_codes(day) base_path = f"/home/userzjj/ftp/{day}" with open(f"{base_path}/OrderDetail.csv", 'r', encoding='utf-8') as file: @@ -30,6 +30,71 @@ for row in csv_reader: if row[1] not in target_codes: continue + if code and code != row[1]: + continue + # 灏嗘枃浠跺啓鍏ュ埌鏂囨湰 + writer.writerow(row) + + +def parse_transaction(day): + target_codes = __get_target_codes(day) + base_path = f"/home/userzjj/ftp/{day}" + with open(f"{base_path}/Transaction.csv", 'r', encoding='utf-8') as file: + csv_reader = csv.reader(file) + # 鑾峰彇琛ㄥご锛�: [ExchangeID,SecurityID,TradeTime,TradePrice,TradeVolume,ExecType,MainSeq,SubSeq,BuyNo,SellNo,Info1,Info2,Info3,TradeBSFlag,BizIndex,LocalTimeStamp] + headers = next(csv_reader) + print("琛ㄥご:", headers) + # 閬嶅巻鏁版嵁琛� + _path = f"{base_path}/Transaction_filter.csv" + with open(_path, 'w', newline='', encoding='utf-8') as csvfile: + # 鍒涘缓涓�涓� CSV 鍐欏叆鍣ㄥ璞� + writer = csv.writer(csvfile) + # 閫愯鍐欏叆鏁版嵁 + for row in csv_reader: + if row[1] not in target_codes: + continue + # 灏嗘枃浠跺啓鍏ュ埌鏂囨湰 + writer.writerow(row) + + +def parse_ngtstick(day): + target_codes = __get_target_codes(day) + base_path = f"/home/userzjj/ftp/{day}" + with open(f"{base_path}/NGTSTick.csv", 'r', encoding='utf-8') as file: + csv_reader = csv.reader(file) + # 鑾峰彇琛ㄥご锛�: [ExchangeID,SecurityID,MainSeq,SubSeq,TickTime,TickType,BuyNo,SellNo,Price,Volume,TradeMoney,Side,TradeBSFlag,MDSecurityStat,Info1,Info2,Info3,LocalTimeStamp] + headers = next(csv_reader) + print("琛ㄥご:", headers) + # 閬嶅巻鏁版嵁琛� + _path = f"{base_path}/NGTSTick_filter.csv" + with open(_path, 'w', newline='', encoding='utf-8') as csvfile: + # 鍒涘缓涓�涓� CSV 鍐欏叆鍣ㄥ璞� + writer = csv.writer(csvfile) + # 閫愯鍐欏叆鏁版嵁 + for row in csv_reader: + if row[1] not in target_codes: + continue + # 灏嗘枃浠跺啓鍏ュ埌鏂囨湰 + writer.writerow(row) + + +def parse_market_data(day): + target_codes = __get_target_codes(day) + base_path = f"/home/userzjj/ftp/{day}" + with open(f"{base_path}/MarketData.csv", 'r', encoding='utf-8') as file: + csv_reader = csv.reader(file) + # 鑾峰彇琛ㄥご锛�: [SecurityID,ExchangeID,DataTimeStamp,PreClosePrice,OpenPrice,NumTrades,TotalVolumeTrade,TotalValueTrade,TotalBidVolume,AvgBidPrice,TotalAskVolume,AvgAskPrice,HighestPrice,LowestPrice,LastPrice,BidPrice1,BidVolume1,AskPrice1,AskVolume1....] + headers = next(csv_reader) + print("琛ㄥご:", headers) + # 閬嶅巻鏁版嵁琛� + _path = f"{base_path}/MarketData_filter.csv" + with open(_path, 'w', newline='', encoding='utf-8') as csvfile: + # 鍒涘缓涓�涓� CSV 鍐欏叆鍣ㄥ璞� + writer = csv.writer(csvfile) + # 閫愯鍐欏叆鏁版嵁 + for row in csv_reader: + if row[0] not in target_codes: + continue # 灏嗘枃浠跺啓鍏ュ埌鏂囨湰 writer.writerow(row) @@ -40,5 +105,16 @@ print("鎺ユ敹鐨勫弬鏁�", params) _type = params[0].strip() day = params[1].strip() + if len(params)>2: + code = params[2].strip() + else: + code = None if _type == 'OrderDetail': - parse_order_detail(day) + parse_order_detail(day, code) + elif _type == 'Transaction': + parse_transaction(day) + elif _type == 'NGTSTick': + parse_ngtstick(day) + elif _type == 'MarketData': + parse_market_data(day) + -- Gitblit v1.8.0