【问题标题】:IB_insync returning tiny integer for shares (1 = 100, 0 = 50?) need float or proper scaled intIB_insync 为共享返回小整数(1 = 100, 0 = 50?)需要浮点数或适当缩放的整数
【发布时间】:2020-03-07 14:13:50
【问题描述】:

使用 IB_insync API。

加载ticker.Domticks 并接收报价列表时,美元金额似乎是正确的,但份额显示为0、1、3、6 等的小整数......何时它们最有可能被缩放100 倍...而零很可能是少于 100 股。因为它不是浮点数,所以无法缩放。有谁知道为什么它会错误地返回股票号码?我最近确实订阅了 ASX 澳大利亚交易所,并注意到股票数量以数千计,所以它可能是正确的。合约 = 股票('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

【问题讨论】:

    标签: python ib-api


    【解决方案1】:

    通常只有整手(而不是奇数手)与账面顶部市场数据馈送一起返回,因为 NBBO(全国最佳买价/最佳卖价)规则仅适用于整手订单。

    What is an "Odd Lot" in stocks?

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多