feat: websocket kline fetch and enforce proxy routing
This commit is contained in:
1 parent
7af21bed6a
commit
77d084341c
5 files changed
+280
-45
No files matched your search
@@ -15,7 +15,7 @@ import argparse
|
||||
import json
|
||||
import time
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
import schedule
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Optional, Tuple, Dict, List
|
||||
@@ -68,24 +68,20 @@ def setup_logging(log_dir: str = "logs", log_level: int = logging.INFO) -> loggi
|
||||
datefmt="%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
|
||||
# 文件handler (按大小轮转, 最大10MB, 保留5个备份)
|
||||
# 文件handler (按天轮转, 保留最近30天)
|
||||
log_file = os.path.join(log_dir, "polymarket_trading.log")
|
||||
file_handler = RotatingFileHandler(
|
||||
file_handler = TimedRotatingFileHandler(
|
||||
log_file,
|
||||
maxBytes=10*1024*1024, # 10MB
|
||||
backupCount=5,
|
||||
when='midnight',
|
||||
interval=1,
|
||||
backupCount=30,
|
||||
encoding='utf-8'
|
||||
)
|
||||
file_handler.suffix = "%Y-%m-%d"
|
||||
file_handler.setLevel(log_level)
|
||||
file_handler.setFormatter(formatter)
|
||||
logger.addHandler(file_handler)
|
||||
|
||||
# 控制台handler
|
||||
console_handler = logging.StreamHandler(sys.stdout)
|
||||
console_handler.setLevel(log_level)
|
||||
console_handler.setFormatter(formatter)
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
return logger
|
||||
|
||||
|
||||
@@ -93,6 +89,16 @@ def setup_logging(log_dir: str = "logs", log_level: int = logging.INFO) -> loggi
|
||||
logger = setup_logging()
|
||||
|
||||
|
||||
def _apply_global_proxy(proxy_url: str) -> None:
|
||||
"""统一设置代理环境变量,确保第三方网络库也走代理。"""
|
||||
os.environ["HTTP_PROXY"] = proxy_url
|
||||
os.environ["HTTPS_PROXY"] = proxy_url
|
||||
os.environ["ALL_PROXY"] = proxy_url
|
||||
os.environ["http_proxy"] = proxy_url
|
||||
os.environ["https_proxy"] = proxy_url
|
||||
os.environ["all_proxy"] = proxy_url
|
||||
|
||||
|
||||
class PolymarketBTCTrader:
|
||||
"""Polymarket BTC Hourly交易器 (多模型集成版)"""
|
||||
|
||||
@@ -119,7 +125,8 @@ class PolymarketBTCTrader:
|
||||
self.dry_run = dry_run
|
||||
|
||||
# HTTP客户端
|
||||
proxy = os.getenv("SOCKS5_PROXY") if os.getenv("USE_PROXY", "false").lower() == "true" else None
|
||||
proxy = os.getenv("SOCKS5_PROXY", "socks5://127.0.0.1:7890")
|
||||
_apply_global_proxy(proxy)
|
||||
self.http = httpx.Client(
|
||||
timeout=30.0,
|
||||
proxy=proxy,
|
||||
|
||||
Reference in new issue
Block a user