|
@@ -16,7 +16,6 @@ import time
|
|
|
import logging
|
|
import logging
|
|
|
import os
|
|
import os
|
|
|
import requests
|
|
import requests
|
|
|
-import traceback
|
|
|
|
|
from datetime import datetime
|
|
from datetime import datetime
|
|
|
from strategy import TradingStrategy
|
|
from strategy import TradingStrategy
|
|
|
|
|
|
|
@@ -86,8 +85,7 @@ async def fetch_lighter_orderbooks(session):
|
|
|
logger.error(f"获取Lighter orderBooks数据失败: HTTP {response.status}")
|
|
logger.error(f"获取Lighter orderBooks数据失败: HTTP {response.status}")
|
|
|
return None
|
|
return None
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"获取Lighter orderBooks数据时出错: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"获取Lighter orderBooks数据时出错: {str(e)}")
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
@@ -103,8 +101,7 @@ async def fetch_binance_premium_index(session):
|
|
|
logger.error(f"获取Binance标记价格数据失败: HTTP {response.status}")
|
|
logger.error(f"获取Binance标记价格数据失败: HTTP {response.status}")
|
|
|
return None
|
|
return None
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"获取Binance标记价格数据时出错: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"获取Binance标记价格数据时出错: {str(e)}")
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
@@ -120,8 +117,7 @@ async def fetch_binance_ticker_price(session):
|
|
|
logger.error(f"获取Binance最新价格数据失败: HTTP {response.status}")
|
|
logger.error(f"获取Binance最新价格数据失败: HTTP {response.status}")
|
|
|
return None
|
|
return None
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"获取Binance最新价格数据时出错: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"获取Binance最新价格数据时出错: {str(e)}")
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
@@ -140,8 +136,7 @@ def update_market_id_mapping(orderbooks_data):
|
|
|
|
|
|
|
|
logger.info(f"更新market_id映射,共 {len(market_id_to_symbol)} 个交易对,{market_id_to_symbol}")
|
|
logger.info(f"更新market_id映射,共 {len(market_id_to_symbol)} 个交易对,{market_id_to_symbol}")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"更新market_id映射时出错: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"更新market_id映射时出错: {str(e)}")
|
|
|
|
|
|
|
|
|
|
|
|
|
async def handle_binance_data_collection():
|
|
async def handle_binance_data_collection():
|
|
@@ -181,6 +176,7 @@ async def handle_binance_data_collection():
|
|
|
await asyncio.sleep(0.3)
|
|
await asyncio.sleep(0.3)
|
|
|
|
|
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
|
|
+ import traceback
|
|
|
error_info = traceback.format_exc()
|
|
error_info = traceback.format_exc()
|
|
|
logger.error(f"Binance数据收集出错: {str(e)}\n{error_info}")
|
|
logger.error(f"Binance数据收集出错: {str(e)}\n{error_info}")
|
|
|
await asyncio.sleep(1) # 出错时等待1秒再重试
|
|
await asyncio.sleep(1) # 出错时等待1秒再重试
|
|
@@ -253,17 +249,14 @@ async def handle_market_stats_websocket():
|
|
|
logger.debug(f"收到未处理的消息类型: {message_type}")
|
|
logger.debug(f"收到未处理的消息类型: {message_type}")
|
|
|
|
|
|
|
|
except json.JSONDecodeError as e:
|
|
except json.JSONDecodeError as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"解析WebSocket消息失败: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"解析WebSocket消息失败: {str(e)}")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"处理WebSocket消息时出错: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"处理WebSocket消息时出错: {str(e)}")
|
|
|
|
|
|
|
|
except websockets.exceptions.ConnectionClosed:
|
|
except websockets.exceptions.ConnectionClosed:
|
|
|
logger.warning("Market Stats WebSocket连接断开,5秒后重连...")
|
|
logger.warning("Market Stats WebSocket连接断开,5秒后重连...")
|
|
|
await asyncio.sleep(5)
|
|
await asyncio.sleep(5)
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
logger.error(f"Market Stats WebSocket连接出错: {str(e)},5秒后重连...")
|
|
logger.error(f"Market Stats WebSocket连接出错: {str(e)},5秒后重连...")
|
|
|
await asyncio.sleep(5)
|
|
await asyncio.sleep(5)
|
|
|
|
|
|
|
@@ -307,8 +300,7 @@ def write_batch_to_questdb(data_batch):
|
|
|
return False
|
|
return False
|
|
|
|
|
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"批量写入数据到QuestDB时出错: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"批量写入数据到QuestDB时出错: {str(e)}")
|
|
|
return False
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
@@ -478,5 +470,4 @@ if __name__ == "__main__":
|
|
|
except KeyboardInterrupt:
|
|
except KeyboardInterrupt:
|
|
|
logger.info("行情数据记录器被用户停止")
|
|
logger.info("行情数据记录器被用户停止")
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
- error_info = traceback.format_exc()
|
|
|
|
|
- logger.error(f"发生意外错误: {str(e)}\n{error_info}")
|
|
|
|
|
|
|
+ logger.error(f"发生意外错误: {str(e)}")
|