🧪 Skills
Binance Stat Arb Monitor
Binance 统计套利监控系统。基于 ETH/BTC 永续合约价格比率计算 z-score,生成均值回归交易信号并推送到 Telegram 或飞书。 使用场景: (1) 监控统计套利机会
v1.0.0
Description
name: binance-stat-arb-monitor description: | Binance 统计套利监控系统。基于 ETH/BTC 永续合约价格比率计算 z-score,生成均值回归交易信号并推送到 Telegram 或飞书。
使用场景: (1) 监控统计套利机会(ETH/BTC 比率偏离均值) (2) 计算 z-score 判断开仓/平仓时机 (3) 生成交易信号(OPEN/CLOSE) (4) 通过 Telegram Channel 或飞书推送信号 (5) 记录信号历史用于回测分析
数据来源:Binance USDT 合约公共 API(无需认证即可获取行情数据) metadata: version: "1.0.0" author: SR_CAO license: MIT
Binance Stat Arb Monitor
Overview
统计套利(Statistical Arbitrage)监控工具,基于 Binance USDT 永续合约市场数据,监控 ETH/BTC 价格比率的偏离程度,当出现均值回归机会时生成交易信号并推送通知。
Strategy Explanation
什么是统计套利?
统计套利是一种基于数学模型的量化交易策略,利用资产价格的统计相关性进行套利。其核心假设是:两个相关资产的价格比率会围绕均值波动,当偏离均值时,未来有回归均值的趋势。
ETH/BTC 比率策略
-
观察 ETH/BTC 价格比率
- 比率 = ETH 价格 / BTC 价格
- 历史均值约 0.0293(数据来源:Binance ETHUSDT/BTCUSDT)
-
计算 z-score
- z = (当前比率 - 历史均值) / 历史标准差
- z-score 衡量当前价格偏离均值的程度(标准差倍数)
-
交易信号逻辑
- z-score < -3.0:ETH 相对 BTC 偏低 → 做多 ETH + 做空 BTC
- z-score > +3.0:ETH 相对 BTC 偏高 → 做空 ETH + 做多 BTC
- z-score 回归至 ±1.0:平仓止盈
- z-score 触及 ±4.5:止损
Quick Start
1. 配置
# 复制配置模板
cp config.example.json config.json
# 编辑配置(必须)
vim config.json
2. 安装依赖
pip install -r requirements.txt
3. 运行监控
# 手动运行一次
python scripts/monitor.py
# 或设置定时任务(每5分钟检查)
*/5 * * * * cd /path/to/skill && python scripts/monitor.py >> /var/log/stat_arb.log 2>&1
4. 查看输出
# 查看最新信号
cat data/latest_signal.json
# 查看信号历史
cat data/signals.json
Configuration
config.json 完整配置
{
"binance": {
"base_url": "https://fapi.binance.com",
"timeout": 10
},
"strategy": {
"symbol1": "ETHUSDT",
"symbol2": "BTCUSDT",
"lookback_period": 720,
"interval": "1h",
"entry_threshold": 3.0,
"exit_threshold": 1.0,
"stop_loss": 4.5,
"min_zscore_for_signal": 2.5,
"position_size_usd": 1000
},
"notification": {
"enabled": true,
"telegram": {
"enabled": true,
"bot_token": "YOUR_BOT_TOKEN",
"chat_id": "YOUR_CHANNEL_CHAT_ID"
},
"feishu": {
"enabled": false,
"webhook_url": ""
}
},
"storage": {
"data_dir": "data",
"signals_file": "data/signals.json",
"latest_file": "data/latest_signal.json",
"log_file": "data/monitor.log"
}
}
配置说明
| 配置项 | 类型 | 说明 |
|---|---|---|
binance.base_url |
string | Binance API 地址(测试网:https://demo-fapi.binance.com) |
strategy.symbol1 |
string | 分子交易对(ETHUSDT) |
strategy.symbol2 |
string | 分母交易对(BTCUSDT) |
strategy.lookback_period |
int | 历史数据点数(720 = 30天 x 24小时) |
strategy.interval |
string | K线间隔(1h, 4h, 1d) |
strategy.entry_threshold |
float | 开仓阈值(z-score 绝对值) |
strategy.exit_threshold |
float | 平仓阈值(z-score 回归点) |
strategy.stop_loss |
float | 止损阈值 |
strategy.min_zscore_for_signal |
float | 最小信号阈值(避免噪音) |
notification.telegram.bot_token |
string | Telegram Bot Token(@BotFather 创建) |
notification.telegram.chat_id |
string | Channel Chat ID(@username_to_id_bot 获取) |
Telegram Bot 设置
1. 创建 Bot
- 打开 Telegram,搜索 @BotFather
- 发送
/newbot创建新机器人 - 获取 Bot Token
2. 获取 Channel Chat ID
- 创建 Telegram Channel
- 将 Bot 添加为管理员
- 使用 @username_to_id_bot 获取 Channel 的 chat_id(格式:-100xxxxxxxxxx)
3. 配置
将 Token 和 Chat ID 填入 config.json
Output Format
Signal JSON
{
"timestamp": "2026-03-14T19:00:00+08:00",
"signal_type": "OPEN",
"direction": "LONG_ETH_SHORT_BTC",
"zscore": -3.51,
"ratio": 0.029257,
"mean": 0.029305,
"std": 0.000315,
"threshold": {
"entry": 3.0,
"exit": 1.0,
"stop_loss": 4.5
},
"prices": {
"eth": 2063.45,
"btc": 70528.50
},
"recommendation": {
"action": "LONG ETH-PERP + SHORT BTC-PERP",
"eth_entry": 2063.45,
"btc_entry": 70528.50,
"position_size_usd": 1000
},
"estimate": {
"expected_return": 0.00118,
"fees_taker": 0.00140,
"net_pnl": -0.00022
},
"strength": 4,
"volatility": "normal"
}
Telegram Message Format
🟢 [OPEN] 统计套利开仓信号
ETH/BTC z-score: -3.51 (偏低,均值回归概率大)
比率: 0.029257 (均值: 0.029305)
动态阈值: 开仓 ±3.00 / 止损 ±4.50
z波动率: 0.65 正常
建议操作:
• LONG ETH-PERP (市价) @ ~$2,063.45
• SHORT BTC-PERP (市价) @ ~$70,528.50
预估 (每腿 $1000):
预期利润: $1.18 (0.118%)
手续费: $1.40 (taker x4)
净利润: $-0.22
信号强度: ★★★★☆
Risk Warning
⚠️ 重要风险提示
- 统计套利并非无风险策略
- 极端市场条件下价差可能持续扩大
- 手续费对收益影响显著
- 建议使用测试网充分验证后再实盘
- 本工具仅供参考,不构成投资建议
API Reference
Binance Futures API(公共接口)
| Endpoint | 说明 | 认证 |
|---|---|---|
/fapi/v1/ticker/price |
当前价格 | 否 |
/fapi/v1/klines |
K线数据 | 否 |
/fapi/v1/premiumIndex |
资金费率 | 否 |
/fapi/v1/fundingRate |
资金费率历史 | 否 |
/fapi/v1/openInterest |
未平仓合约 | 否 |
/fapi/v1/ticker/24hr |
24小时行情 | 否 |
详细文档:https://binance-docs.github.io/apidocs/futures/cn/
File Structure
binance-stat-arb-monitor/
├── SKILL.md # 本文档
├── config.example.json # 配置模板
├── config.json # 运行时配置(不提交)
├── requirements.txt # Python 依赖
├── scripts/
│ ├── __init__.py
│ ├── monitor.py # 主入口
│ ├── fetcher.py # Binance API 获取
│ ├── calculator.py # z-score 计算
│ ├── formatter.py # 消息格式化
│ └── notifier.py # 通知推送
├── references/
│ ├── stat_arb_theory.md # 策略理论
│ └── binance_api.md # API 参考
└── data/
├── signals.json # 信号历史
├── latest_signal.json # 最新信号
└── monitor.log # 运行日志
Troubleshooting
问题:获取数据失败
- 检查网络连接
- 确认 Binance API 可访问
- 尝试切换到测试网
问题:Telegram 推送失败
- 确认 Bot Token 正确
- 确认 Bot 已添加到 Channel
- 确认 Chat ID 格式正确(-100 开头)
问题:z-score 计算异常
- 检查 lookback_period 是否足够(建议 ≥100)
- 确认数据获取完整
Changelog
v1.0.0 (2026-03-14)
- 初始版本
- 支持 ETH/BTC 统计套利监控
- 支持 Telegram/飞书推送
- 支持信号历史记录
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!