ib-portfolio-action-report について
ib-portfolio-action-reportは、Interactive Brokersの口座をまたいでポジションを分析するスキルです。決算日、テクニカル指標、リスクレベルをまとめ、優先対応を含むMarkdownレポートを作成します。
主な機能
- 01複数口座のポジションを分析
- 02信号機形式でリスクレベルを表示
- 03決算日とテクニカル指標を掲載
- 04ポジションをスプレッド別に分類
- 05Markdownアクションレポートを生成
活用シーン
- 01複数口座のポートフォリオリスクを確認
- 02満期が近いポジションを特定
- 03決算発表前後のエクスポージャーを確認
- 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- 口座ごとのポジション数とリスク件数
レポートのセクション
- 重大な概要:リスクレベル別のポジション数(🔴/🟡/🟢)
- 即時対応が必要:2 日以内に満期を迎えるポジション
- 緊急 — 1 週間以内に満期:注意が必要な短期ポジション
- 重大な決算アラート:今週決算を迎えるポジション
- 来週の決算:今後の決算へのエクスポージャー
- 2 週間以内に満期:中期の満期
- 満期まで期間の長いポジション:スプレッド分析を含むコア保有銘柄
- 最優先の対応事項:緊急度順の番号付きアクション項目
- ポジションサイズの概要:口座ごとの内訳
- 決算カレンダー:今後 30 日間の決算日
- テクニカル分析の概要:各原資産の 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-asyncpandas-tayfinance
タイムゾーン
すべてのタイムスタンプと時間ベースの計算には、America/New_York タイムゾーンを使用する必要があります。すべての JSON 出力には、generated_at(NY 時刻の文字列)フィールドと data_delay フィールドを含める必要があります。