mcpField
T
trader-budget

trader-budget

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

trader-budget について

trader-budgetは、取引計画とユーザー設定のルールから注文案を作る取引サイズ算出スキルです。リスク、ポジション、注文額、現金の制限に基づいて整数株数を計算し、ブローカーには接続しません。

主な機能

  1. 01エントリー価格とストップから株数を算出
  2. 02損失、ポジション、注文額、現金で上限設定
  3. 03利用可能な場合は新しい価格を反映
  4. 04加重配分による予算割り当て
  5. 05発注せずに注文案を作成

活用シーン

  1. 01取引計画をブラケット注文案に変換
  2. 02ストップ幅が広い場合に株数を減らす
  3. 03加重した銘柄目標に予算を配分

インストール

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

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

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

config.example.json
size.py
targets.example.json

詳細

trader-budget

Budget Manager は、ユーザーが一度設定したルールの範囲内で、計画(「TSLAを364.18で買い、358.32で損切り」)を正確な注文(「8株を買う」)に変換します。株数を決めるのは損切り価格です。損切り価格が離れているほど、株数は少なくなります。書き込むのは提案のみです。trader-risk が内容を確認し、trader-broker がユーザーに実行するかどうかを確認します。デイトレードで損失を出す人は大半です。最大損失額に合わせて株数を決めれば、損失を小さく抑えられますが、取引で利益が出るわけではありません。

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

python3 "${CLAUDE_SKILL_DIR}/size.py"                        # trader/plan.json + trader/config.json
python3 "${CLAUDE_SKILL_DIR}/size.py" --write                # write trader/orders.json
python3 "${CLAUDE_SKILL_DIR}/size.py" --limit --write        # a limit order at the plan's entry
python3 "${CLAUDE_SKILL_DIR}/size.py" --limit 364.00 --json  # a limit order at 364.00
python3 "${CLAUDE_SKILL_DIR}/size.py" --weights AAPL=40,KO=60 --config split.json   # weights mode, below

--now "2026-10-19 10:15" を指定すると、時刻を固定できます(ニューヨーク時間)。別の日の計画は拒否されます。trader-exit で新しい計画を作成してください。

読み書きするファイル

ファイル内容
trader/config.jsonルール(このフォルダーの config.example.json を元に設定します)
trader/plan.json取引内容:エントリー、損切り、目標、セットアップ、取引を終了する時刻(trader-exit が書き込みます)
trader/prices.json任意:計画のエントリー価格を上回る最新価格がある場合、リスクが大きくなります(trader-alerts が書き込みます)
trader/portfolio.json任意:現金残高によって株数の上限が決まります(trader-broker が管理します)
trader/orders.json--write を指定したときに書き込まれる、提案された唯一のブラケット注文

ステップ 1:ルールを一度設定する

trader/config.json が存在しない場合は、config.example.json を trader/config.json にコピーし、各値についてユーザーにわかりやすい言葉で確認してください。

  • budget:この取引に使う資金。失っても困らない金額だけにします。
  • cash_buffer_pct:常に現金で残しておく割合(デフォルトは 10)。
  • max_loss_per_trade_usd:損切り価格で注文が約定した場合に、1 回の取引で失ってもよい最大額(デフォルトは 50)。
  • max_position_pct、max_order_usd、min_order_usd:最大ポジション(予算の 75%)、最大注文額($4,000)、最小注文額($5)。
  • trader-risk が適用する 1 日の制限:max_daily_loss_usd(150)、max_trades_per_day(3)、min_reward_risk(1.0)、require_stop(true)、no_entries_before / no_entries_after(「09:45」 / 「15:30」)、flat_by(「15:55」)。いずれもニューヨーク時間です。
  • blocked:絶対に取引したくないティッカー。
  • ペーパーアカウントでの動作を確認するまでは、paper を true のままにしてください。

ステップ 2:取引の株数を決める

python3 "${CLAUDE_SKILL_DIR}/size.py" --write

株数は整数のみです。Alpaca のブラケット注文では端株を指定できません。株数は次の 4 つの上限のうち、最も小さい値になります。

上限株数
最大損失額max_loss_per_trade_usd / 1 株あたりのリスク(エントリー価格から損切り価格を引いた値)
ポジション上限budget x max_position_pct / エントリー価格
最大注文額max_order_usd / エントリー価格
現金(予算から現金バッファを引いた額)/ エントリー価格。ただし、trader/portfolio.json の現金残高を超えない

株数の計算に使うエントリー価格:--limit を指定した場合は指値価格です。成行注文の場合は、計画のエントリー価格、または trader/prices.json の価格が最新(15 分未満)で、かつ計画のエントリー価格より高ければ、その価格を使います。計画作成後に価格が上昇していると、同じ損切り価格でも損失が大きくなるため、株数は少なくなります。価格が下がっても、リスクを小さくすることはありません。

株数が 0、注文額が最小注文額を下回る、リスクリワード比が min_reward_risk を下回る、損切り価格がエントリー価格より低くない、目標価格がエントリー価格を上回らない(値動きがすでに起きている)、計画日が今日ではない、ティッカーがブロックされている、または計画が空売りの場合は拒否し、注文を書き込みません。その理由をユーザーに 1 行で伝えてください。

ステップ 3:ユーザーに提示する

4 つの上限、株数を決めた上限、株数、金額、損切り価格での最大損失額を提示します。また、損切り注文は約束ではなく注文にすぎず、相場の急変時には損切り価格を下回る価格で約定する可能性があることを明確に伝えてください。その後、/trader-risk に引き継いでください。

例:リール

2026-10-19(月)のTSLAです。オープニングレンジ・ブレイクアウト:午前10:15に364.18でエントリー、ストップは358.32(オープニングレンジの中間値)、ターゲットは370.04(1R)です。1株あたりのリスクは5.86です。設定例:予算5,000ドル、現金バッファー10%、最大損失50ドル。

上限計算株数
最大損失50ドル / 5.868(これで決まります)
ポジション上限5,000ドルの75% = 3,750ドル / 364.1810
注文上限4,000ドル / 364.1810
現金5,000ドルから500ドルを差し引く = 4,500ドル / 364.1812

8株 = 2,913.44ドルです。ストップ時の最大損失:8 x 5.86 = 46.88ドルです。次の内容が書き込まれます。

{"symbol": "TSLA", "side": "buy", "qty": "8", "type": "market", "time_in_force": "day",
 "order_class": "bracket", "take_profit_limit_price": "370.04", "stop_loss_stop_price": "358.32",
 "why": "opening-range breakout on TSLA: 8 shares, bound by your $50 max loss per trade (8 x 5.86 = $46.88 at the stop)",
 "plan": {"entry": 364.18, "stop": 358.32, "target": 370.04, "risk_per_share": 5.86, "max_loss": 46.88,
          "setup": "orb", "entry_time": "10:15 AM", "flat_by": "15:55"}}

why と plan は trader-risk と trader-broker 用のメモです。Alpaca に送信されることはありません。ストップを300.00にすると、1株あたりのリスクは64.18ドルとなり、最大損失の50ドルを超えるため、注文は出されません。10:52の実際の気配値は366.48だったため、同じプランでは1株あたり8.16ドルのリスクで6株となり、リスクリワード比は0.44に下がります。待っていた値動きの大半がすでに起きているため、却下されます。

ウェイトモード(v1から引き継ぎ)

--weights AAPL=22.04,KO=10.86 または --targets FILE(ここでは targets.example.json)を指定すると、ウェイトに基づいて予算を銘柄リストに配分します。まず現金バッファーを差し引き、ウェイトを合計100に正規化します。max_position_pct を超える銘柄は上限に固定し、超過分は再配分します。最低注文額に満たない配分は除外し、金額はドル単位に丸めるため、意図せず資金が残ることはありません。"max_position_pct": 25 と "fractional": true を指定した場合、設定例のファイルではAAPLに1,250ドル(上限適用)、AXPに1,119ドル、GOOGLに823ドル、KOに708ドル、BACに600ドルが割り当てられます。"fractional": false(設定例)では整数株を購入し、価格が必要です(--prices trader/prices.json)。これらはストップなしの単純な買い注文です。require_stop が true の間は trader-risk がブロックし、それぞれを max_trades_per_day の件数に含めます。長期の配分には別の設定(--config)を使ってください。

ルール

  • 提案のみです。このスキルがブローカーツールを呼び出すことはありません。
  • ユーザーがこの目的で使うと明言していない資金について、株数を計算してはいけません。予算と最大損失額を尋ねてください。
  • すべての数値は設定、プラン、または価格に基づきます。推測は一切しません。
  • 予測はしません。取引でいくら利益が出るかを決して述べないでください。ターゲットはプランであり、予測ではありません。
  • 無料のYahoo価格は非公式で、遅れる場合があります。約定に使われるのはブローカーの価格です。

決して行わないこと

注文を出したり、承認したり、予約したりすることはありません。独自に上限を引き上げたり、より多くの株を買えるようストップを狭めたりすることも、オプション、証拠金取引、空売りのポジションサイズを計算することもありません。

安全性

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

コメント