目标:用 OpenClaw + Backtrader 稳定地做指数策略研究,避免“任务做完了但没人知道”“结果散落一地”“Codex 和回测执行混在一起”的问题。
只负责:
backtrader-lab/ 内的代码只负责:
原则:
不要把“让 Codex 干活”和“让 Codex 顺便当回测引擎”混成一件事。
所有 Backtrader 工作都限制在:
/home/erwin/.openclaw/workspace/cyb50-quant/backtrader-lab
规则:
MEMORY.md / SOUL.md / AGENTS.md / USER.mdindex-rotation/ 乱改backtrader-lab/ 收口backtrader-lab/
├── chinext50.csv
├── chinext50_experiments.py
├── chinext50_experiment_summary.md
├── chinext50_dualthrust_optimization.md
├── results/
│ ├── latest.json
│ ├── latest.log
│ └── runs/
├── scripts/
│ ├── run_experiments.sh
│ ├── run_dualthrust_opt.sh
│ └── notify_summary.sh
└── OPENCLAW_BACKTRADER_WORKFLOW.md
最低要求:
直接执行 Backtrader 脚本:
cd /home/erwin/.openclaw/workspace/cyb50-quant/backtrader-lab
python3 chinext50_experiments.py
cd /home/erwin/.openclaw/workspace/cyb50-quant/backtrader-lab
python3 chinext50_experiments.py --optimize-dualthrust
让 OpenClaw 用 exec + process 托管:
exec(background=true, pty=false/true 视需要) 启动process poll/log 只做状态确认每次回测至少产出 3 类东西:
给人看的结论:
给程序看的结构化结果:
给排错用:
规则:
后台任务默认执行这套:
必须反馈:
出现以下情况必须主动反馈:
必须主动反馈:
因为 openclaw system event 可能出现 websocket 1006 abnormal closure,所以不能只靠它。
任务结束时尝试:
openclaw system event --text "Done: backtrader experiment finished" --mode now
每个任务写状态文件:
backtrader-lab/.task-watch/<task-id>.json
至少包含:
如果:
announced=false则父侧必须:
system event 是快路径用 Codex:
chinext50_experiments.py不用 Codex 代跑,直接:
python3 chinext50_experiments.pypython3 chinext50_experiments.py --optimize-dualthrust用 cron isolated:
投递必须显式指定:
channel=feishuto=ou_3923ae1d25c5056a9844718baf153e36accountId=main不要再用 last。
建议补两个脚本。
scripts/run_experiments.sh职责:
results/latest.logchinext50_experiment_summary.mdresults/latest.jsonscripts/run_dualthrust_opt.sh职责:
chinext50_dualthrust_optimization.md基于当前 backtrader-lab/,建议后续这样走:
DualThrustRegimeStrategyDonchianRegimeStrategyMomentumVolTargetStrategyrange_period=20, k1=0.4, k2=0.4, regime=120range_period=30, k1=0.3, k2=0.3, regime=120Codex 写 Backtrader,OpenClaw exec 跑 Backtrader,cron 负责定时,watchdog 负责不漏反馈。