可审计的事件驱动回测引擎:数据 → 信号 → 成交 → 绩效。基于此前 quant-data-pipeline 的拉取经验做成独立项目(第 1–2 周)。
数据源:
- A 股 ETF:腾讯行情(东财不可达时的主路径)→ AkShare / 东财 / 新浪 → 可选 Tushare
- 加密货币:Gate → Binance
| 环节 | 约定 |
|---|---|
| 信号 | T 日 收盘后 用当日及之前的收盘价计算(双均线 SMA/EMA) |
| 成交 | 最早在 T+1 开盘或收盘成交(fill_on: next_open | next_close) |
| 延迟 | delay_bars 在 T+1 之外再推迟 N 根 K 线 |
| 复权 | 默认 前复权,说明见 docs/ADJUSTMENT.md |
| 停牌 | volume=0 → suspended,成交跳过 |
| 费率 | 可配置费率矩阵(股票 / ETF / 永续) |
| 滑点 | 固定比例、成交量冲击、波动率调整 |
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python run.py第 2 周完整绩效报告(含滑点敏感性):
python examples/run_performance_report.py第 3 周(510300 双均线 + 波动率标的,三平台可移植):
python examples/run_dma_vol_research.py
python examples/run_attribution.py只跑单元测试:
python -m pytest -q- ETF 组合(第 1–2 周教学版):沪深300ETF
510300+ 中证500ETF510500,自 2019-01-01(≥5 年),20/60 日 SMA 双均线,多标的等权。 - 加密货币:
BTC_USDT日线(Gate,失败回退 Binance),12/26 日 EMA。 - 第 3 周 canonical:单标的
510300,SMA 30/120 + ATR 过滤 + 12% 波动率标的(见上)。
backtest/ # 事件驱动引擎(数据/信号/成交)
performance_analytics/ # 第2周:费率、滑点、完整指标、报告
platforms/ # 第3周:QuantConnect Lean / 聚宽粘贴稿
examples/
tests/
docs/
fees.py— 费率矩阵(万2.5+印花税 / ETF 万1无印花税 / Maker·Taker·资金费)slippage.py— 固定比例、volume participation、波动率调整滑点metrics.py— Sortino / Omega / 滚动夏普 / Bootstrap / 基准对比sensitivity.py— 滑点敏感性表distribution.py— 偏度峰度与夏普适用性讨论report.py— 一键 Markdown 绩效报告(资金曲线、回撤、月度热力图)
见 docs/DUAL_MA_PERFORMANCE_REPORT.md(含滑点敏感性与收益分布讨论)。
Canonical 策略不再用教学版 20/60 等权组合,而是单标的 510300 双均线 + ATR 强度过滤 + 波动率标的(SMA 30/120,k=1,目标波动 12%,仓位 10% 步进)。参数只在 2019–2022 上选择,2023+ 只报告。
| 文档 / 代码 | 用途 |
|---|---|
| docs/STRATEGY_SPEC.md | 三平台必须对齐的公式与成交合约 |
| docs/DMA_VOL_RESEARCH.md | IS/OOS 与买入持有对照 |
| docs/qc_research_report.md | QuantConnect 英文研究报告 |
| docs/joinquant_strategy_post.md | 聚宽发帖稿 |
| docs/CROSS_PLATFORM_ATTRIBUTION.md | Day 5–6 核心产出:一页归因表(数据/成交/费率/绩效口径均已量化) |
| docs/PLATFORM_LINKS.md | 公开回测、Research 帖、聚宽链接 |
platforms/quantconnect/DualMAVolTarget.py |
Lean 自定义数据算法 |
platforms/joinquant/dual_ma_vol_target.py |
聚宽粘贴稿 |
QC 云端没有上交所 ETF:自定义数据用本仓库导出的 platforms/quantconnect/data/510300.csv。公开链接:QC 回测 · QC Research · 聚宽帖 · 聚宽模拟盘。
编辑 config.yaml(fee_profile、slippage_type 等)。可选 TUSHARE_TOKEN。
MIT