IB Gateway Automation (IBGA)
IBGA is IB Gateway in headless mode. It is a container image preloaded with scripts for automating user interactions with IBG.
With TOTP (Time-based one-time password/IBKR Mobile Authenticator App) automation and second factor support.
Benefits:
- A “docker compose” flavored configuration
- Store username, password, time zone and other options in one place
- Automatic installation and easy upgrade of IBG
- Automatic handling of daily restarts beyond the one week limit, upon exit or crash
- Automatic handling of paper trading confirmation and options dialog
- Automatic daily export of logs
- Retaining of settings after an upgrade
- A disposable container design
- Support Mobile Authenticator App automation (as of Nov 3, 2024)
- Support two-factor authentication (as of Nov 11, 2022)
Under the hood:
- IBGA runs in a set of bash scripts.
- IBGA relies on JAuto, a JVMTI agent to determine screen locations of windows, text boxes, and buttons.
- IBGA relies on xdotool to simulate keyboard and mouse input.
- IBGA relies on Xvfb, x11vnc, novnc to provide a VNC-capable X11 environment for IBG.
- IBGA relies on oathtool to generate TOTP passcodes.
Example docker-compose.yml
version: '2'
services:
my-ibga:
image: heshiming/ibga
restart: unless-stopped
environment:
- TERM=xterm
- IB_USERNAME=username
- IB_PASSWORD=password
- IB_REGION=America
- IB_TIMEZONE=America/New York
- IB_LOGINTAB=IB API
- IB_LOGINTYPE=Live Trading
- IB_LOGOFF=11:55 PM
- IB_APILOG=data
- IB_LOGLEVEL=Error
volumes:
- ./run/program:/home/ibg
- ./run/settings:/home/ibg_settings
ports:
- "15800:5800"
- "4000:4000"