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"

Copyright © 2024 He Shiming <heshiming at gmail dot com>.