mcpField
I
ib-portfolio-action-report

ib-portfolio-action-report

github.com/staskhその他39477 回インストール1 日前に更新
リポジトリ

ib-portfolio-action-report について

ib-portfolio-action-reportは、Interactive Brokersの口座をまたいでポジションを分析するスキルです。決算日、テクニカル指標、リスクレベルをまとめ、優先対応を含むMarkdownレポートを作成します。

主な機能

  1. 01複数口座のポジションを分析
  2. 02信号機形式でリスクレベルを表示
  3. 03決算日とテクニカル指標を掲載
  4. 04ポジションをスプレッド別に分類
  5. 05Markdownアクションレポートを生成

活用シーン

  1. 01複数口座のポートフォリオリスクを確認
  2. 02満期が近いポジションを特定
  3. 03決算発表前後のエクスポージャーを確認
  4. 04リスクの高いポジションの対応順を決定

インストール

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

$npx skills add https://github.com/staskh/trading_skills --skill ib-portfolio-action-report

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

同梱ファイルscripts/report.pytemplates/markdown-template.md

詳細

IB ポートフォリオアクションレポート

Interactive Brokers の口座全体のすべてのポジションを分析し、決算日を取得して、各ポジションに信号機形式のリスク指標(🔴🟡🟢)を付けた包括的なポートフォリオアクションレポートを生成します。

IB 接続

TWS または IB Gateway がローカルで実行され、API が有効になっている必要があります。

  • ペーパートレード — ポート 7497
  • ライブトレード — ポート 7496
  • IB_PORT 環境変数 — --port が省略された場合のデフォルトポート(例:Gateway コンテナの場合は IB_PORT=4001)。優先順位:--port フラグ > IB_PORT > 組み込みのデフォルト値。シェルまたは .env ファイルで設定してください。

ポートのフォールバック: 設定されたポートで接続できない場合は、もう一方のポートで自動的に再試行します。 再試行に成功した場合は、どちらの口座タイプ(ライブ/ペーパー)が接続できたかをメモリーに保存し、ユーザーが別の口座を明示的に指定するまで、今回および今後のセッションで IB スキルのすべての呼び出しに再利用します。 どちらのポートでも接続できない場合は、TWS または IB Gateway が実行中で、API アクセスが有効になっていることをユーザーに確認してもらいます。

手順

ステップ 1:データを収集する

注: uv がインストールされていない場合、または pyproject.toml が見つからない場合は、以下のすべてのコマンドで uv run python を python に置き換えてください。

uv run python scripts/report.py [--port PORT] [--account ACCOUNT]

スクリプトは、リスクレベル、決算日、テクニカル指標、スプレッドのグループ分けなど、分析済みのポートフォリオデータを含む JSON を標準出力に返します。

ステップ 2:レポートを作成する

書式設定の手順については、templates/markdown-template.md を読み込みます。JSON データから Markdown レポートを生成し、sandbox/ に保存します。

ファイル名:ib_portfolio_action_report_{ACCOUNT}_{YYYY-MM-DD}_{HHmm}.md

ステップ 3:レポート結果を報告する

注意が必要な重大な項目や警告項目、最優先の対応事項、保存したレポートのパスなど、重要な調査結果をユーザーに伝えます。

引数

  • --port - IB ポート(デフォルト:ペーパートレードの場合は 7497)
  • --account - 分析する特定の口座 ID(任意。デフォルトではすべての口座)

JSON 出力

スクリプトは次の項目を含む構造化 JSON を返します。

  • generated_at - NY 時刻(例:"2026-04-29 19:35 ET")
  • data_delay - データの鮮度("real-time")
  • accounts - 口座 ID のリスト
  • summary - 赤/黄/緑の件数
  • spreads - リスクレベル、緊急度、推奨事項とともにスプレッドごとにグループ化したすべてのポジション
  • technicals - シンボルごとのテクニカル指標(RSI、トレンド、SMA、MACD、ADX)
  • earnings - シンボルごとの決算日
  • prices - シンボルごとの現在価格
  • earnings_calendar - 口座/ポジション情報を含む、今後の決算
  • account_summary - 口座ごとのポジション数とリスク件数

レポートのセクション

  1. 重大な概要:リスクレベル別のポジション数(🔴/🟡/🟢)
  2. 即時対応が必要:2 日以内に満期を迎えるポジション
  3. 緊急 — 1 週間以内に満期:注意が必要な短期ポジション
  4. 重大な決算アラート:今週決算を迎えるポジション
  5. 来週の決算:今後の決算へのエクスポージャー
  6. 2 週間以内に満期:中期の満期
  7. 満期まで期間の長いポジション:スプレッド分析を含むコア保有銘柄
  8. 最優先の対応事項:緊急度順の番号付きアクション項目
  9. ポジションサイズの概要:口座ごとの内訳
  10. 決算カレンダー:今後 30 日間の決算日
  11. テクニカル分析の概要:各原資産の RSI、トレンド、SMA、MACD、ADX

使用例

# All accounts (paper, default)
uv run python scripts/report.py

# Live account
uv run python scripts/report.py --port 7496

# Specific account
uv run python scripts/report.py --account U790497

依存関係

  • ib-async
  • pandas-ta
  • yfinance

タイムゾーン

すべてのタイムスタンプと時間ベースの計算には、America/New_York タイムゾーンを使用する必要があります。すべての JSON 出力には、generated_at(NY 時刻の文字列)フィールドと data_delay フィールドを含める必要があります。

コメント