Skip to content

Repository files navigation

quant_trading · A股 T+1 动态网格做T 策略回测引擎

strategy-mindmap 需求文档从零实现的量化回测系统(Phase 1:回测引擎 + 专业 Web 终端)。 策略核心严格遵循需求文档,并叠加 4 项增强:整体止损、绩效指标、等权多标的、诚实建模保本

快速开始

uv sync                       # 创建环境并安装依赖

# 命令行回测
uv run python scripts/run_backtest.py \
    --codes sh.603341 sz.000063 sz.002465 \
    --start 2025-12-03 --end 2026-06-12 \
    --capital 1000000 --stop-loss 0.10 \
    --out report --trades

# Web 终端
uv run uvicorn quant_trading.web.app:app --port 8090
# 浏览器打开 http://127.0.0.1:8090/

# 测试
uv run --extra dev pytest

架构

策略核心只产出"买卖意图",成交交给可替换的执行器——回测期用模拟撮合, 将来实盘期换成券商执行器即可,策略逻辑不变(为 Phase 2 实盘留口子)。

quant_trading/
├── config.py            # 策略参数 + 回测请求模型(pydantic)
├── data/
│   ├── loader.py        # 通达信 5 分钟 txt 加载、代码↔文件名
│   └── indicators.py    # MA / RSI / MACD(日线,防未来函数)
├── strategy/
│   ├── subposition.py   # 子阵地状态机(风险仓/安全底仓/T+1 额度)
│   └── grid_strategy.py # 规则:入场/补仓/做T/保本/熔断/止损 → 成交
├── engine/
│   ├── executor.py      # 撮合执行器(跳空感知,回测/实盘解耦点)
│   ├── backtest.py      # 单股回测主循环
│   └── portfolio.py     # 多标的等权 + 组合聚合 + 大盘基准
├── metrics/performance.py  # 最大回撤/夏普/年化/卡玛/波动率/胜率
├── report/report.py     # JSON + Markdown 报告
└── web/                 # FastAPI + 专业前端(ECharts)

策略要点(与需求文档对应)

模块 规则
首单入场 模式 A 趋势(MA5上方)/ B RSI<30 抄底 / C 水下金叉,三选一
网格补仓 跌破最低成本 drop_pct、层数未满、趋势允许 → 加一层
高抛低吸做T 摸高 rise_pct → 回撤 sell_pullback 卖半 → 跌 add_pullback 接回,每阵地 max_add_count
保本防线 安全底仓跌破 成本×breakeven_coef → 卖出(跳空会破线小亏,非"绝对不亏")
暴涨熔断 surge_days 日最低涨 surge_pct → 停开新仓(已有仓位正常做T继续)
T+1 拦截 分离"总持仓/今日可卖",当天买入当日不可卖,所有卖出前校验
整体止损(增强) 风险仓跌破成本 stop_loss_pct → 认赔清仓(默认关闭)

数据

默认复用老项目 数据库/*.txt(通达信 5 分钟、前复权),可用 --data-dir 覆盖。

Phase 2(尚未实现)

实盘下单(QMT/Ptrade)、状态持久化/断点续跑、手动干预、钉钉通知——架构已预留接口。

About

动态网格 + 高抛低吸做T 策略规则

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages