auto_trade_sys/UNICORN_WEBSOCKET.md
薇薇安 8a89592cb5 a
2026-01-13 17:30:59 +08:00

3.6 KiB
Raw Blame History

Unicorn WebSocket 集成说明

概述

已集成 unicorn-binance-websocket-api提供高性能的实时WebSocket数据流支持。

功能特性

1. 高性能实时数据流

  • 使用Unicorn库提供更高效的WebSocket连接
  • 支持多路复用流(一个连接订阅多个交易对)
  • 自动重连和错误恢复

2. 实时价格监控

  • 订阅交易对的实时ticker数据
  • 实时获取最新价格无需轮询API
  • 支持价格更新回调

3. K线数据流

  • 订阅实时K线数据
  • 支持多种时间周期1m, 5m, 15m等
  • 实时更新K线数据

配置

config.py 中:

TRADING_CONFIG = {
    # Unicorn WebSocket配置
    'USE_UNICORN_WEBSOCKET': True,  # 是否使用Unicorn WebSocket
}

使用方法

1. 自动启用

程序启动时会自动检测并启用Unicorn WebSocket如果配置为True

2. 订阅实时价格

# 在代码中订阅实时价格
symbols = ['BTCUSDT', 'ETHUSDT']
client.subscribe_realtime_prices(symbols, price_callback)

# 回调函数
async def price_callback(symbol, price, price_data):
    print(f"{symbol} 最新价格: {price}")

3. 获取实时价格

# 获取实时价格从WebSocket流
price = client.get_realtime_price('BTCUSDT')
if price:
    print(f"BTCUSDT 实时价格: {price}")

4. 监控价格变化

# 使用market_scanner监控价格
await scanner.monitor_price('BTCUSDT', price_callback)

优势

相比标准WebSocket

  1. 性能更高

    • 多路复用:一个连接订阅多个交易对
    • 更低的延迟
    • 更少的资源占用
  2. 更稳定

    • 自动重连机制
    • 错误恢复
    • 流管理更完善
  3. 功能更丰富

    • 支持多种数据流ticker, kline等
    • 流统计信息
    • 更好的数据解析

回退机制

如果Unicorn WebSocket启动失败或不可用系统会自动回退到标准的python-binance WebSocket确保功能正常。

注意事项

  1. 依赖安装

    pip install unicorn-binance-websocket-api==2.4.0
    
  2. 测试网支持

    • 自动检测测试网/生产网环境
    • 使用对应的WebSocket端点
  3. 资源管理

    • 程序退出时自动清理所有流
    • 避免资源泄漏
  4. 性能考虑

    • 订阅大量交易对时,注意系统资源
    • 建议订阅数量不超过100个

故障排查

问题1Unicorn启动失败

原因:依赖未安装或版本不兼容 解决

pip install unicorn-binance-websocket-api==2.4.0

问题2无法获取实时价格

原因:未订阅该交易对 解决:先调用 subscribe_realtime_prices() 订阅

问题3流数据丢失

原因:处理速度跟不上数据产生速度 解决:检查回调函数是否阻塞,优化处理逻辑

示例代码

# 订阅多个交易对的实时价格
symbols = ['BTCUSDT', 'ETHUSDT', 'BNBUSDT']

async def on_price_update(symbol, price, price_data):
    print(f"{symbol}: {price}")
    # 可以在这里实现交易逻辑

# 订阅
client.subscribe_realtime_prices(symbols, on_price_update)

# 获取实时价格
btc_price = client.get_realtime_price('BTCUSDT')
print(f"BTC价格: {btc_price}")

技术细节

流管理

  • 每个交易对对应一个stream_id
  • 支持动态添加/删除订阅
  • 自动管理流的生命周期

数据处理

  • 异步处理流数据
  • 支持多个回调函数
  • 自动解析数据格式

性能优化

  • 使用缓冲区减少API调用
  • 批量处理数据
  • 异步非阻塞处理

更新日志

  • 2026-01-13初始集成Unicorn WebSocket支持