QuantLab 是一个专为加密货币期货交易设计的量化交易实验室,提供数据抓取、技术分析、策略回测等完整功能。
- 数据抓取:从 Binance 拉取 OHLCV 数据,支持缓存和增量更新
- 技术分析:绘制 K 线图,支持多种技术指标
- 策略回测:实现"均线簇 + MACD 确认"策略,支持杠杆交易和风险管理
# 安装依赖
pip install -r requirements.txt
# 一键运行完整流程
make quickstart# 安装依赖
pip install -r requirements.txt
# 运行快速启动
python quickstart.py# 双击运行
quickstart.bat# 添加执行权限并运行
chmod +x quickstart.sh
./quickstart.sh# 方法1:使用pip(推荐)
pip install -r requirements.txt
# 方法2:使用Poetry
pip install poetry
poetry install
# 方法3:使用安装脚本
python install.py创建 .env 文件:
BINANCE_API_KEY=your_api_key
BINANCE_SECRET_KEY=your_secret_key注意:公共数据抓取无需 API Key,只有私有数据或高频请求才需要。
make fetch
# 或
python scripts/fetch_to_csv.py --symbols BTCUSDT ETHUSDT --timeframes 1h 4h 1d 1w --since 2023-01-01 --until 2025-10-01make plot
# 或
python scripts/plot_kline.py --symbol BTCUSDT --timeframe 4h --window 500make backtest
# 或
python scripts/run_backtest.py --symbol BTCUSDT --timeframe 4h --equity 5000 --leverage 10 --fee 0.0008 --slippage 0.0005 --cluster_pct 0.01 --retest Falsequantlab/
├── config.py # 配置管理
├── data/ # 数据模块
│ ├── binance_client.py # Binance API 客户端
│ └── loader.py # 数据加载器
├── indicators/ # 技术指标
│ ├── ma_ema.py # 移动平均线
│ ├── macd.py # MACD 指标
│ └── cluster.py # 均线簇
├── backtest/ # 回测引擎
│ ├── portfolio.py # 投资组合管理
│ ├── engine.py # 回测引擎
│ └── metrics.py # 绩效指标
├── plotting/ # 绘图模块
│ └── kline.py # K 线图
├── strategy/ # 交易策略
│ └── cluster_macd_4h.py # 均线簇+MACD策略
└── utils/ # 工具函数
├── timeframes.py # 时间框架
└── io.py # 文件操作
| 参数 | 默认值 | 说明 |
|---|---|---|
| fee | 0.0008 | 单边手续费率 (0.08%) |
| slippage | 0.0005 | 滑点率 (0.05%) |
| leverage | 10 | 杠杆倍数 |
| equity | 5000 | 起始资金 (USDT) |
| cluster_pct | 0.01 | 均线簇密集阈值 (1%) |
| mmr | 0.005 | 维持保证金率 (0.5%) |
| 参数 | 默认值 | 说明 |
|---|---|---|
| macd_fast | 12 | MACD 快线周期 |
| macd_slow | 26 | MACD 慢线周期 |
| macd_signal | 9 | MACD 信号线周期 |
| ma_periods | [20, 60, 120] | 均线周期 |
| take_profit | 0.25 | 止盈比例 (杠杆后 25%) |
| stop_loss | 0.05 | 止损比例 (杠杆后 5%) |
| retest_confirmation | False | 是否启用回踩确认 |
支持的时间框架:1h, 4h, 1d, 1w
- 均线簇识别:当多条均线(20/60/120)的宽度小于价格的 1% 时,判定为均线簇
- 突破信号:价格突破均线簇上沿/下沿
- MACD 确认:
- 多单:DIF > DEA 且 hist > 0
- 空单:DIF < DEA 且 hist < 0
- 风险管理:
- 止盈:杠杆后收益率 +25%
- 止损:杠杆后收益率 -5%
- 爆仓:权益 <= 名义价值 × 维持保证金率
- 入场价格:收盘价 + 滑点
- 出场价格:目标价格 + 滑点
- 爆仓价格:基于收盘价近似计算
注意:本系统使用收盘价近似标记价格,与真实交易存在差异,仅用于策略验证。
data/raw/{symbol}_{timeframe}.csv:原始 OHLCV 数据
plots/{symbol}_{timeframe}.png:K 线图
reports/{symbol}_{timeframe}/metrics.csv:绩效指标reports/{symbol}_{timeframe}/equity_curve.png:资金曲线reports/{symbol}_{timeframe}/trades.csv:交易记录
Binance API 有速率限制,系统会自动处理:
- 公共数据:1200 请求/分钟
- 私有数据:600 请求/分钟
所有数据统一使用 UTC 时区,确保一致性。
当前实现为线性近似,实际交易中 Binance 使用分级维持保证金率,可根据需要扩展。
滑点基于收盘价计算,实际交易中滑点与市场深度和订单大小相关。
- 在
strategy/目录创建新策略文件 - 实现
generate_signals()方法 - 在回测引擎中注册策略
- 在
indicators/目录添加指标文件 - 实现指标计算函数
- 在策略中调用
- 在
data/目录添加新交易所客户端 - 实现统一的接口方法
- 更新配置和文档
MIT License
欢迎提交 Issue 和 Pull Request!