Search code examples
interactive-brokers

Getting error "AttributeError: module "ibapi.contract" has no attribute "UnderComp"


Ive tried now for some time to get the following code to work, but I keep getting this error message. What am I doing wrong?

from ib_insync import IB

ib = IB()
ib.connect("127.0.0.1",7497,clientId=1)

stock = Stock("AMD","SMART","USD")
bars = ib.reqHistoricalData(
    stock,
    endDateTime="",
    durationStr="30 D",
    barSizeSetting="1 hour",
    whatToShow="MIDPOINT",
    useRTH="True"
    )

    
print(bars)

Error message:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:/Users/Ejer/Desktop/TWS/option.py", line 1, in <module>
    from ib_insync import IB
  File "c:\Users\Ejer\Miniconda3\lib\site-packages\ib_insync\__init__.py", line 21, in <module>
    from .objects import *
  File "c:\Users\Ejer\Miniconda3\lib\site-packages\ib_insync\objects.py", line 155, in <module>
    class UnderComp(Object):
  File "c:\Users\Ejer\Miniconda3\lib\site-packages\ib_insync\objects.py", line 156, in UnderComp
    defaults = ibapi.contract.UnderComp().__dict__
AttributeError: module 'ibapi.contract' has no attribute 'UnderComp'
>>> 

Solution

  • Seems, you are using the old ib-insync package (ver 0.9.11). Try to install the latest version ib-insync 0.9.64, that worked for me. Also, follow the group for more information: https://groups.io/g/insync