Я пытаюсь разместить заказ через Python API Interactive Brokers, но получаю сообщение об ошибке:
ОШИБКА 1 320 Ошибка запроса чтения: невозможно проанализировать данные. java.lang.NumberFormatException: для входной строки: "1,7976931348623157e+308"
Подключение и получение данных работает нормально, но при отправке заказа один из моих параметров кажется неправильным, и я просто не могу понять, что это такое. Я внимательно следил за документацией IB, так что это стало для меня неожиданностью.
К сожалению, код ошибки (320) на самом деле ничего не говорит, так как IB просто описывает его как «Ошибка сервера».
Единственный связанный с вопрос, который я нашел в Интернете, связывает ошибку с недопустимым идентификатором, но я проверил свой, и все должно быть в порядке.
Код:
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
from ibapi.order import Order
import threading
class IBapi(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
def run_loop():
app.run()
app = IBapi()
app.connect('127.0.0.1', 7496, 1)
api_thread = threading.Thread(target = run_loop, daemon = True)
api_thread.start()
ctr = Contract()
ctr.symbol = 'AAPL'
ctr.secType = 'STK'
ctr.exchange = 'SMART'
ctr.currency = 'USD'
ord = Order()
ord.action = 'BUY'
ord.orderType = 'LMT'
ord.totalQuantity = 1
ord.lmtPrice = 150
app.reqIds(-1)
id = app.nextValidOrderId
print(id)
print(isinstance(id, int))
app.placeOrder(id, ctr, ord)
возвращает:
1
True
ERROR 1 320 Error reading request: Unable to parse data. java.lang.NumberFormatException: For input string: "1.7976931348623157e+308"
Моя версия TWS — 10.20.1d, которая является последней на данный момент (поскольку это исправило несколько связанный вопрос).
Может кто-нибудь помочь мне с тем, что я делаю неправильно, пожалуйста?
Спасибо, я использовал 10.19, и обновление решило проблему.
Кстати, если вы отправите свой комментарий в качестве ответа, я принимаю его как решение.






Используя TWS 10.20.1d и API_Version=10.20.01, я обнаружил, что ваш код работает с небольшим изменением nextValidOrderId.
Предложите проверить версию API и обновить ее, если она не самая последняя.
Какая версия API у вас установлена? Помимо небольшого изменения с nextValidOrderId, это работает для меня на 10.20.1d и API_Version=10.20.01.