Parcourir la source

feat(market-data): 添加行情数据记录主程序

新增main.py作为行情数据记录主程序,实现以下功能:
1. 同时记录Lighter和Binance交易所的行情数据
2. 支持通过环境变量设置代理
3. 实现WebSocket连接管理和数据处理逻辑
4. 添加日志记录和错误处理机制

同时更新.gitignore忽略数据库文件并修复策略模块的导入路径
skyfffire il y a 5 jours
Parent
commit
346a12ec65
3 fichiers modifiés avec 14 ajouts et 5 suppressions
  1. 4 1
      .gitignore
  2. 9 3
      src/leadlag/main.py
  3. 1 1
      src/leadlag/strategy.py

+ 4 - 1
.gitignore

@@ -110,4 +110,7 @@ dmypy.json
 .pyre/
 
 # config
-config.toml
+config.toml
+
+# db
+*.db

+ 9 - 3
src/leadlag/listener.py → src/leadlag/main.py

@@ -165,18 +165,23 @@ async def handle_binance_websocket(config):
     """处理Binance WebSocket连接,订阅aggTrade数据"""
     
     # 获取配置的交易对,添加USDT后缀
-    target_symbol = config.get('strategy', 'target_symbol')
+    logger.info(f"配置的交易对: {config}")
+    strategy_config = config.get('strategy', 'target_symbol')
+    target_symbol = strategy_config['target_symbol']
     binance_symbol = f"{target_symbol}USDT"
     
     logger.info(f"开始Binance WebSocket连接,订阅 {binance_symbol}@aggTrade")
     
     while True:
         try:
+            # 构建代理参数
+            proxy = 'http://' + PROXY_ADDRESS if PROXY_ADDRESS else None
+            
             # Binance WebSocket URL
             binance_ws_url = f"wss://fstream.binance.com/ws/{binance_symbol.lower()}@aggTrade"
             
             logger.info(f"连接到Binance WebSocket: {binance_ws_url}")
-            async with websockets.connect(binance_ws_url) as websocket:
+            async with websockets.connect(binance_ws_url, proxy=proxy) as websocket:
                 logger.info(f"Binance WebSocket连接成功,开始接收 {binance_symbol} 的aggTrade数据...")
                 
                 async for message in websocket:
@@ -216,7 +221,8 @@ async def handle_order_book_websocket(config):
     global lighter_websocket
     
     # 获取配置的交易对
-    target_symbol = config.get('strategy', 'target_symbol')
+    strategy_config = config.get('strategy', 'target_symbol')
+    target_symbol = strategy_config['target_symbol']
     
     while True:
         try:

+ 1 - 1
src/leadlag/strategy.py

@@ -10,7 +10,7 @@ from enum import Enum
 import os
 import lighter
 import time
-from .database import TradingDatabase
+from database import TradingDatabase
 
 
 # 配置日志