一个 Docker 部署的网站版 ETH 策略实验台。
- 接 OKX 公共行情,默认
ETH-USDT - 支持
1h、4h、1dK线 - 可自行调整规则策略参数后回测
- 支持机器学习训练回测,默认 LightGBM
- 支持 AI 策略分析:风险评分、关键洞察、调参建议
- 显示总收益、最大回撤、夏普、交易次数、胜率、资金曲线、价格曲线和交易记录
- 提供 API 接口,可接入脚本、外部前端或自动化服务
- 预留 OKX 模拟盘 API 模块,默认不下单
docker compose up --build打开:
http://localhost:8000
规则策略:
- 均线交叉:短均线、长均线
- RSI:RSI周期、低位买入阈值、高位卖出阈值
- 突破:回看周期、突破幅度
机器学习策略:
- 特征:收益率、波动率、均线偏离、成交量变化、RSI
- 标签:未来 N 根K线收益率
- 模型:LightGBM,若不可用则回退到 scikit-learn
- 信号:预测收益大于阈值则持仓,否则空仓
第一版只接入模拟盘 API 检查,不自动下单。
创建 .env:
OKX_API_KEY=你的模拟盘key
OKX_API_SECRET=你的模拟盘secret
OKX_API_PASSPHRASE=你的passphrase
OKX_SIMULATED=true
再启动:
docker compose --env-file .env up --build页面左侧“OKX 模拟盘”区域会显示配置状态,并可检查模拟盘账户连接。
查看接口目录:
curl http://localhost:8000/api规则/机器学习回测:
curl -X POST http://localhost:8000/api/backtest \
-H "Content-Type: application/json" \
-d '{
"mode": "ml",
"instrument": "ETH-USDT",
"timeframe": "1h",
"lookback_days": 180,
"fee_rate": 0.001,
"ml_horizon": 6,
"ml_threshold": 0
}'AI 策略分析:
curl -X POST http://localhost:8000/api/analyze \
-H "Content-Type: application/json" \
-d '{
"strategy": "ml_lightgbm",
"metrics": {
"total_return": 0.12,
"buy_and_hold_return": 0.08,
"max_drawdown": -0.09,
"sharpe": 1.1,
"trades": 24,
"win_rate": 0.54
},
"request": {"mode": "ml", "fee_rate": 0.001}
}'OKX 模拟盘账户:
curl http://localhost:8000/api/okx/demo/accountOKX 模拟盘持仓:
curl "http://localhost:8000/api/okx/demo/positions?instId=ETH-USDT-SWAP"OKX 模拟盘挂单:
curl "http://localhost:8000/api/okx/demo/orders?instId=ETH-USDT-SWAP"OKX 模拟盘下单:
curl -X POST http://localhost:8000/api/okx/demo/order \
-H "Content-Type: application/json" \
-d '{
"instId": "ETH-USDT-SWAP",
"tdMode": "isolated",
"side": "buy",
"ordType": "market",
"sz": "1",
"posSide": "long"
}'OKX 模拟盘撤单:
curl -X POST http://localhost:8000/api/okx/demo/cancel \
-H "Content-Type: application/json" \
-d '{
"instId": "ETH-USDT-SWAP",
"ordId": "你的订单ID"
}'所有 OKX 模拟盘接口都会强制发送:
x-simulated-trading: 1
如果没有配置 OKX_SIMULATED=true 和完整 API 凭证,接口会返回 403,不会请求 OKX。
python -m venv .venv
.venv/bin/pip install -r requirements.txt
PYTHONPATH=. .venv/bin/pytest -q本项目用于研究和模拟,不构成投资建议。第一版不包含真实交易执行;后续可以在 backend/app/paper.py 上增加订单生成、仓位限制、止损、最大回撤熔断和人工确认。