mcpField
T
trading-alert-scheduler

trading-alert-scheduler

github.com/scientiacapitalその他2881 回インストール3 週間前に更新
リポジトリ

trading-alert-scheduler について

trading-alert-scheduler は、トレーダー向けにウォッチリストと IBKR の保有ポジションを毎朝確認するワークフローです。trading-signals の分析枠組みで有望なセットアップやリスク通知を優先順位付きのレポートにまとめ、日中の通知は行いません。

主な機能

  1. 01寄り付き前にウォッチリストと IBKR ポジションをスキャン
  2. 025つの手法でテクニカルシグナルを評価
  3. 03相場レジームを判定し有望なセットアップを抽出
  4. 04オプションの Greeks、満期、ポジションリスクを確認
  5. 05優先順位付きの日次トレードレポートを作成

活用シーン

  1. 01寄り付き前に相場と保有状況を確認
  2. 02ウォッチリストから注目セットアップを絞り込む
  3. 03満期や最大損失が近いポジションを把握
  4. 04勤務中の日中の画面監視を減らす

MCP 対応

IBKR MCP サーバーを使って、ポートフォリオ、口座サマリー、証拠金要件のデータを取得します。IBKR に接続できない場合、この確認は省略できます。

インストール

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

$npx skills add https://github.com/scientiacapital/skills --skill trading-alert-scheduler

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

同梱ファイルconfig.jsonreference/watchlist.json

詳細

BDR の業務時間中におけるリアルタイムの市場監視をなくします。市場オープン前に 1 日 1 回、Tim のウォッチリストと IBKR のポジションをスキャンし、trading-signals フレームワークを使って実行可能なセットアップを特定し、優先順位付けされた 1 つのダイジェストとして配信します。日中の気散らしはなし — 重要なものだけを浮かび上がらせる朝の 1 回の読み物だけです。

目標: 1 日 30 分の節約 + 50 件の通話がある日に画面を見ないことによるセットアップの見逃しの削減。

<quick_start> 毎日の自動実行 (CST 午前 7 時 / EST 午前 8 時 — 市場オープンの 1.5 時間前): スケジュールされたタスクがすべてのウォッチリストティッカー + オープンポジションをスキャン → ダイジェストを配信

オンデマンド: "market digest" → 今すぐフルスキャンを実行 "what's setting up" → 確信度の高いセットアップのみに絞り込み "check my positions" → IBKR ポートフォリオの健全性のみ

トリガーフレーズ:

  • "market digest" / "trading alerts" / "pre-market scan"
  • "watchlist check" / "what's setting up"
  • "trading morning brief" / "market open prep"
  • "check my positions" / "position health" </quick_start>

<success_criteria>

  • すべてのウォッチリストティッカーがレジーム + テクニカル分析でスキャンされる
  • オープン中の IBKR ポジションがリスク/満期/Greeks の健全性についてチェックされる
  • 確信度の高いセットアップ (コンフルエンス ≥ 0.7) が上位に表示される
  • ポジションリスクのアラートがフラグ付けされる (最大損失への接近、満期、割当リスク)
  • ダイジェストが 3 分未満でスキャン可能
  • 日中の中断なし — 1 日 1 回の読み物ですべてをカバー
  • 手動チェックと比較してセットアップの見逃し率が低下 </success_criteria>

アーキテクチャ

SCHEDULED (7am CST)          ANALYSIS                       OUTPUT
──────────────────────────────────────────────────────────────────────
Watchlist tickers     →  Regime detection (Markov)    →  Daily Digest
IBKR open positions   →  Technical scan (5 methods)   →  Action List
Market internals      →  Options flow anomalies       →  Position Alerts
Economic calendar     →  Greeks/risk check positions   →  Risk Dashboard

ステージ 1: データ収集

1a. ウォッチリストティッカー

Tim のデフォルトウォッチリスト (reference/watchlist.json で更新):

コアポジション: SPY, QQQ, IWM, TLT, GLD, SLV, USO, VIX 個別株: AAPL, MSFT, NVDA, TSLA, AMZN, META, GOOG, AMD, PLTR, COIN 暗号資産プロキシ: BITO, MSTR セクター ETF: XLF, XLE, XLK, ARKK, SMH

各ティッカーについて、ウェブ検索を使って以下を取得します:

  • 現在の価格 + プレマーケットの動き
  • 5 日間の値動きのサマリー
  • 平均に対する出来高
  • 主要なサポート/レジスタンス水準
  • 夜間のニュース/カタリスト
1b. IBKR ポートフォリオポジション

IBKR MCP サーバーのツール (ArjunDivecha/ibkr-mcp-server、~/Desktop/tk_projects/ibkr-mcp-server/ にインストール済み) を使用します:

ツール取得されるデータ
get_portfolioすべての口座 (Roth IRA、個人ブローカレッジ、THK Enterprises) にわたるすべてのオープンポジション + 損益
get_account_summary残高、証拠金利用率、購買力、利用可能な現金
switch_account口座ごとの表示のために口座を切り替え
get_margin_requirementsポジションごとの現在の証拠金要件

前提条件: IB Gateway がポート 7497 (ペーパー) または 7496 (ライブ) で実行されている必要があります。 IBKR が接続されていない場合: このセクションをスキップします — ウェブ検索が市場データをカバーします。ポートフォリオセクションには「IBKR 未接続 — ポートフォリオチェックを有効にするには IB Gateway を起動してください」と表示されます。

1c. 市場の内部指標

以下についてウェブ検索します:

  • S&P 500 の騰落
  • VIX 水準 + 期間構造 (コンタンゴ/バックワーデーション)
  • プット/コールレシオ
  • 10 年国債利回り
  • DXY (ドル指数)
  • フェデラルファンド先物 (金利予想)
  • 今日の経済カレンダーイベント

ステージ 2: 分析 (trading-signals フレームワークを使用)

2a. レジーム検出

SPY (市場プロキシ) について、マルコフ 7 状態レジームモデルを実行します:

状態説明戦略バイアス
0強い強気ロングバイアス、プット売り
1中程度の強気ロングバイアス、カバードコール
2弱い強気 / レンジ中立、アイアンコンドル
3移行期 / 方向感なしサイズ縮小、待機
4弱い弱気ヘッジ、ロング縮小
5中程度の弱気ショートバイアス、プット買い
6暴落 / 高ボラティリティプロテクションモード、VIX プレイ
2b. ティッカーごとのテクニカルスキャン

ウォッチリストの各ティッカーについて、5つの手法でスコアリングします:

手法シグナルウェイト(レジーム調整済み)
エリオット波動波動の位置 + 予測ターゲット20-30%
ワイコフ買い集め/売り抜けフェーズ15-25%
フィボナッチ主要なリトレースメント/エクステンションレベル15-20%
タートルドンチャンブレイクアウトシグナル10-20%
マルコフレジームレジームに適した戦略20-30%

コンフルエンススコア: 各手法の加重平均

  • ≥ 0.7: HIGH — 実行可能なセットアップとしてフラグを立てる
  • 0.4-0.7: MODERATE — ウォッチリストに入れ、トリガーレベルを記録
  • < 0.4: LOW — アクションなし、ダイジェストから除外
2c. オプションフロースキャン

オプションポジションを持つ、または高いコンフルエンスを示すティッカーについて:

  • 特定のストライクにおける異常出来高(平均の2倍超)
  • プット/コールレシオの変化
  • インプライドボラティリティランク(IVR) — プレミアムは割高か割安か?
  • 14日以内の決算日
2d. ポジションヘルスチェック

各オープン中のIBKRポジションについて(get_portfolio + get_account_summary 経由):

チェックアラート閾値
満期までの日数オプションのDTE < 7 → ロール/クローズの判断
デルタエクスポージャーポートフォリオデルタ > ±50 → ヘッジが必要
最大損失への接近ポジションが最大損失の50%超下落 → 管理が必要
割り当てリスク満期が近いITMのショートオプション → クローズまたはロール
シータ減衰ポートフォリオ全体でプラスのシータか?
証拠金利用率> 50% → リスクを低減
集中ポジション単一ポジションがポートフォリオの15%超 → フラグを立てる

ステージ3: 出力 — 日次トレーディングダイジェスト

╔══════════════════════════════════════════════════════════════╗
║  TRADING DIGEST — [Date] | Pre-Market                        ║
║  Market Regime: [STATE] | VIX: [level] | Futures: [ES move]  ║
╠══════════════════════════════════════════════════════════════╣

MARKET OVERVIEW:
- ES Futures: [+/-X.XX%] | NQ: [+/-X.XX%]
- VIX: [level] ([contango/backwardation])
- 10Y: [yield] | DXY: [level]
- Key event today: [economic calendar item]

═══════════════════════════════════════════════════════════════

🎯 HIGH-CONVICTION SETUPS (confluence ≥ 0.7):

1. [TICKER] — [Direction] | Confluence: [0.XX]
   Setup: [description — e.g., "Wyckoff spring at $185 support,
          Elliott wave 3 launching, Turtle breakout confirmed"]
   Entry: $[XX.XX] | Target: $[XX.XX] | Stop: $[XX.XX]
   Options play: [specific strategy — e.g., "Apr 190C @ $3.20,
                  delta 0.45, 3:1 R:R"]
   Why: [1-2 sentence reasoning]

2. [TICKER] — [Direction] | Confluence: [0.XX]
   ...

═══════════════════════════════════════════════════════════════

⚠️ POSITION ALERTS (action needed):

1. [TICKER] [STRIKE] [EXPIRY] — [ALERT TYPE]
   Current P&L: [+/-$XXX] | Days to expiry: [X]
   Recommended action: [ROLL to [new strike/expiry] | CLOSE | HOLD]
   Why: [reason]

═══════════════════════════════════════════════════════════════

👀 WATCHLIST (confluence 0.4-0.7, not yet actionable):

| Ticker | Direction | Confluence | Trigger Level | Note |
|--------|-----------|------------|---------------|------|
| NVDA | Long | 0.55 | Break $950 | Needs volume confirm |
| TLT | Long | 0.48 | Hold $88 | Rate decision Thurs |

═══════════════════════════════════════════════════════════════

📊 PORTFOLIO SNAPSHOT:
| Account | Value | Day P&L | Margin Used |
|---------|-------|---------|-------------|
| Roth IRA | $XX,XXX | +/-$XXX | N/A |
| Personal | $XX,XXX | +/-$XXX | XX% |
| Business | $XX,XXX | +/-$XXX | XX% |

Net Delta: [+/-XX] | Net Theta: [+/-$XX/day] | IVR avg: [XX%]

═══════════════════════════════════════════════════════════════

📅 THIS WEEK:
- [Earnings/events that affect watchlist]
- [Fed speakers / economic data]
- [Options expiration dates]

╚══════════════════════════════════════════════════════════════╝

ルール

  • イントラデイアラートは行いません。 これは午前7時に1回だけ実行されます。Timが確認し、判断を下し、その後BDR業務に集中します。
  • 実行可能なもののみ。 「ニュートラル」シグナルのティッカーを30銘柄もリストアップしないでください。注意が必要なものだけを表面化します。
  • ポジション管理を最優先。 新規セットアップより前に、既存ポジションに関するアラートを出します。
  • リスク管理は常に。 すべてのセットアップにストップロスを含めます。ポートフォリオデルタ/証拠金は常に可視化します。
  • 2%ルールを徹底。 提案された取引がポートフォリオリスクの2%を超える場合はフラグを立てます。
  • 15%集中ルール。 いずれかのポジションが口座の15%を超える場合はフラグを立てます。
## 必要なスキル - `trading-signals-skill` — コア分析フレームワーク(レジーム検出、5つの手法、オプション戦略、ギリシャ指標) - `ibkr-api-skill` — IBKRポートフォリオデータ(ポジション、損益、証拠金、口座評価額)

必要なツール

  • Web検索: 寄り前データ、ニュース、経済カレンダー、オプションフロー(主要なデータソース)
  • IBKR MCP (ArjunDivecha/ibkr-mcp-server): get_portfolio、get_account_summary、switch_account、get_market_data、get_historical_data、get_margin_requirements、check_shortable_shares、get_borrow_rates、short_selling_analysis、get_connection_status — ポート7497(ペーパー)または7496(ライブ)でIB Gatewayが必要です。接続されていない場合、Web検索がマーケットデータをカバーします。
  • スケジューリング: CronCreate "53 6 * * 1-5" で、セッションベースの午前7時CST実行(3日で自動失効)

データソース(Web検索経由)

  • Yahoo Finance / TradingView: 価格データ、テクニカル
  • CBOE: VIX、プット/コールレシオ
  • CME: 先物、フェデラルファンド
  • Finviz: スクリーナー、マーケットインターナル
  • Unusual Whales / Barchart: オプションフロー

アウトカムサイドカーの出力

最終ステップとして、~/.claude/skill-analytics/last-outcome-trading-alert-scheduler.json に書き込みます:

{"ts":"[UTC ISO8601]","skill":"trading-alert-scheduler","version":"1.0.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"alerts_generated":[n],"tickers_scanned":[n],"regime_changes":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

一部のステージが失敗したが結果は生成された場合は、ステータス「partial」を使用します。出力がまったく生成されなかった場合にのみ「error」を使用します。

コメント