mcpField
P
pre-trade-discipline-gate

pre-trade-discipline-gate

github.com/tradermonty其他3.4k2.8k 次安装2 天前更新
代码仓库

关于 pre-trade-discipline-gate

pre-trade-discipline-gate 是供交易者在下达手动订单前使用的离线 Python 技能,可依据清单和可选风险决策检查计划,并记录结果、关联 thesis;不获取市场数据或下单。

主要功能

  1. 01检查书面计划、止损和仓位
  2. 02校验计划风险与实际风险
  3. 03读取可选风险决策文件
  4. 04生成决策报告和日志记录
  5. 05将报告关联到相关 thesis

适用场景

  1. 01手动入场前检查交易纪律
  2. 02近期亏损后复核交易计划
  3. 03记录清单答案供后续审查

安装

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

$npx skills add https://github.com/tradermonty/claude-trading-skills --skill pre-trade-discipline-gate

安装后在 Claude Code 中输入/pre-trade-discipline-gate确认已加载。

包含的文件

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

requirements.txt
references/
discipline_gate_framework.md
scripts/
check_pre_trade_discipline.py
scripts/tests/
conftest.py
test_check_pre_trade_discipline.py

详细介绍

交易前纪律关卡

概述

在将计划中的手动订单提交给经纪商之前,评估是否应该执行。此技能会读取本地检查清单,以及可选的市场状态、熔断器和 trader-memory-core 资料。它会生成一个 pre_trade_discipline_decision 资料,并可将该资料关联回相关交易论点,而不改变交易论点的审核计划。

此关卡有意保持离线。它不会下单、取消订单、调用经纪商 API 或获取市场数据。

使用时机

  • 在提交任何手动入场订单之前立即使用
  • 候选交易通过图表验证和仓位规模计算后使用
  • 最近发生亏损后,在冷静期内避免报复性交易
  • 工作流中有上游的 exposure_decision 和 circuit_breaker_decision 时使用
  • 希望在之后的 trader-memory-core 审核中查看检查清单的遵循情况时使用

先决条件

  • Python 3.9+
  • 包含候选级检查清单答案的本地 JSON 或 YAML 文件
  • 可选:state/theses/ 下的 trader-memory-core 论点状态
  • 可选:来自 market-regime-daily / exposure-coach 的 exposure_decision JSON
  • 可选:来自 drawdown-circuit-breaker 的 circuit_breaker_decision JSON

工作流

步骤 1:准备检查清单

创建包含候选交易答案的 JSON 或 YAML 文件。只有可执行的手动订单意图会经过关卡检查。观察清单和忽略意图会记录为 NO_ACTIONABLE_ORDERS。

{
  "candidates": [
    {
      "symbol": "AAPL",
      "thesis_id": "th_aapl_gm_20260703_0001",
      "order_intent": "ENTRY_READY",
      "entry_in_written_plan": true,
      "stop_predefined": true,
      "size_within_plan": true,
      "planned_risk_dollars": 500,
      "actual_risk_dollars": 500,
      "notes": "Entry matches the journaled breakout plan."
    }
  ]
}

可执行意图包括 ENTRY_READY、ACTIONABLE、ACTIONABLE_DAY1 和 MANUAL_ORDER。WATCHLIST、DELAYED_EP_WATCH、PEAD_HANDOFF、IGNORE 和 REJECTED 等不可执行意图会被记录,但不会产生订单许可。

每个可执行候选交易都必须提供 planned_risk_dollars 和 actual_risk_dollars。请使用有限的非负数字或数字字符串;零是有效值。缺失值、布尔值、非数字字符串、NaN、无穷大和负值都会被视为 REVIEW_REQUIRED 输入,应在提交订单前进行审核。

步骤 2:运行关卡
python3 skills/pre-trade-discipline-gate/scripts/check_pre_trade_discipline.py \
  --answers-file state/manual-entry-checklist.json \
  --state-dir state/theses \
  --market-regime-decision reports/exposure_decision_latest.json \
  --circuit-breaker-decision reports/circuit_breaker_decision_latest.json \
  --output-dir reports/pre-trade-discipline \
  --journal-dir state/journal/pre-trade-discipline

如需进行确定性测试或回填,请设置 --as-of:

python3 skills/pre-trade-discipline-gate/scripts/check_pre_trade_discipline.py \
  --answers-file state/manual-entry-checklist.json \
  --as-of 2026-07-03T12:00:00-04:00
步骤 3:解读决策
决策含义
GO所有可执行的手动订单候选交易均通过检查清单和上游关卡
REVIEW_REQUIRED输入缺失、未知或记录失败;审核完成前不要下单
NO_GO至少有一个可执行候选交易违反了纪律规则
NO_ACTIONABLE_ORDERS文件中没有可执行的手动订单;不应提交任何订单

默认情况下,CLI 对所有有效决策均以 0 退出,仅在输入或运行时出错时以 1 退出。当 shell 管道需要在任何非 GO 决策时返回 2,请使用 --fail-on-non-go。

规则

出现以下情况时,关卡会拦截可执行候选交易:

  • 书面计划中未确认入场
  • 未预先设定止损
  • 未确认仓位大小符合计划
  • 任一风险金额字段缺失,或不是有限的非负数字(REVIEW_REQUIRED)
  • actual_risk_dollars 超过 planned_risk_dollars
  • trader-memory-core 中在报复性交易窗口内存在亏损平仓或部分亏损
  • exposure-coach 的建议为 REDUCE_ONLY 或 CASH_PRIORITY
  • drawdown-circuit-breaker 的建议为 COOLDOWN、HALTED 或 TRADING_HALTED

市场状态或熔断器资料缺失或无法读取时,可执行订单将产生 REVIEW_REQUIRED。如果没有可执行订单,结果仍为 NO_ACTIONABLE_ORDERS。

输出

脚本会写入:

  • pre_trade_discipline_decision_YYYY-MM-DD_HHMMSS.json
  • 除非设置了 --json-only,否则还会生成一份对应的 Markdown 报告
  • 如果提供了 --journal-dir,则会在 state/journal/pre-trade-discipline/ 下写入一条 JSONL 日志记录

每个候选项的结果都包含一个 checklist_answers 对象,其中记录了用于决策的书面计划、止损、仓位规模、风险金额和备注答案,以便后续审查时核查下单时的回答。无效的风险金额值会存储为 JSON null。无法通过二进制浮点数往返转换的有效 JSON 小数会保留为数字字符串,以免下溢或精度损失改变闸门决策。

如果候选项包含 thesis_id 且提供了 --state-dir,JSON 报告会通过 trader-memory-core link_report 添加到 thesis 的 linked_reports 列表中。此技能不会调用 mark_reviewed,也不会更改监控审查日期。

资源

  • scripts/check_pre_trade_discipline.py - 主 CLI 和规则引擎
  • references/discipline_gate_framework.md - 规则定义和集成说明
  • skills/trader-memory-core/schemas/thesis.schema.json - Thesis 状态架构

核心原则

  1. 仅限手动执行 - 输出是经纪商下单前的清单闸门,而非订单路由器。
  2. 先有书面计划 - 没有书面的入场计划、止损或仓位规模确认,就不能手动入场。
  3. 兼容生产端的状态读取 - 复仇交易风险检测遵循 trader-memory-core 的时间戳和结果处理行为。
  4. 记录日志但不产生审查副作用 - 闸门会将报告关联到 thesis,但不会推进审查计划。

评论

支持 Markdown