Skip to content

mcchipp/eth-quant

Repository files navigation

ETH Strategy Lab

一个 Docker 部署的网站版 ETH 策略实验台。

功能

  • 接 OKX 公共行情,默认 ETH-USDT
  • 支持 1h4h1d K线
  • 可自行调整规则策略参数后回测
  • 支持机器学习训练回测,默认 LightGBM
  • 支持 AI 策略分析:风险评分、关键洞察、调参建议
  • 显示总收益、最大回撤、夏普、交易次数、胜率、资金曲线、价格曲线和交易记录
  • 提供 API 接口,可接入脚本、外部前端或自动化服务
  • 预留 OKX 模拟盘 API 模块,默认不下单

启动

docker compose up --build

打开:

http://localhost:8000

策略

规则策略:

  • 均线交叉:短均线、长均线
  • RSI:RSI周期、低位买入阈值、高位卖出阈值
  • 突破:回看周期、突破幅度

机器学习策略:

  • 特征:收益率、波动率、均线偏离、成交量变化、RSI
  • 标签:未来 N 根K线收益率
  • 模型:LightGBM,若不可用则回退到 scikit-learn
  • 信号:预测收益大于阈值则持仓,否则空仓

OKX 模拟盘配置

第一版只接入模拟盘 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 模拟盘”区域会显示配置状态,并可检查模拟盘账户连接。

API 接口

查看接口目录:

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/account

OKX 模拟盘持仓:

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 上增加订单生成、仓位限制、止损、最大回撤熔断和人工确认。

About

eth量化策略机器学习和回测

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors