关于 signal-postmortem
Signal Postmortem 是交易信号复盘技能,面向信号生成与策略改进流程,比较预测方向和实际收益,并按结果分类,生成权重调整及技能改进反馈。
主要功能
- 01比较预测方向与实际收益
- 02按持有期记录信号结果
- 03分类信号成败及市场状态偏差
- 04生成权重校准反馈
- 05汇总技能、标的和时间统计
适用场景
- 01记录已平仓交易的信号结果
- 02复盘达到 5 日或 20 日持有期的信号
- 03查找特定技能的误报模式
- 04为信号权重或技能改进提供依据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tradermonty/ claude-trading-skills --skill signal-postmortem安装后在 Claude Code 中输入/signal-postmortem确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
requirements.txtreferences/feedback-integration.mdoutcome-classification.mdscripts/postmortem_analyzer.pypostmortem_recorder.pyscripts/tests/conftest.pytest_cli_workflow.pytest_postmortem_analyzer.pytest_postmortem_recorder.py详细介绍
信号复盘
概述
信号复盘会记录并分析由边缘管线、筛选器和其他技能生成的交易信号的结果。它会将预测的边缘方向与 5 日和 20 日的实际收益进行比较,将结果归类为(真阳性、假阳性、错失机会、市场状态不匹配),并为 edge-signal-aggregator 的权重调整和技能改进待办事项生成反馈。
适用场景
- 交易平仓后,想要记录交易结果时
- 检查一批已达到持有期限(5 天或 20 天)的信号时
- 识别特定技能产生的系统性假阳性模式时
- 为 edge-signal-aggregator 权重校准生成反馈时
- 根据决策质量指标构建技能改进待办事项时
- 定期(每周/每月)审查信号质量时
前提条件
- Python 3.9+
- FMP API 密钥(可选;若未手动提供实际收益数据,可用于获取数据)
- 标准库 +
requests(用于 API 调用) - 输入:JSON 格式的信号记录(来自 edge-signal-aggregator 或筛选器输出)
API 密钥设置(可选)
如果要自动获取价格数据以计算收益,请设置 FMP API 密钥:
export FMP_API_KEY=your_api_key_here
也可以通过命令行使用 --api-key YOUR_KEY 传入密钥。没有 API 密钥时,仍可通过提供 --exit-price 和 --exit-date 手动记录结果。
工作流
步骤 1:准备信号记录
收集已平仓或已到期的信号记录。每条记录应包含:
signal_id:唯一标识符ticker:股票代码signal_date:生成信号的日期predicted_direction:LONG 或 SHORTsource_skill:生成信号的技能entry_price:生成信号时的价格(可选,用于手动覆盖)
# Example: List signals ready for postmortem (5+ days old)
python3 skills/signal-postmortem/scripts/postmortem_recorder.py \
--list-ready \
--signals-dir state/signals/ \
--min-days 5
步骤 2:记录结果
运行复盘记录器,获取实际收益并对结果进行分类。
python3 skills/signal-postmortem/scripts/postmortem_recorder.py \
--signals-file state/signals/aggregated_signals_2026-03-10.json \
--holding-periods 5,20 \
--output-dir reports/
手动记录结果(已有价格数据时):
python3 skills/signal-postmortem/scripts/postmortem_recorder.py \
--signal-id sig_aapl_20260310_abc \
--exit-price 178.50 \
--exit-date 2026-03-15 \
--outcome-notes "Closed at target, +3.2% in 5 days" \
--output-dir reports/
步骤 3:对结果分类
记录器会自动将每个信号归入以下四类之一:
| 类别 | 定义 |
|---|---|
| TRUE_POSITIVE | 预测方向与实际收益的正负号一致 |
| FALSE_POSITIVE | 预测方向与实际收益相反 |
| MISSED_OPPORTUNITY | 未采纳该信号,但采纳后本可获利 |
| REGIME_MISMATCH | 信号因市场状态变化而失效 |
分类规则见 references/outcome-classification.md。
步骤 4:生成反馈文件
为下游使用方生成反馈:
# Generate weight adjustment suggestions for edge-signal-aggregator
python3 skills/signal-postmortem/scripts/postmortem_analyzer.py \
--postmortems-dir reports/postmortems/ \
--generate-weight-feedback \
--output-dir reports/
# Generate skill improvement backlog entries
python3 skills/signal-postmortem/scripts/postmortem_analyzer.py \
--postmortems-dir reports/postmortems/ \
--generate-improvement-backlog \
--output-dir reports/
步骤 5:查看汇总统计
按技能、股票代码和时间段生成汇总统计:
python3 skills/signal-postmortem/scripts/postmortem_analyzer.py \
--postmortems-dir reports/postmortems/ \
--summary \
--group-by skill,month \
--output-dir reports/
输出格式
复盘记录(JSON)
{
"schema_version": "1.0",
"postmortem_id": "pm_sig_aapl_20260310_abc",
"signal_id": "sig_aapl_20260310_abc",
"ticker": "AAPL",
"signal_date": "2026-03-10",
"source_skill": "edge-signal-aggregator",
"predicted_direction": "LONG",
"entry_price": 172.50,
"realized_returns": {
"5d": 0.032,
"20d": 0.058
},
"exit_price": 178.50,
"exit_date": "2026-03-15",
"holding_days": 5,
"outcome_category": "TRUE_POSITIVE",
"regime_at_signal": "RISK_ON",
"regime_at_exit": "RISK_ON",
"outcome_notes": "Clean breakout, held through minor pullback",
"recorded_at": "2026-03-17T10:30:00Z"
}
权重反馈(JSON)
{
"schema_version": "1.0",
"generated_at": "2026-03-17T10:35:00Z",
"analysis_period": {
"from": "2026-02-01",
"to": "2026-03-15"
},
"skill_adjustments": [
{
"skill": "vcp-screener",
"current_weight": 1.0,
"suggested_weight": 0.85,
"reason": "15% false positive rate in RISK_OFF regime",
"sample_size": 42
}
],
"confidence": "MEDIUM",
"min_sample_threshold": 20
}
技能改进待办事项(YAML)
- skill: vcp-screener
issue_type: false_positive_cluster
severity: medium
evidence:
false_positive_rate: 0.15
sample_size: 42
regime_correlation: RISK_OFF
suggested_action: "Add regime filter or reduce signal confidence in RISK_OFF"
generated_by: signal-postmortem
generated_at: "2026-03-17T10:35:00Z"
汇总报告(Markdown)
报告保存在 reports/ 中,文件名为 postmortem_summary_YYYY-MM-DD.md。
资源
scripts/postmortem_recorder.py-- 记录单个信号的结果scripts/postmortem_analyzer.py-- 生成反馈和汇总统计references/outcome-classification.md-- 分类规则和边缘情况references/feedback-integration.md-- 如何将反馈整合到下游技能中
核心原则
- 如实归因 -- 每项结果都归因于其来源技能,以明确责任
- 关注市场状态 -- 记录市场状态背景,以区分技能失效和市场状态变化
- 最小样本量 -- 权重调整至少需要 20 个信号,以确保统计有效性
- 闭合反馈回路 -- 将结果反馈回去,改进信号聚合和技能质量
评论
支持 Markdown