Невозможно разместить WhatIfOrder с помощью ib_insyncPython

Программы на Python
Ответить
Anonymous
 Невозможно разместить WhatIfOrder с помощью ib_insync

Сообщение Anonymous »

Я пытаюсь разместить заказ «что, если» с помощью ib_insync, но получаю ошибку, связанную с циклом событий asyncio при вызове WhatIfOrder:

Код: Выделить всё

This event loop is already running.
Размещение регулярных заказов вместо заказов «что, если» работает. Следующий пример воспроизводит ситуацию.

Код: Выделить всё

from ib_insync import IB, Forex, Ticker, MarketOrder

def on_tick(ticker: Ticker):
o = MarketOrder("BUY", 10000)
res = ib.whatIfOrder(contract, o) # => ERROR

ib = IB()
ib.connect(host='127.0.0.1', port=4001, clientId=1)
contract = Forex('GBPUSD', 'IDEALPRO')
ib.qualifyContracts(contract)
ticker = ib.reqMktData(contract)
ticker.updateEvent += on_tick
ib.run()
Похоже, что ib.run() запускает цикл обработки событий (с помощьюloop.run_forever()), но затем цикл.is_running() > неверно. Я не знаю, что происходит.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -ib-insync
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»