Getting parameters of listed options & futures in Interactive Brokers API

后端 未结 3 1679
清酒与你
清酒与你 2020-12-28 10:17

There are a lot of examples showing how to get particular asset\'s price from Interactive Brokers. However, when I want to get the whole chain of options for one asset, I do

3条回答
  •  醉话见心
    2020-12-28 11:09

    Implementing handler for contractDetailsEnd as suggested by Donn Lee. Thanks to both shashkello and Donn Lee.

    from ib.ext.Contract import Contract
    from ib.ext.ContractDetails import ContractDetails
    from ib.opt import ibConnection, message
    import time
    
    def watcher(msg):
        print msg
    
    def contractDetailsHandler(msg):
        contracts.append(msg.contractDetails.m_summary)
    
    def contractDetailsEndHandler(msg):
        global DataWait
        DataWait =  False
    
    con = ibConnection()
    con.registerAll(watcher)
    con.register(contractDetailsHandler, 'ContractDetails')
    con.register(contractDetailsEndHandler, 'ContractDetailsEnd')
    
    con.connect()
    
    contract = Contract()
    contract.m_exchange     = "SMART"
    contract.m_secType      =  "OPT"
    contract.m_symbol       = "VTR"
    #contract.m_multiplier   = "100"
    contract.m_currency     = "USD"
    
    
    con.reqContractDetails(1, contract)
    
    contracts = [] # to store all the contracts
    
    DataWait = True  ;  i = 0
    while DataWait and i < 90:
        i += 1 ; print i,
        time.sleep(1)
    
    con.disconnect()
    con.close()
    
    print contracts
    

提交回复
热议问题