Interactive Brokers API первая программа

Общие вопросы

Во-первых, соединение между клиентом API и TWS начинается в функции connect(). Соединение обязательно асинхронное, и поэтому программы выглядят иначе, чем программы в синхронной среде.

Из-за асинхронной архитектуры обычно (как минимум) выполняются два потока. Один поток читает сообщения из TWS в API и помещает сообщения в очередь. Другие потоки отправляют сообщения в TWS или обрабатывают сообщения во входящей очереди.

EClient — это класс в API, у которого есть функции, вызываемые для отправки сообщений в TWS.

EWrapper — это класс, в котором определены обратные вызовы TWS, которые должны обрабатываться и реализовываться клиентом API. В отличие от других языков программирования, это обрабатывается во время выполнения и не требует реализации всех обратных вызовов в EWrapper.

Полный текст примера: hello_tws_ex.py

from ibapi.client import EClient
from ibapi.wrapper import EWrapper  

class IBapi(EWrapper, EClient):
     def __init__(self):
         EClient.__init__(self, self) 

app = IBapi()
app.connect('127.0.0.1', 7497, 123)
app.run()
app.disconnect()

#Uncomment this section if unable to connect
#and to prevent errors on a reconnect
#import time
#time.sleep(2)
#app.disconnect()

При запуске данной программы вы должны получить примерно такой вывод:

Значит все настройки TWS сделаны правильно и python с библиотеками установлены корректно.
Можно переходить к следующему шагу. Программа "hello world".

Ссылки по теме

tradersacademy.online Accessing the TWS Python API Source Code