使用IB_insync API。
在加载ticker.Domticks并接收报价列表时,美元金额似乎是正确的,但是份额显示为0、1、3、6等小整数……应将它们最可能缩放为100x ...而少于100股的股票很有可能为零。由于它不是浮点数,因此无法缩放。有谁知道为什么它会错误地返回股票编号?我最近确实订阅了澳大利亚证券交易所的澳大利亚交易所,并注意到股票数量回到了数千,所以大概是正确的。合约=股票('AAPL',“ ISLAND”,“ USD”)>合约=股票('CBA',“ ASX”,“ AUD”)
def runner(ticker):
global elements
# print(ticker.domTicks)
for i in range(100):
if i < len(ticker.domTicks):
grab = ticker.domTicks[i]
elements.append(grab)
if __name__ == "__main__":
depth = 120
time_samples = 260
ib = IB()
ib.connect('127.0.0.1', 7497, clientId=2)
list_of_exchanges = ib.reqMktDepthExchanges()
for items in list_of_exchanges:
print(items)
print(list_of_exchanges)
contract = Stock('AAPL', "ISLAND","USD")
last_bid_book = np.zeros((0,depth))
print(last_bid_book)
last_ask_book = np.zeros((0,depth))
elements = []
ticker = ib.reqMktDepth(contract)
ib.sleep(1)
ticker.updateEvent += runner
答案 0 :(得分:0)
由于NBBO(全国最佳买/卖出价)规则仅与往返订单有关,因此通常只将最高出价(而不是奇数)与最高出价市场数据一起返回。
What is an "Odd Lot" in stocks?
因此,出价/要价数据会返回一个乘数,该乘数可以在IBApi.ContractDetails类的mdSizeMultiplier
字段中找到。