Где определяется, какой обратный вызов используется для конкретного метода в EClient

Я только начинаю использовать IB API в Python. Я могу получить все желаемые результаты, которые хочу. Однако передо мной возникает одна большая проблема. Я не совсем понимаю, как связь междуEClient class, и конкретный обратный вызов выполняется внутри EWrapper учебный класс.

На данный момент я понимаю такой рабочий процесс (высокий уровень):

  1. Экземпляр EClient обращается к IB Gateway.
  2. Сам IB Gateway обращается к центрам обработки данных IB для получения данных
  3. Данные возвращаются в IB Gateway
  4. IB Gateway вызывает обратный вызов, который является интерфейсом

Насколько я понимаю, IB Gateway запускает правильную функцию обратного вызова. Чего я не вижу в документации / исходном коде, так это связи междуEClient метод и интерфейс (обратный вызов) я переопределяю в моем EWrapperучебный класс. Когда я запускаю определенный метод на шаге 1 выше. Как IB Gateway узнает, какой обратный вызов следует выполнить? Это где-то указано?

1 ответ

Решение

Функции обратного вызова, которые обрабатывают ответы на каждую функцию, вызываемую в EClient, жестко запрограммированы и подробно описаны в Справочном руководстве TWS API.

Например, вызов EClient.reqAccountUpdates приводит к возврату ответов вEWrapper::updateAccountValue а также EWrapper::updatePortfolio, и вам нужно будет переопределить эти функции в собственном коде.

Другие вопросы по тегам