| | |
| | | import csv |
| | | import os |
| | | import sys |
| | | import time |
| | | |
| | | from db import mysql_data_delegate as mysql_data |
| | | from huaxin_client.l2_client_test import L2TransactionDataManager |
| | | from log_module import log_export |
| | |
| | | @param day: |
| | | @return: |
| | | """ |
| | | print("开始处理数据", day, big_order_path, target_code) |
| | | print("开始处理成交大单数据", day, big_order_path, target_code) |
| | | l2_data_manager_dict = {} |
| | | # 解析数据 |
| | | __start_time = time.time() |
| | | transaction_data = parse_transaction(day) |
| | | print("Transaction 读取完毕", len(transaction_data)) |
| | | print("Transaction 读取完毕", len(transaction_data), "耗时", int(time.time() - __start_time)) |
| | | __start_time = time.time() |
| | | ngtstick_data = parse_ngtstick(day) |
| | | print("NGTSTick 读取完毕", len(ngtstick_data)) |
| | | print("NGTSTick 读取完毕", len(ngtstick_data), "耗时", int(time.time() - __start_time)) |
| | | __start_time = time.time() |
| | | big_order_list = [] |
| | | for index, row in enumerate(transaction_data): |
| | | code = row[1] |
| | |
| | | while not l2_data_manager.big_accurate_sell_order_queue.empty(): |
| | | data = l2_data_manager.big_accurate_sell_order_queue.get() |
| | | big_order_list.append((code, 1, data)) |
| | | print("Transaction 处理完毕", len(big_order_list)) |
| | | print("Transaction 处理完毕", len(big_order_list), "耗时", int(time.time() - __start_time)) |
| | | __start_time = time.time() |
| | | |
| | | for index, row in enumerate(ngtstick_data): |
| | | code = row[1] |
| | |
| | | while not l2_data_manager.big_accurate_sell_order_queue.empty(): |
| | | data = l2_data_manager.big_accurate_sell_order_queue.get() |
| | | big_order_list.append((code, 1, data)) |
| | | print("NGTSTick 处理完毕", len(big_order_list)) |
| | | print("NGTSTick 处理完毕", len(big_order_list), "耗时", int(time.time() - __start_time)) |
| | | __start_time = time.time() |
| | | # 读取剩余的未读数据的代码 |
| | | for code in l2_data_manager_dict: |
| | | l2_data_manager: L2TransactionDataManager = l2_data_manager_dict[code] |
| | |
| | | while not l2_data_manager.big_accurate_sell_order_queue.empty(): |
| | | data = l2_data_manager.big_accurate_sell_order_queue.get() |
| | | big_order_list.append((code, 1, data)) |
| | | print("开始写入本地文件:", len(big_order_list)) |
| | | print("开始写入本地文件:", len(big_order_list), "耗时", int(time.time() - __start_time)) |
| | | __start_time = time.time() |
| | | # 开始写入本地文件 |
| | | with open(big_order_path, mode='w', encoding='utf-8') as f: |
| | | for order in big_order_list: |
| | | f.write(f"{order}") |
| | | print("写入本地文件结束:") |
| | | |
| | | print("写入本地文件结束:", "耗时", int(time.time() - __start_time)) |
| | | __start_time = time.time() |
| | | |
| | | |
| | | def parse_market_data(day): |
| | |
| | | |
| | | |
| | | # 命令模式 /home/userzjj/app/gp-server/l2_data_parser Transaction 2025-05-08 |
| | | # 解析大单: /home/userzjj/app/gp-server/l2_data_parser ExtractDealBigOrder 2025-05-08 /home/userzjj/temp.txt 000555 |
| | | if __name__ == '__main__': |
| | | if len(sys.argv) > 1: |
| | | params = sys.argv[1:] |
| | |
| | | parse_market_data(day) |
| | | elif _type == 'ExtractDealBigOrder': |
| | | # 提取所有成交的大单 |
| | | # TODO |
| | | if len(params) > 2: |
| | | save_path = params[2].strip() |
| | | else: |