A Risk Log Template for Crypto Bots
大多数交易者只记录回测结果。很少人记录"为什么一个候选不能推进"。
这导致一个典型后果:六个月后遇到同样的问题,你重新做了一遍已经做过的研究,重犯了一遍已经犯过的错。
在 ProBitForge,我们把被阻断的候选当成一等研究产出。不是因为失败本身有价值,而是因为一个干净的风险日志能回答三个问题:
- 当时看到了什么?
- 为什么决定停下?
- 需要什么新证据才能重新考虑?
这篇文章是 research only,not financial advice;backtests are not live performance;not an instruction to trade。风险日志本身不构成交易许可。
如果你刚来 ProBitForge,可以先看我们的系统定位:<https://www.probitforge.com/what-probitforge-is-building/>
1) 为什么需要风险日志
> 绿色的回测曲线告诉你什么看起来不错。风险日志告诉你系统拒绝相信什么。
一个交易系统只有记住"为什么停下、阻断、回退或拒绝一个候选",才能真正进化。
我们在之前的 Why Backtests Lie 里说过:回测可以隐藏过拟合、费用缺失、样本偏差和 regime luck。在 How We Judge a Strategy Candidate Before Dry Run 里,我们展示了七项硬门禁。
风险日志回答的是这两者之间的实际问题:
当一个候选失败、暂停或行为异常时,到底应该写下什么,才能让团队后来能从中学习?
2) 风险日志不是什么
先把边界划清楚:
- 它不是交易信号。
- 它不是买卖建议。
- 它不是盈利能力的公开证明。
- 它不是用自信语言掩盖薄弱证据的地方。
- 它不是回测、OOS、dry-run 或人工门禁的替代品。
风险日志是研究记录,不是执行指令。
3) 可复用的风险日志模板
以下是一个可复用的 Markdown 模板。读者可以直接复制使用。所有字段都是通用的,不依赖任何特定策略或平台。
```markdown
Risk Log: <候选或事件名称>
1. 状态
- 日期:
- 范围:
- 环境:research / backtest / paper-shadow / dry-run
- 当前决策:observe / blocked / research-pass / ready-for-review
- dry_run_allowed: false
- live_trading_allowed: false
2. 触发原因
- 是什么让我们调查这个?
- 是亏损、回撤、异常、漏单、异常滑点、过拟合嫌疑,还是新候选?
3. 事实
- 证据来源:
- 数据窗口:
- 市场/交易对:
- 时间框架:
- Baseline 结果:
- Candidate 结果:
- 交易次数:
- 手续费/滑点/资金费率假设:
4. 证据
- 回测结果:
- OOS / walk-forward 结果:
- 近期 30/60/90 天结果:
- 直接归因(direct attribution):
- 代理归因(proxy attribution):
- 回撤变化:
- 成本敏感性:
- 市场状态备注(regime notes):
5. 解读
- 什么看起来成立?
- 什么仍然不确定?
- 什么可能过拟合?
- 什么可能只是特定市场状态下的表现?
- 什么证据和主线叙事矛盾?
6. 决策
- 决策:
- 阻断项:
- 需要的下一项证据:
- 停止条件:
- 回滚计划:
7. 跟进
- 下一个测试:
- 负责人:
- 时间窗口:
- 产物链接:
- 相似历史案例:
8. 风险声明
Research only. Not financial advice. Backtests are not live performance. This is not an instruction to trade. ```
4) 如何填写模板而不欺骗自己
模板是死的。填写模板的方式决定它是工具还是装饰。以下是实用规则:
- 用精确的状态词:
blocked、research-pass、observe、ready-for-review——不要用"还行""差不多"这种模糊词。 - 在调下一个参数之前先记录阻断项——否则你会调到一个"看起来好看但没有改善实质"的候选。
- 直接归因和代理归因分开记录——proxy 不能替代真实成交。
- 即使结果正向也要记录样本量——6 笔交易的正向结果不比 60 笔交易的微弱正向更有说服力。
- 加入近期窗口检查——不要只依赖历史 OOS,最近的 30/60/90 天可能已经翻转了结论。
- 包含成本和滑点假设——不考虑手续费的回测是草稿假设,不是证据。
- "不做决策"也是一个有效结果——证据不足时停下,比硬推一个不确定的候选更负责任。
5) 防止坏决策的字段示例
以下是一些真实场景中的关键字段如何发挥作用:
低样本量:一个候选的直接归因是正向的,但匹配交易只有 6 笔——低于最低要求 20 笔。风险日志里 trade_count=6 这一行就是阻断理由。
近期窗口翻转:一个历史上看起来不错的候选,近期 30/60/90 天对齐全是负向。风险日志要求你写"近期结果",而不是只写"历史 OOS 通过"。
代理不匹配:直接归因正向,代理归因负向——这意味着候选在真实成交上表现好,但在假设场景下表现差。风险日志把两者分列,避免用一个数字掩盖矛盾。
阈值脆弱性:0.008 和 0.010 在小样本上表现相同,0.012 直接翻转负向。风险日志的"解读"部分要求你写"什么可能过拟合"。
权限边界:dry_run_allowed=false、live_trading_allowed=false 是硬写入字段。除非门禁通过且用户显式授权,否则永远是 false。
6) 最小风险日志评分卡
| 字段 | 为什么重要 | 危险信号 | | --- | --- | --- | | 交易次数 | 样本量检查 | 小样本被当作证明 | | 直接归因 | 真实成交对齐 | 代理归因冒充事实 | | OOS 窗口 | 防过拟合检查 | 只有一个调参窗口有效 | | 近期窗口 | 当前市场状态检查 | 旧证据覆盖新衰减 | | 成本假设 | 执行真实性 | 忽略手续费/滑点 | | 决策状态 | 防止意外晋级 | 只写"看起来不错",没有门禁 | | 回滚计划 | 可逆性 | 没有停止条件 |
7) 运营规则
> 如果一个候选连干净的风险日志都产不出,它就不配产出交易决策。
风险日志不是法律合规文件,不是学术论文,不是交易信号。它是一个工程团队的基本功:把"为什么停下"写清楚,比把"为什么继续"写得漂亮更重要。
再次强调:这篇文章是 research only,not financial advice;backtests are not live performance;not an instruction to trade。风险日志本身不构成部署策略的许可,被阻断的候选可以作为有用的研究产出,但不等于交易指令。