IBクラスについて
IBクラスは、注文、実行、ポジション、ティッカーなどの現在の状態への直接アクセスを提供します。
このクラスには、EClientのほとんどのリクエストメソッドがあり、名前とパラメーターは同じです(reqIdパラメーターは不要です)
結果を返すリクエストメソッドには2つのバージョンがあります。
Blocking
:完了するまでブロックし、結果を返します。現在の状態は、リクエストの進行中も更新され続けます。Asynchronous
:非同期で処理します。末尾に「Async
」とあるすべてのメソッドが対象です。
IBクラスのイベント
再帰が多すぎる可能性があるため、イベントハンドラ内に新しいリクエストを配置することはお勧めできません。
connectedEvent()
TWS /ゲートウェイと接続して同期した後に発生します。disconnectedEvent()
TWS /ゲートウェイから切断した後に発生します。updateEvent()
ネットワークパケットがハンドリングされた後に発生します。pendingTickersEvent(tickers:Set[Ticker])
最後の更新中に更新され、新しいティック、tickByTicks
またはdomTicks
があるティッカーのセットを発行します。barUpdateEvent(bars:BarDataList, hasNewBar:bool)
リアルタイムで更新されたバーリストを発行します。新しいバーが追加された場合、hasNewBar
はTrue
になり、最後のバーが変更されたときはFalse
になります。newOrderEvent(trade:Trade)
新たに配置されたトレードを出力します。orderModifyEvent(trade:Trade)
注文が変更されると出力します。cancelOrderEvent(trade:Trade)
キャンセルを要求した直後にトレードを出力します。openOrderEvent(trade:Trade)
オープンオーダーのトレードを出力します。orderStatusEvent(trade:Trade)
進行中のトレードの変更された注文ステータスを出力します。execDetailsEvent(trade:Trade, fill:Fill)
フィルが属する進行中のトレードと一緒にフィルを出力します。commissionReportEvent(trade:Trade, fill:Fill, report:CommissionReport)
手数料レポートは、それが属するフィルの後に出力されます。updatePortfolioEvent(item:PortfolioItem)
ポートフォリオアイテムが変更された後に発生します。positionEvent(position:Position)
ポジションが変更された後に発生します。accountValueEvent(value:AccountValue)
アカウントの値が変更された後に発生します。accountSummaryEvent(value:AccountValue)
アカウントの値が変更された後に発生します。pnlEvent(entry:PnL)
損益エントリが更新された後に発生します。pnlSingleEvent(entry:PnLSingle)
単一のポジションの損益エントリが更新された後に発生します。tickNewsEvent(news:NewsTick)
新しいニュースの見出しを出力します。newsBulletinEvent(bulletin:NewsBulletin)
新しいニュース速報を出力します。scannerDataEvent(data:ScanDataList)
スキャナーサブスクリプションからデータを出力します。errorEvent(reqId:int, errorCode:int, errorString:str, contract:Contract)
エラーが発生した後にTWSエラーコードと文字列を出力します。TWSエラーコードと文字列は以下を参照してください。(https://interactivebrokers.github.io/tws-api/message_codes.html)timeoutEvent(idlePeriod:float)
setTimeout() で指定されたタイムアウト期間を超えてデータが受信されない場合に発生します。発行される値は、最後の更新からの秒単位の期間です。
API接続
connect(host='127.0.0.1', port=7497, clientId=1, timeout=4, readonly=False, account='')
実行中のTWSまたはIBゲートウェイアプリケーションに接続します。
disconnect()
TWSまたはIBゲートウェイアプリケーションから切断します。isConnected()
TWSまたはIBゲートウェイにAPI接続されているか確認します。接続がある場合はTrueを返します。
実行の制御、時間
RequestTimeout
asyncio.TimeoutError
が発生する前にブロッキング要求が完了するのを待つタイムアウト(秒単位)。デフォルト値の0は無期限に待機します。
*注:このタイムアウトは*Async
メソッドでは使用できません。run(*, timeout=None)
*仕様不明schedule(callback, *args)
コールバックが指定された引数で指定された時間に実行されるようにスケジュールします。sleep()
指定された秒数だけ待機します。timeRange(end, step)
特定の時点に達するまで定期的に待機します。timeRangeAsync(end, step)
timeRange(end, step)
の非同期バージョンです。waitUntil(t)
指定された時間(datetime.datetime
またはdatetime.time
)に達するまで待機します。waitOnUpdate(timeout=0)
新しいアップデートが届くのを待ちます。loopUntil(condition=None, timeout=0)
条件が満たされるまで繰り返し、オプションでタイムアウトを秒単位で繰り返します。生成される値は、条件の値、またはタイムアウト時のFalseです。setTimeout(timeout=60)
TWS / IBGからメッセージを受信するためのタイムアウトを設定し、timeoutEvent
の受信データが長すぎる場合に送信します。reqCurrentTime()
TWSの現在時刻を要求します。
アカウント・ポートフォリオ
アカウントやポートフォリオに関してはIB証券のサイトを参照してください。
アカウント管理
managedAccounts()
アカウント名のリストを取得します。accountValues(account='')
指定されたアカウントのアカウント値のリストを取得します。アカウントが空白の場合はすべてのアカウントのリストになります。accountSummary(account='')
指定されたアカウントのアカウント値のリストを取得します。アカウントが空白の場合はすべてのアカウントのリストになります。reqAccountUpdates(account='')
*仕様、用途不明reqAccountUpdatesMulti(account='', modelCode='')
*エイリアス?accountValues()
reqAccountSummary()
*エイリアス?accountSummary()
MaxSyncedSubAccounts
*仕様不明。
*サブアカウントの数がこの数(デフォルトでは50)を超える場合は、サブアカウントの更新を使用しないでください。
ポートフォリオ
portfolio()
デフォルトアカウントのポートフォリオのリストを取得します。
ポジション
positions(account='')
指定したアカウントのポジションのリストを取得します。アカウントが空白の場合はすべてのアカウントのリストになります。
Profit And Loss(P&L)
*本項目はすべて仕様不明です。
pnl(account='', modelCode='')
サブスクライブされたPnLオブジェクト(利益と損失)のリストを取得します。オプションで、アカウントまたはモデルコード、あるいはその両方でフィルタリングします。pnlSingle(account='', modelCode='', conId=0)
サブスクライブされたPnLSingleオブジェクトのリスト(単一のポジションの利益と損失)。reqPnL(account, modelCode='')
損益イベントのサブスクリプションを開始します。cancelPnL(account, modelCode='')
損益イベントのサブスクリプションをキャンセルします。reqPnLSingle(account, modelCode, conId)
シングルポジションの損益イベントのサブスクリプションを開始します。cancelPnLSingle(account, modelCode, conId)
指定されたアカウント、modelCode、conIdのシングルポジションの損益イベントのサブスクリプションをキャンセルします。
Profit And Loss(P&L)に関する情報はIB証券のサイトを参照してください。
商品情報については本サイトの以下のページを参照してください。
コントラクト(商品情報)
コントラクトについては以下を参照してください。
qualifyContracts(*contracts)
指定したコントラクト(商品情報)のフィールド(情報)を補完します。これにより、コントラクトの不足しているフィールド、特にconIdが入力されます。reqContractDetails(contract)
指定されたコントラクトと一致するコントラクトの詳細リストを取得します。reqMatchingSymbols(pattern)
指定したパターン(文字列)を含むコントラクトの一覧を取得します。reqMarketRule(marketRuleId)
*仕様不明
価格の増分ルールをリクエストします。
商品情報については本サイトの以下のページを参照してください。
注文情報
trades()
セッションからのすべての注文取引のリストを取得します。openTrades()
すべてのオープンオーダー取引のリストを取得します。orders()
セッションからのすべての注文のリストを取得します。openOrders()
すべての未処理注文のリストを取得します。fills()
セッションからのすべての約定注文のリストを取得します。executions()
セッションからのすべての注文の実行のリストを取得します。reqAutoOpenOrders(autoBind=True)
手動のTWSオーダーをバインドして、このクライアントから管理できるようにします。clientIdは0でなければならず、TWS API設定の「負の数を使用して自動注文をバインドする」をチェックする必要があります。reqOpenOrders()
未処理の注文のリストをリクエストして返します。
*openTrades()
か、openOrders()
を使用することをお勧めします。reqAllOpenOrders()
すべてのクライアントに対するすべての未処理注文のリストを要求して返します。reqCompletedOrders(apiOnly)
完了した取引のリストを要求して返します。reqExecutions(execFilter=None)
*fills()
またはexecutions()
を使用することをお勧めします。reqPositions()
*positions()
を使用することをお勧めします。whatIfOrder(contract, order)
実際に注文することなく、手数料とマージン(証拠金)の額とポートフォリオにあたえる影響を取得します。
注文情報の取得については本サイトの以下のページを参照してください。
注文
bracketOrder(action, quantity, limitPrice, takeProfitPrice, stopLossPrice, **kwargs)
利確注文とストップロス(ロスカット・損切)注文を指値注文を作成します。oneCancelsAll(orders, ocaGroup, ocaType)
*仕様不明
同じワンキャンセル(OCA)グループに取引を配置します。placeOrder(contract, order)
新しい注文、または既存の注文の変更を送信します。cancelOrder(order)
注文をキャンセルします。reqGlobalCancel()
他のクライアントまたはTWS / IBゲートウェイによって行われたものを含むすべてのアクティブな取引をキャンセルします。
注文については本サイトの以下のページを参照してください。
オプション取引
calculateImpliedVolatility(contract, optionPrice, underPrice, implVolOptions=[])
オプション価格を指定してボラティリティを計算します。calculateOptionPrice(contract, volatility, underPrice, optPrcOptions=None)
ボラティリティを考慮してオプション価格を計算します。reqSecDefOptParams(underlyingSymbol, futFopExchange, underlyingSecType, underlyingConId)
オプションチェーンを取得します。exerciseOptions(contract, exerciseAction, exerciseQuantity, account, override)
オプション契約を行使します。
ヒストリカルデータ(履歴データ)
reqHistoricalData(contract, endDateTime, durationStr, barSizeSetting, whatToShow, useRTH, formatDate=1, keepUpToDate=False, chartOptions=[], timeout=60)
履歴バーデータをリクエストします。cancelHistoricalData(bars)
履歴バーデータの更新サブスクリプションをキャンセルします。reqHistoricalTicks(contract, startDateTime, endDateTime, numberOfTicks, whatToShow, useRth, ignoreSize=False, miscOptions=[])
履歴ティックを要求します。ティックは1秒ですreqHeadTimeStamp(contract, whatToShow, useRTH, formatDate=1)
コントラクトの利用可能な最も早い履歴データの日時を取得します。
履歴データの取得については本サイトの以下のページを参照してください。
ヒストリカルデータに関する情報はIB証券のサイトを参照してください。
ストリーミングデータ(ティックデータ)
ティッカーを取得
ticker(contract)
指定されたコントラクトのティッカーを取得します。tickers()
すべてのティッカーのリストを取得します。pendingTickers()
保留中のティックまたはdomTicks
があるすべてのティッカーのリストを取得します。
ティックデータのサブスクライブ(購読)
reqTickers(*contracts, regulatorySnapshot=False)
スナップショットティッカーのリストを要求して返します。すべてのティッカーの準備ができると、リストが返されます。reqMktData(contract, genericTickList='', snapshot=False, regulatorySnapshot=False, mktDataOptions=None)
ティックデータをサブスクライブするか、スナップショットを要求します。cancelMktData(contract)
ティックデータのサブスクライブを解除します。reqMarketDataType(marketDataType)
reqMktData()
で使用する以下の市場データタイプを設定します。- 1 = Live
- 2 = Frozen
- 3 = Delayed
- 4 = Delayed frozen
リアルタイムバーデータ
reqRealTimeBars(contract, barSize, whatToShow, useRTH, realTimeBarsOptions=[])
リアルタイム5秒バーをリクエストします。cancelRealTimeBars(bars)
リアルタイムバーのサブスクリプションをキャンセルします。
ティック・バイ・ティックデータ
reqTickByTickData(contract, tickType, numberOfTicks=0, ignoreSize=False)
ティックごとのデータをサブスクライブし、ティックをticker.tickByTicksに保持するティッカーを返します。cancelTickByTickData(contract, tickType)
ティックごとのデータのサブスクライブを解除します。
板情報|Market Depth(Level II)
reqMktDepthExchanges()
複数のマーケットメーカーが存在する(そして、MarketMaker情報でティックが返される)取引所を取得します。*仕様不明reqMktDepth(contract, numRows=5, isSmartDepth=False, mktDepthOptions=None)
板情報をリクエストします。cancelMktDepth(contract, isSmartDepth=False)
データのサブスクライブを解除します。
ストリーミングデータの取得については本サイトの以下のページを参照してください。
ストリーミングデータ(ティックデータ)に関する情報はIB証券のサイトを参照してください。
ニュース
newsTicks()
ヘッドラインニュースのティックリストを取得します。記事自体はreqNewsArticle()で取得できます。newsBulletins()
IBニュース速報のリストを取得します。reqNewsProviders()
ニュースプロバイダーのリストを取得します。reqNewsArticle(providerCode, articleId, newsArticleOptions=None)
ニュース記事の本文を取得します。reqHistoricalNews(conId, providerCodes, startDateTime, endDateTime, totalResults, historicalNewsOptions=None)
ニュースの履歴の見出しを取得します。reqNewsBulletins(allMessages)
IBニュース速報を購読します。cancelNewsBulletins()
IBニュース速報の購読をキャンセルします。
ニュースの取得については本サイトの以下のページを参照してください。
ニュースに関する情報はIB証券のサイトを参照してください。
その他データの取得
reqHistogramData(contract, useRTH, period)
ヒストグラムデータをリクエストします。reqFundamentalData(contract, reportType, fundamentalDataOptions=[])
ファンダメンタルのデータをXML形式で取得します。
ヒストグラムデータに関する情報はIB証券のサイトを参照してください。
マーケットスキャナー
reqScannerData(subscription, scannerSubscriptionOptions=[], scannerSubscriptionFilterOptions=[])
サブスクリプションを開始し、結果の最初のリストが表示された後にキャンセルして、ブロッキングマーケットスキャンを実行します。reqScannerSubscription(subscription, scannerSubscriptionOptions=[], scannerSubscriptionFilterOptions=[])
マーケットスキャンデータを購読します。cancelScannerSubscription(dataList)
市場データのサブスクリプションをキャンセルします。reqScannerParameters()
スキャナーパラメーターのXMLリストを要求します。
Market Scannersに関する情報はIB証券のサイトを参照してください。
ファイナンシャルアドバイザー
requestFA(faDataType)
FA構成の変更を要求します。replaceFA(faDataType, xml)
Financial Advisorの設定を置き換えます。
Financial Advisorsに関する情報はIB証券のサイトを参照してください。
コメント