mcpField
W
weekly-performance-digest

weekly-performance-digest

github.com/tradermonty数据与数据库3.4k2.7k 次安装2 天前更新
代码仓库

关于 weekly-performance-digest

weekly-performance-digest 面向需要复盘每周已平仓交易的交易者,计算绩效指标并按多个维度拆分结果,生成 JSON 和 Markdown 报告,无需 API 密钥。

主要功能

  1. 01统计已平仓交易周度指标
  2. 02按交易模式维度拆分结果
  3. 03汇总赢家、输家与经验
  4. 04生成 JSON 和 Markdown 报告
  5. 05无需 API 密钥

适用场景

  1. 01在周末复盘已实现绩效
  2. 02按行业或退出原因比较结果
  3. 03汇总周报进行月末复盘

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tradermonty/claude-trading-skills --skill weekly-performance-digest

安装后在 Claude Code 中输入/weekly-performance-digest确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

requirements.txt
references/
weekly-digest-metrics.md
scripts/
generate_weekly_digest.py
scripts/tests/
conftest.py
test_generate_weekly_digest.py

详细介绍

每周绩效摘要

概述

每周绩效摘要会将你一周内平仓的交易汇总为一份绩效报告。它会读取由 trader-memory-core 跟踪的已平仓交易假设(state/theses/th_*.yaml),计算关键指标(胜率、期望值、盈利因子、R 倍数、MAE/MFE),按多个模式维度(来源技能、退出原因、交易假设类型、行业、机制标签、筛选评级)拆分结果,并展示本周表现最佳和最差的交易及经验教训。输出包括一条 JSON 记录和一份易读的 Markdown 报告。纯计算,无需 API 密钥。

适用场景

  • 在交易周结束时,回顾汇总后的已实现绩效
  • 衡量所有已平仓仓位的胜率和期望值
  • 查看哪些来源技能、退出原因、行业或机制带来了盈利或亏损
  • 为月末回顾(合并四份每周摘要)或事后复盘提供数据
  • 基于真实的已平仓交易,快速了解“哪些做得好/哪些做得不好”

不适用场景

  • 深入复盘单笔交易——请使用 trade-performance-coach
  • 对信号进行真阳性/假阳性分类——请使用 signal-postmortem
  • 提供买入/卖出建议或仓位规模建议——此技能仅用于描述分析

前提条件

  • Python 3.9+ 和 PyYAML(已是仓库依赖项)
  • 包含交易假设 YAML 文件的 trader-memory-core 状态目录(state/theses/)
  • 无需 API 密钥

工作流

第 1 步:生成一周的摘要
python3 skills/weekly-performance-digest/scripts/generate_weekly_digest.py \
  --state-dir state/theses \
  --from-date 2026-06-13 --to-date 2026-06-20 \
  --output-dir reports/ -v

默认值:--state-dir state/theses,--from-date 为 --to-date 前 7 天, --to-date 为今天,--output-dir reports/。不指定日期标志时,将汇总 最近 7 天的数据。

第 2 步:阅读报告

运行后会生成 reports/weekly_digest_<to-date>.json 和 reports/weekly_digest_<to-date>.md。查看 Markdown 报告中的执行摘要、 指标表、模式分析,以及表现最佳和最差的交易;后续处理则使用 JSON。

第 3 步(可选):供下游流程使用

合并多份每周 JSON 摘要,用于月度回顾;或者将 JSON 传递给 事后复盘/教练流程。此技能仅用于描述分析——请通过常规 回顾流程,根据分析结果采取行动。

工作原理

  • 交易筛选。 如果交易的 exit.actual_date 位于 [from-date, to-date] 范围内,且 status == CLOSED,则计入该周。
  • 盈利/亏损。 outcome.pnl_dollars > 0 表示盈利,< 0 表示亏损,== 0 表示盈亏平衡; win_rate = winners / total_trades。
  • R 倍数。 pnl_dollars / ((entry.actual_price − exit.stop_loss) × position.shares)。 (根据实际交易假设架构,从 exit.stop_loss 读取止损价。)
  • 避免重复计数。 已平仓交易假设的 outcome.pnl_dollars 是所有减仓操作加上最终仓位的 累计 已实现盈亏。关键指标只使用已平仓交易假设的累计值。单独的 partial_trims 区块会 扫描仅部分平仓的交易假设(仍处于持仓状态)的 status_history[],并仅供参考——它 绝不会计入关键指标总额或胜率。因此,某个仓位若在第 1 周部分减仓、第 2 周平仓,就会在第 1 周显示为部分减仓,并计入第 2 周已平仓交易的关键指标;这是预期行为,并非重复计数。

输出格式

JSON(weekly_digest_<to-date>.json)
{
  "schema_version": "1.0",
  "report_type": "weekly_performance_digest",
  "period": {"from": "2026-06-13", "to": "2026-06-20"},
  "generated_at": "2026-06-20T21:39:07Z",
  "summary": {
    "total_trades": 2, "winners": 1, "losers": 1, "breakeven": 0,
    "win_rate": 0.5, "expectancy": 25.0, "profit_factor": 2.0,
    "total_realized_pnl": 50.0, "total_realized_pnl_pct": 4.17
  },
  "metrics": {
    "avg_winner": 100.0, "avg_loser": -50.0,
    "largest_winner": 100.0, "largest_loser": -50.0,
    "avg_holding_days_winners": 9.0, "avg_holding_days_losers": 6.0,
    "r_multiple_avg": 0.25, "r_multiple_stdev": 1.06,
    "avg_mae_pct": -3.75, "avg_mfe_pct": 4.5
  },
  "pattern_analysis": {
    "by_source_skill": {"...": {"wins": 1, "losses": 0, "total": 1, "win_rate": 1.0}},
    "by_exit_reason": {}, "by_thesis_type": {}, "by_sector": {},
    "by_mechanism_tag": {}, "by_screening_grade": {}
  },
  "partial_trims": {"count": 0, "total_realized_pnl": 0.0, "trims": []},
  "lessons": {"top_wins": [], "top_losses": [], "process_improvements": []}
}
Markdown(weekly_digest_<to-date>.md)

各部分包括:# Weekly Performance Digest、## Executive Summary、 ## Performance Metrics、## Pattern Analysis、## Lessons Learned (### Top Winners/### Top Losers/### Process Improvements)。

即使当周没有交易,也会生成有效报告,指标均为零(退出代码为 0)。

资源

  • scripts/generate_weekly_digest.py — 摘要生成器(JSON + Markdown)
  • references/weekly-digest-metrics.md — 指标公式和解读

核心原则

  1. 关键数据仅统计已平仓交易 — 累计 outcome.*,按平仓日期归类。
  2. 不重复计数 — 部分减仓仅供参考,不计入总数。
  3. 归因分析 — 每笔盈利或亏损都会从多个维度进行归因。
  4. 描述而非指导 — 摘要负责报告,由你做决定。

评论

支持 Markdown