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

詳細

取引前の規律ゲート

概要

ブローカーに注文を出す前に、予定している手動注文を実行すべきか評価します。このスキルは、ローカルのチェックリストと、任意の market-regime、circuit-breaker、trader-memory-core のアーティファクトを読み込みます。pre_trade_discipline_decision アーティファクトを生成し、関連する thesis のレビュー予定を変更せずに、その thesis にアーティファクトをリンクできます。

このゲートは意図的にオフラインで動作します。注文の発注やキャンセル、ブローカー API の呼び出し、市場データの取得は行いません。

使用するタイミング

  • 手動の新規注文を出す直前
  • 候補がチャート検証とポジションサイジングを通過した後
  • 直近の損失後、クールダウン期間中のリベンジトレードを避けるため
  • ワークフローに上流の exposure_decision と circuit_breaker_decision がある場合
  • 後続の trader-memory-core レビューでチェックリストの遵守状況を確認できるようにしたい場合

前提条件

  • Python 3.9+
  • 候補ごとのチェックリスト回答を含むローカルの JSON または YAML ファイル
  • 任意の trader-memory-core thesis 状態(state/theses/ 配下)
  • 任意の 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少なくとも 1 つの実行可能な候補が規律ルールに違反しました
NO_ACTIONABLE_ORDERSファイルに実行可能な手動注文が含まれていません。発注すべき注文はありません

デフォルトでは、有効な判定で CLI は 0 で終了し、入力エラーまたはランタイムエラーの場合のみ 1 で終了します。シェルパイプラインで 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 である

market-regime または circuit-breaker のアーティファクトが欠落している、もしくは読み取り不能な場合、実行可能な注文は 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 にリンクします。

コメント