Я использую Python и ib_insync для использования API Interactive brokers, я пытаюсь получить рыночные данные в виде Bid, Ask, AskSize и т. Д. Будущего опционного контракта, но при конвертации этого контракта на тикере я получил "Нет для запроса найдено определение безопасности ", даже если я назначил этот атрибут раньше.
# using Future from ib_insync has the same problem
# contract = Future('ES',"20190315",'GLOBEX')
contract = Contract()
contract.symbol = "ES"
contract.secType = "FOP"
contract.exchange = "GLOBEX"
contract.currency = "USD"
contract.lastTradeDateOrContractMonth = "20190315"
contract.strike = 2900
contract.right = "C"
contract.multiplier = "50"
result =[]
result.append(contract)
ib.reqMarketDataType(3)
ib.qualifyContracts(*result)
ticker = ib.reqMktData(contract,"",False,False)
ib.sleep(3)
ticker
Выход:
Error 200, reqId 26: No security definition has been found for the request, contract: Contract(secType='FOP', symbol='ES', lastTradeDateOrContractMonth='20190315', strike=2900, right='C', multiplier='50', exchange='GLOBEX', currency='USD')
Unknown contract: Contract(secType='FOP', symbol='ES', lastTradeDateOrContractMonth='20190315', strike=2900, right='C', multiplier='50', exchange='GLOBEX', currency='USD')