ibkr について
ibkrは、ローカルで稼働するInteractive Brokers TWSまたはIB Gatewayを通じて口座情報を参照し、注文を扱うコマンドラインスキルです。デフォルトはペーパートレードで、認証情報はゲートウェイ側に保持されます。
主な機能
- 01口座とポジションの照会
- 02注文と約定の一覧表示
- 03価格と過去データの取得
- 04注文の発注とキャンセル
- 05ペーパー/ライブ設定
活用シーン
- 01口座情報と保有状況の確認
- 02未決済注文や約定の確認
- 03価格と過去データの取得
- 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 つあります:
- ローカルで実行 — 自分のコンピューター上で TWS/Gateway とこのスクリプトを実行します。(最も簡単)
- ネットワークをブリッジ — コンテナから到達できるホストで IB Gateway を実行し、TWS の「Trusted IPs」にコンテナの IP を追加して、
IBKR_HOST/IBKR_PORTを設定します。ネットワークとセキュリティはご自身で管理してください。API ソケットを公開インターネットに決して露出しないでください。
status でソケットがリッスンしていないと表示される場合、これが原因です。
TWS / IB Gateway のセットアップ (1 回のみ)
- interactivebrokers.com → Trading → Platforms から TWS または IB Gateway をダウンロードします。IB Gateway はより軽量でヘッドレス環境に適しています。TWS はフル GUI です。
- ログインします。ペーパートレーディング: IBKR はすべてのアカウントに無料のペーパーログインを提供しています (アカウント ID は
DUで始まります)。テストにはペーパーセッションにログインしてください。 - API を有効にします: TWS → File → Global Configuration → API → Settings → 「Enable ActiveX and Socket Clients」 をチェックします。トレーディングを行う場合は、「Read-Only API」をチェックしないままにします (読み取り専用では注文の発注がブロックされます)。Socket port を控えておきます。
- デフォルトポート: 7497 = TWS ペーパー、7496 = TWS ライブ、4002 = IB Gateway ペーパー、4001 = IB Gateway ライブ。
- マーケットデータには、アカウント上で該当するデータサブスクリプションが必要です。ない場合、クォートやバーは空で返されます。
設定 (.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を使用してください。