Skip to main content

A lightweight event handling tool for Interactive Brokers based on the ibevent library. This project automates the process of capturing, triggering, and dispatching events from the IBKR trading platform.

Project description

中文文档

IBKR Event Daemon

A flexible event-driven daemon for Interactive Brokers TWS/Gateway that handles real-time market data and trading events.

Features

  • Event-driven architecture for handling IBKR market data and trading events
  • Simple handler pattern for implementing custom event processors
  • Built-in support for real-time bar data
  • Configurable via environment variables or command-line options
  • Comprehensive logging with rotation and retention policies
  • Supervisor integration for process management

Installation

pip install ibkr-event-daemon

Quick Start

  1. Configure your environment variables in .env:
IB_EVENT_DAEMON_HOST=127.0.0.1
IB_EVENT_DAEMON_PORT=7497
IB_EVENT_DAEMON_CLIENTID=1
IB_EVENT_DAEMON_TIMEOUT=4
IB_EVENT_DAEMON_READONLY=False
IB_EVENT_DAEMON_ACCOUNT=
IB_EVENT_DAEMON_RAISESYNCERRORS=False
IB_EVENT_DAEMON_SETUP_PATHS="./example"
  1. Start the daemon:
ibkr-daemon start

Or with custom logging:

ibkr-daemon start --log-level DEBUG --log-file logs/daemon.log

Creating Custom Handlers

Handlers are Python modules that process IBKR events. Place your handlers in the directory specified by IB_EVENT_DAEMON_SETUP_PATHS.

Example handler for real-time bar data (example/realtimebar_example.py):

from ib_async import IB, Forex
from ibkr_event_daemon.core import LoggerType

def setup(ib: IB, logger: LoggerType) -> None:
    usd_jpy = Forex('USDJPY')
    bars = ib.reqRealTimeBars(
        usd_jpy, 
        barSize=5, 
        whatToShow="MIDPOINT", 
        useRTH=True
    )
    bars.updateEvent += onBarUpdate

def onBarUpdate(bars, hasNewBar):
    if hasNewBar:
        print(bars[-1])

Configuration

Configuration can be managed through:

  • Environment variables (.env file)
  • Command-line options
  • Configuration commands

Show current configuration:

ibkr-daemon config show

Initialize default configuration:

ibkr-daemon config init

Process Management

The project includes a supervisord.conf for process management. This allows for:

  • Automatic restart on failure
  • Process monitoring
  • Log management

Development

To run in development mode:

  1. Clone the repository
  2. Install dependencies:
pip install -e .
  1. Create and configure .env file:
ibkr-daemon config init
  1. Start the daemon:
python -m ibkr_event_daemon start

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ibkr_event_daemon-0.3.0.tar.gz (55.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ibkr_event_daemon-0.3.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file ibkr_event_daemon-0.3.0.tar.gz.

File metadata

  • Download URL: ibkr_event_daemon-0.3.0.tar.gz
  • Upload date:
  • Size: 55.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.9

File hashes

Hashes for ibkr_event_daemon-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e01f42e97e474260ef52112081df35523e003e2ce87d9b7abc0cfd3473badfa1
MD5 0defa8d8c2b7b99e1877c5a410c7eefc
BLAKE2b-256 5f433ee294e7c61c288f941ed211616f7211a92370881919173f28dc3b413425

See more details on using hashes here.

File details

Details for the file ibkr_event_daemon-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ibkr_event_daemon-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc87cb25bbd3e6a1a98037e22c19d27c54d8d053b92100c319a0f247a72b8a5b
MD5 087062a5b8301b5d6b6df3739210b2e2
BLAKE2b-256 64a42aff1513eecc71418678b41e0b0ee592e92d6952dcaed481891ed00c49d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page