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
- 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"
- 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 (
.envfile) - 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:
- Clone the repository
- Install dependencies:
pip install -e .
- Create and configure
.envfile:
ibkr-daemon config init
- Start the daemon:
python -m ibkr_event_daemon start
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e01f42e97e474260ef52112081df35523e003e2ce87d9b7abc0cfd3473badfa1
|
|
| MD5 |
0defa8d8c2b7b99e1877c5a410c7eefc
|
|
| BLAKE2b-256 |
5f433ee294e7c61c288f941ed211616f7211a92370881919173f28dc3b413425
|
File details
Details for the file ibkr_event_daemon-0.3.0-py3-none-any.whl.
File metadata
- Download URL: ibkr_event_daemon-0.3.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc87cb25bbd3e6a1a98037e22c19d27c54d8d053b92100c319a0f247a72b8a5b
|
|
| MD5 |
087062a5b8301b5d6b6df3739210b2e2
|
|
| BLAKE2b-256 |
64a42aff1513eecc71418678b41e0b0ee592e92d6952dcaed481891ed00c49d9
|