关于 pre-trade-discipline-gate
pre-trade-discipline-gate 是供交易者在下达手动订单前使用的离线 Python 技能,可依据清单和可选风险决策检查计划,并记录结果、关联 thesis;不获取市场数据或下单。
主要功能
- 01检查书面计划、止损和仓位
- 02校验计划风险与实际风险
- 03读取可选风险决策文件
- 04生成决策报告和日志记录
- 05将报告关联到相关 thesis
适用场景
- 01手动入场前检查交易纪律
- 02近期亏损后复核交易计划
- 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.txtreferences/discipline_gate_framework.mdscripts/check_pre_trade_discipline.pyscripts/tests/conftest.pytest_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_decisionJSON - 可选:来自 drawdown-circuit-breaker 的
circuit_breaker_decisionJSON
工作流
步骤 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 状态架构
核心原则
- 仅限手动执行 - 输出是经纪商下单前的清单闸门,而非订单路由器。
- 先有书面计划 - 没有书面的入场计划、止损或仓位规模确认,就不能手动入场。
- 兼容生产端的状态读取 - 复仇交易风险检测遵循 trader-memory-core 的时间戳和结果处理行为。
- 记录日志但不产生审查副作用 - 闸门会将报告关联到 thesis,但不会推进审查计划。