erdewit / ib_insync

Python sync/async framework for Interactive Brokers API
BSD 2-Clause "Simplified" License
2.81k stars 754 forks source link

AttributeError: 'Order' object has no attribute 'update' #73

Closed jecepeda closed 6 years ago

jecepeda commented 6 years ago

Hi,

Today I've found this error when placing an order:

ERROR:ib_insync.client:Decode failed
Traceback (most recent call last):
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 251, in _onSocketHasData
    self._decode(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 347, in _decode
    self.decoder.interpret(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 1347, in interpret
    handleInfo.processMeth(self, iter(fields))
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 423, in processOpenOrder
    self.wrapper.openOrder(order.orderId, contract, order, orderState)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/wrapper.py", line 303, in openOrder
    trade.order.update(**order.__dict__)
AttributeError: 'Order' object has no attribute 'update'
ERROR:ib_insync.client:Decode failed
Traceback (most recent call last):
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 251, in _onSocketHasData
    self._decode(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 347, in _decode
    self.decoder.interpret(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 1347, in interpret
    handleInfo.processMeth(self, iter(fields))
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 423, in processOpenOrder
    self.wrapper.openOrder(order.orderId, contract, order, orderState)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/wrapper.py", line 303, in openOrder
    trade.order.update(**order.__dict__)
AttributeError: 'Order' object has no attribute 'update'
ERROR:ib_insync.client:Decode failed
Traceback (most recent call last):
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 251, in _onSocketHasData
    self._decode(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 347, in _decode
    self.decoder.interpret(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 1347, in interpret
    handleInfo.processMeth(self, iter(fields))
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 423, in processOpenOrder
    self.wrapper.openOrder(order.orderId, contract, order, orderState)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/wrapper.py", line 303, in openOrder
    trade.order.update(**order.__dict__)
AttributeError: 'Order' object has no attribute 'update'
ERROR:ib_insync.client:Decode failed
Traceback (most recent call last):
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 251, in _onSocketHasData
    self._decode(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/client.py", line 347, in _decode
    self.decoder.interpret(fields)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 1347, in interpret
    handleInfo.processMeth(self, iter(fields))
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ibapi/decoder.py", line 423, in processOpenOrder
    self.wrapper.openOrder(order.orderId, contract, order, orderState)
  File "/home/idi/.virtualenvs/tws-app/lib/python3.6/site-packages/ib_insync/wrapper.py", line 303, in openOrder
    trade.order.update(**order.__dict__)
AttributeError: 'Order' object has no attribute 'update'

The versions that I have for ibapi and ib_insync are ib-insync==0.9.23 and ibapi==9.73.6 Nevertheless, I could still get the Trade object as a response and work with it correctly

If you need something more tell me and I'll be glad to help

Thanks a lot

Regards

erdewit commented 6 years ago

When creating orders, just use the Order object from ib_insync and not the one from ibapi.

jecepeda commented 6 years ago

Ok I'll do that

Thank you for answering so fast!