前提
このページでは接続後のみのサンプルを記載しています。接続方法は以下を参照してください。
IB証券 APIの接続方法
取得できるデータ
リアルタイムデータは購読しているマーケット・データによって取得できないものがあります。
IB証券のマーケットデータの購読は以下を参照してください。
IB証券 マーケットデータの購読
板情報の解説
公式サイトを参照してください。
TWS API v9.72+: Market Depth (Level II)
API での株式や先物などの板情報の取得
ib.reqMktDepth()
で板情報をリクエストします。
contract = Contract( secType='FUT', symbol='NQ', lastTradeDateOrContractMonth='20200918', exchange='GLOBEX' ) ib.qualifyContracts(contract) ticker = ib.reqMktDepth(contract, numRows=5, isSmartDepth=False, mktDepthOptions=None) while ib.sleep(1): print(ticker.domBids) # [DOMLevel(price=11545.75, size=3, marketMaker=''), DOMLevel(price=11545.5, size=4, marketMaker=''), DOMLevel(price=11545.0, size=2, marketMaker=''), DOMLevel(price=11544.75, size=3, marketMaker=''), DOMLevel(price=11544.5, size=2, marketMaker='')] # [DOMLevel(price=11545.75, size=2, marketMaker=''), DOMLevel(price=11545.5, size=4, marketMaker=''), DOMLevel(price=11545.25, size=1, marketMaker=''), DOMLevel(price=11545.0, size=2, marketMaker=''), DOMLevel(price=11544.75, size=3, marketMaker='')] # [DOMLevel(price=11545.75, size=2, marketMaker=''), DOMLevel(price=11545.5, size=4, marketMaker=''), DOMLevel(price=11545.25, size=1, marketMaker=''), DOMLevel(price=11545.0, size=2, marketMaker=''), DOMLevel(price=11544.75, size=3, marketMaker='')]
板情報のリクエスト
ib.reqMktDepth(contract, numRows=5, isSmartDepth=False, mktDepthOptions=None)
contract
:商品情報numRows
:取得する個数(数値)isSmartDepth
:取引所全体で板情報を統合(True、False)mktDepthOptions
:不明
仕様は以下の公式サイトを参照してください。
TWS API v9.72+: EClient Class Reference
板情報のリターン(取得できる値)
取得できる値はリスト型になります。
取得できる値の種類
- domBids:買気配の板情報
- domAsks:売気配の板情報
- domTicks:ティックの板情報
買気配(domBids)と売気配(domAsks)の値
取得例
[DOMLevel(price=11528.25, size=5, marketMaker=''), DOMLevel(price=11528.0, size=3, marketMaker=''), DOMLevel(price=11527.75, size=2, marketMaker=''), DOMLevel(price=11527.5, size=2, marketMaker=''), DOMLevel(price=11527.25, size=4, marketMaker='')] [DOMLevel(price=11528.5, size=3, marketMaker=''), DOMLevel(price=11528.25, size=6, marketMaker=''), DOMLevel(price=11528.0, size=4, marketMaker=''), DOMLevel(price=11527.75, size=3, marketMaker=''), DOMLevel(price=11527.5, size=2, marketMaker='')] [DOMLevel(price=11528.5, size=5, marketMaker=''), DOMLevel(price=11528.25, size=4, marketMaker=''), DOMLevel(price=11528.0, size=4, marketMaker=''), DOMLevel(price=11527.75, size=3, marketMaker=''), DOMLevel(price=11527.5, size=2, marketMaker='')]
解説
- price:価格
- size:数量
- marketMaker:不明。以下のように公式サイトには記載されています。
the marketMaker field will indicate the exchange from which the quote originates. Otherwise it indicates the MPID of a market maker.
ティック(domTicks)の値
取得例
[MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 42, 304785, tzinfo=datetime.timezone.utc), position=2, marketMaker='', operation=1, side=0, price=11530.75, size=2)] [MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=0, marketMaker='', operation=1, side=1, price=11530.0, size=3), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=1, marketMaker='', operation=1, side=1, price=11529.75, size=6), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=2, marketMaker='', operation=1, side=1, price=11529.5, size=4), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=3, marketMaker='', operation=1, side=1, price=11529.25, size=3), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=4, marketMaker='', operation=1, side=1, price=11529.0, size=4), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=0, marketMaker='', operation=1, side=0, price=11531.0, size=2), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=1, marketMaker='', operation=1, side=0, price=11531.5, size=2), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=2, marketMaker='', operation=1, side=0, price=11531.75, size=3), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=3, marketMaker='', operation=1, side=0, price=11532.0, size=6), MktDepthData(time=datetime.datetime(2020, 9, 8, 5, 47, 44, 276272, tzinfo=datetime.timezone.utc), position=4, marketMaker='', operation=1, side=0, price=11532.25, size=3)]
解説
- time:日時
- position:不明
- marketMaker:不明*公式サイトには以下のように記載。
the marketMaker field will indicate the exchange from which the quote originates. Otherwise it indicates the MPID of a market maker.
- operation:不明*公式サイトには以下のように記載。
the operation to perform in the row: insert (0), update (1) or remove (2).
- side:不明*domBidsとdomAsksの識別かと思います。返値は0と1のようです。
- price:価格
- size:数量
コメント