Skip to content

heshiming/ibga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Documentation

https://heshiming.github.io/ibga/

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"

Contributing

Bug reports and feature requests are welcome. But since the source code is dual-licensed, code contributions (i.e. pull requests) are not directly accepted at this point.