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