mcpField
I
ibkr

ibkr

github.com/starchild-ai-agentその他3075 回インストール6 日前に更新
リポジトリ

ibkr について

ibkrは、ローカルで稼働するInteractive Brokers TWSまたはIB Gatewayを通じて口座情報を参照し、注文を扱うコマンドラインスキルです。デフォルトはペーパートレードで、認証情報はゲートウェイ側に保持されます。

主な機能

  1. 01口座とポジションの照会
  2. 02注文と約定の一覧表示
  3. 03価格と過去データの取得
  4. 04注文の発注とキャンセル
  5. 05ペーパー/ライブ設定

活用シーン

  1. 01口座情報と保有状況の確認
  2. 02未決済注文や約定の確認
  3. 03価格と過去データの取得
  4. 04注文の発注またはキャンセル

インストール

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

$npx skills add https://github.com/starchild-ai-agent/official-skills --skill ibkr

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

同梱ファイルscripts/ibkr_cli.py

詳細

これは何か — まずこれを読んでください

🖥️ ローカルゲートウェイブローカー。 IBKR にはキーベースの公開 API がありません。マシン上で Trader Workstation (TWS) またはより軽量な IB Gateway を実行し、ログインして API ソケットを有効にすると、この CLI がローカルソケット経由で接続します。IBKR の認証情報は TWS 内にあり、このスキルに渡ることはありません。

⚠️ これはデフォルトでは Starchild コンテナから動作しません。 TWS はあなたのコンピューター上で実行され、コンテナの 127.0.0.1 はコンテナ自身を指すためです。使用する方法は 2 つあります:

  1. ローカルで実行 — 自分のコンピューター上で TWS/Gateway とこのスクリプトを実行します。(最も簡単)
  2. ネットワークをブリッジ — コンテナから到達できるホストで IB Gateway を実行し、TWS の「Trusted IPs」にコンテナの IP を追加して、IBKR_HOST/IBKR_PORT を設定します。ネットワークとセキュリティはご自身で管理してください。API ソケットを公開インターネットに決して露出しないでください。

status でソケットがリッスンしていないと表示される場合、これが原因です。

TWS / IB Gateway のセットアップ (1 回のみ)

  1. interactivebrokers.com → Trading → Platforms から TWS または IB Gateway をダウンロードします。IB Gateway はより軽量でヘッドレス環境に適しています。TWS はフル GUI です。
  2. ログインします。ペーパートレーディング: IBKR はすべてのアカウントに無料のペーパーログインを提供しています (アカウント ID は DU で始まります)。テストにはペーパーセッションにログインしてください。
  3. API を有効にします: TWS → File → Global Configuration → API → Settings → 「Enable ActiveX and Socket Clients」 をチェックします。トレーディングを行う場合は、「Read-Only API」をチェックしないままにします (読み取り専用では注文の発注がブロックされます)。Socket port を控えておきます。
  4. デフォルトポート: 7497 = TWS ペーパー、7496 = TWS ライブ、4002 = IB Gateway ペーパー、4001 = IB Gateway ライブ。
  5. マーケットデータには、アカウント上で該当するデータサブスクリプションが必要です。ない場合、クォートやバーは空で返されます。

設定 (.env)

シークレットキーはありません — ゲートウェイの場所のみです。デフォルト以外の場合は安全な入力経由でリクエストします。

変数必須備考
IBKR_HOSTいいえデフォルト 127.0.0.1
IBKR_PORTいいえプロファイルのデフォルト (7497 ペーパー / 7496 ライブ) を上書きします
IBKR_CLIENT_IDいいえAPI クライアント ID、デフォルト 1 (同時接続には別々の ID を使用してください)
IBKR_ACCOUNTいいえ特定のアカウントコード (例: DU1234567) を固定します。空欄 = 最初の管理対象アカウント

ペーパーアカウントは DU で始まり、ライブは U で始まります。--profile paper は誤ってライブアカウントに接続することを防ぎます。

使用方法

pip install ib_async (初回実行時)。JSON 出力。デフォルトプロファイルは paper (ポート 7497)。

python skills/ibkr/scripts/ibkr_cli.py status                  # checks socket + lists managed accounts
python skills/ibkr/scripts/ibkr_cli.py account
python skills/ibkr/scripts/ibkr_cli.py positions
python skills/ibkr/scripts/ibkr_cli.py orders [--executions]
python skills/ibkr/scripts/ibkr_cli.py quote --symbol AAPL
python skills/ibkr/scripts/ibkr_cli.py history --symbol AAPL --duration "30 D" --bar-size "1 day"
# place (paper): qty in units; market or limit; contract defaults STK/SMART/USD
python skills/ibkr/scripts/ibkr_cli.py place --symbol AAPL --side buy --qty 10 --type limit --limit-price 180 --tif day
python skills/ibkr/scripts/ibkr_cli.py cancel --order-id <numeric-id>
# live (real money): TWS on live port + --confirm-live
python skills/ibkr/scripts/ibkr_cli.py --profile live --confirm-live place --symbol AAPL --side buy --qty 1

米国以外 / 株式以外の商品: --exchange、--currency、--sec-type を渡します (例: 為替には --sec-type CASH --symbol EUR --currency USD --exchange IDEALPRO)。history は IB の --duration ("30 D"、"1 Y") と --bar-size ("1 day"、"1 hour"、"5 mins") を使用します。

注意点

  • 「socket not listening」/ 接続拒否 = TWS が実行されていない、ログインしていない、別のマシン上にある、ポートが間違っている、または API ソケットが無効になっている。セットアップ手順 3 を読み直してください。
  • 注文の発注には、TWS 設定で 「Read-Only API」が OFF でなければなりません — そうでない場合、--confirm-live を指定しても発注はサイレントにブロックされます。
  • cancel には数値の IBKR 注文 ID が必要で、現在このセッション/アカウントでオープンな注文のみをキャンセルします。
  • クォート/ヒストリカルデータは、アカウント上に適切なマーケットデータサブスクリプションがないと空で返されます。
  • TWS がクライアント ID が既に使用中であると警告する場合は、一意の IBKR_CLIENT_ID を使用してください。

コメント