feat: websocket kline fetch and enforce proxy routing

This commit is contained in:
crypto_predictor committed 2026-03-07 12:12:49 +08:00
1 parent 7af21bed6a
commit 77d084341c
5 files changed
+280 -45

No files matched your search

+19 -12
View File
@@ -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,