No description
- Python 100%
| config/data_sources | ||
| docs | ||
| engine | ||
| examples | ||
| scripts | ||
| strategies | ||
| tests | ||
| .gitignore | ||
| README.md | ||
| requirements.txt | ||
Quant Backtest Framework Baseline
面向多品种、多周期、事件驱动策略研究的通用回测框架基线。
这个 worktree / 分支的目标不是保留策略实验,而是保留一套可单独同步到其他副本的干净框架代码:
engine/通用回测、数据、优化、live 组件examples/demo_strategy/最小 demo 策略模板scripts/run_demo_backtest.py通用 demo 回测入口scripts/run_demo_live_signal.py通用 demo live signal 入口scripts/demo_dynamic_universe.py动态品种池最小 democonfig/data_sources/数据源配置模板docs/框架说明、开发指南、动态品种池与 live 说明
建议目录组织
这套 baseline 不强制规定策略资产必须放在哪个目录,但为了减少后续维护成本,建议把“框架代码”和“策略资产”分开:
examples/- 仅保留最小模板与可同步的 demo
strategies/- 建议存放实际开发中的策略
results/- 建议存放回测结果、参数扫描结果、分析导出结果
需要特别说明的是:当前仓库只自带 examples/demo_strategy/ 这个最小 demo,用来说明框架接口和运行方式;它不是“正式策略基线库”,也不代表仓库里已经内置了一组可直接延用的实盘研究策略。
strategies/ 下也不需要强制一层平铺,若策略数量增多,建议按研究范式或逻辑类型继续分组,例如:
strategies/cross_sectional/strategies/rule_based/strategies/signal_based/strategies/reversal/
目录命名本身不是框架规则,只是为了让策略代码、实验脚本和输出结果更容易管理。
快速开始
安装依赖:
pip install -r requirements.txt
Fast 回测:
python scripts/run_demo_backtest.py
Validation 回测:
python scripts/run_demo_backtest.py --validation --validation-window-days 30 --validation-warmup-days 180
动态品种池 demo:
python scripts/demo_dynamic_universe.py --as-of 2024-01-01T00:00:00 --builder identity
Live signal 单次运行:
python scripts/run_demo_live_signal.py ^
examples/demo_strategy/configs/demo_strategy_live.json ^
--data-source-config config/data_sources/kline_1m.json ^
--account-equity 100000 ^
--signal-output-dir live_signals/demo
文档
- 框架总览:docs/FRAMEWORK.md
- 动态品种池设计:docs/DYNAMIC_UNIVERSE_DESIGN.md
- 回测模式与 as-of 语义:docs/BACKTEST_MODES_AND_ASOF.md
- 策略开发指南:docs/STRATEGY_DEVELOPMENT.md
- Live signal 使用说明:docs/LIVE_SIGNAL_USAGE.md
- 通用时序数据读取:docs/GENERIC_SERIES_DATA_USAGE.md
- 同步范围说明:docs/FRAMEWORK_SYNC_SCOPE.md
- Worktree 同步工作流:docs/WORKTREE_SYNC_WORKFLOW.md
- Demo 说明:examples/demo_strategy/README.md
建议工作流
- 当前仓库只有
examples/demo_strategy/strategy.py这个最小 demo。 开发新策略时可以参考它的结构或从它复制起步,但建议尽快落到strategies/下自己的策略目录,而不是继续堆在examples/。 - 第一轮调试只跑 fast 模式。
- 只有怀疑未来数据或时间可见性问题时,才切到 validation。
- 如果策略需要动态品种池,先跑
scripts/demo_dynamic_universe.py验证base universe / builder / policy。 - Live 接入先跑单次,再跑
--loop。 - 如果要同步到其他副本,优先同步
engine/、examples/、scripts/、config/data_sources/、docs/。