IB_insync返回份额的微小整数(1 = 100,0 = 50?)需要浮点数或适当缩放的int

时间:2019-11-11 21:37:32

标签: python ib-api

使用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

1 个答案:

答案 0 :(得分:0)

由于NBBO(全国最佳买/卖出价)规则仅与往返订单有关,因此通常只将最高出价(而不是奇数)与最高出价市场数据一起返回。

What is an "Odd Lot" in stocks?

  • 奇数订单未发布到交易所的买卖数据中

因此,出价/要价数据会返回一个乘数,该乘数可以在IBApi.ContractDetails类的mdSizeMultiplier字段中找到。