mcpField
T
trader-risk

trader-risk

github.com/jakeschincariolその他90750 回インストール2 週間前に更新
リポジトリ

trader-risk について

trader-riskは、trader-budgetやtrader-rebalanceなどが作成した注文案を検査するスキルです。設定ルールに照らして判定し、注文ごとの指紋と結果を記録します。注文の発注や制限の変更は行いません。

主な機能

  1. 01注文形式、資産、金額制限の確認
  2. 02保有比率、現金、空売りルールの評価
  3. 03重複注文と日次上限の検出
  4. 04注文バッチ内の約定を想定した検査
  5. 05注文指紋付きの判定結果を記録

活用シーン

  1. 01発注前の注文案の審査
  2. 02バッチ注文による保有比率や現金制限の確認
  3. 03注文編集後の再検査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jakeschincariol/trader-skill --skill trader-risk

インストール後、Claude Code で/trader-riskを入力して読み込まれたか確認します。

同梱ファイルcheck.py

詳細

trader-risk

リスクマネージャーは、提案とブローカーの間にあるゲートです。trader-budget、trader-rebalance、または trader-tax が作成した注文は、すべてこのゲートを通ります。ある注文が BLOCK になった場合、その判定は最終的なものです。その注文についてユーザーに承認を求めることも、ブローカーに送ることもありません。

以下の ${CLAUDE_SKILL_DIR} は、このスキルのフォルダー(SKILL.md が置かれている場所)です。

python3 "${CLAUDE_SKILL_DIR}/check.py"             # trader/ files; writes trader/state/risk.json
python3 "${CLAUDE_SKILL_DIR}/check.py" --json
python3 "${CLAUDE_SKILL_DIR}/check.py" --no-write  # look without recording

読み書きするファイル

ファイル内容
trader/orders.json提案された注文
trader/config.json制限値(trader-budget は config.example.json を同梱しています)
trader/portfolio.json現金と保有資産。存在しない場合は、予算を入金した新規口座として扱います
trader/prices.json株数で指定された注文のサイズ計算と、保有資産の評価に必要です
trader/state/broker.json重複注文と1日の上限を確認するために、今日発注済みの注文を記録します
trader/state/risk.json判定と、各注文の完全一致を確認するフィンガープリントを記録します

チェック項目

注文はファイル内の順番でチェックします。各注文が約定したものとして扱うため、注文ごとには問題がなくても、まとめるとルールに違反するバッチを検出できます。

チェックブロックする条件
形式シンボルがない、side が buy または sell ではない、qty と notional の両方またはどちらも指定されていない、notional 注文が market + day ではない(Alpaca のルール)、limit 注文に指値がない
資産allow_options が false なのにオプションのシンボルが指定されている場合、または暗号資産や米国株・ETF 以外の銘柄
ブロック対象銘柄が blocked リストに含まれている
注文額min_order_usd 未満、または max_order_usd 超過
ポジション約定後、口座に占める株式の割合が max_position_pct を超える
現金買い注文によって現金がバッファを下回る、または証拠金が必要になる(allow_margin が false)
空売り保有株数を超える売り注文(allow_short が false)
重複同じバッチ内で同じシンボルと side の注文が重複している、または今日すでに発注済み
1日の上限今日発注済みの注文数が max_orders_per_day を超える

警告はブロックされませんが、ユーザーに伝えてください。LIVE 口座、数値が文字列ではなく数値として送られていること、高度な注文(ブラケット注文)が該当します。

手順

  1. 注文が株数で指定されている場合、または保有資産の評価額が必要な場合は、trader/prices.json が最新であることを確認します(trader-alerts: alerts.py quote --holdings --write)。
  2. check.py を実行します。終了コード 0 はすべての注文が通過したことを、1 は少なくとも1件がブロックされたことを示します。
  3. 結果を、注文ごとにわかりやすい言葉でユーザーに伝えます。BLOCK の場合は理由と対処方法(注文額を減らす、別の銘柄にする、またはユーザーが変更を判断できるルール)を伝えます。自分で制限値を変更してはいけません。
  4. 注文に何らかの変更があった場合は、もう一度チェックを実行します。trader-broker はフィンガープリントを使って各注文と判定を照合するため、編集した注文は再度チェックに通るまで発注できません。また、前日の判定は当日には有効ではありません。

例:一連の注文

trader-budget が提案した5件の買い注文(AAPL $1,250、AXP $1,119、GOOGL $823、KO $708、BAC $600)を、例の設定を使用した新規の $5,000 のペーパー口座で実行する場合:

PASS  #1 buy AAPL $1,250
PASS  #2 buy AXP $1,119
PASS  #3 buy GOOGL $823
PASS  #4 buy KO $708
PASS  #5 buy BAC $600
5 passed, 0 blocked. Cash after the passed orders: $500 (paper account).

AAPL は25%の上限($5,000 のうち $1,250)ちょうどとなり、許可されます。AAPL をさらに $100 購入する6件目の注文は、3つの理由でブロックされます。現金バッファの $500 を下回ること、AAPL が25%の上限を超えること、同じバッチ内で AAPL の注文が重複することです。

決して行わないこと

注文を発注したり、通過させるために注文を編集したり、制限を緩和したり、PASS をユーザーの承認として扱ったりすることは決してありません。PASS は、その注文をユーザーに提示してよいことだけを意味します。

安全性

  • 教育とツールの提供を目的としており、金融アドバイスではありません。PASS はルールのチェック結果であり、推奨を意味するものではありません。
  • デフォルトではペーパートレードを使用します("paper": true)。実取引を行うかどうかは、ユーザー自身が自身の設定で決定します。
  • このパックで注文を発注するのは trader-broker のみで、次の3つをすべて満たす場合に限られます。trader-risk がその日に該当する注文を審査していること、ユーザーがチャットでその注文について明示的に「はい」と入力していること、そして注文ツールが「承認が必要」に設定されているため、ユーザーが Claude 自身のカードで一度「許可」をクリックしていること(カスタマイズ > コネクター > ツールの権限)。注文ツールを「常に許可」に設定してはいけません。
  • 設定で許可され、ユーザーが確認した場合を除き、オプション取引、証拠金取引、空売り、レバレッジは使用しません。
  • ブローカーのキーは環境変数または Claude Desktop の設定に保存し、チャットには決して入力しません。

コメント