QuantX OptraBot is a Options Trading Bot for automatically trading options strategies with an Interactive Brokers account.
Project description
OptraBot
OptraBot is a Options Trading Bot which can be used to run fully automated options trading strategies using your Interactive Brokers or Tastytrade trading account.
System requirements
Microsoft Windows, MacOS or Linux operating system
Python 3.13
For Interactive Brokers (native installation): Trader Workstation (TWS), IB Gateway or IB Client Portal Gateway
Installation
OptraBot uses the Python Package Manager UV from Astral (https://docs.astral.sh/uv/).
Use the following command for automatic installation procedure depending on your Operating System.
Windows: powershell -ExecutionPolicy ByPass -c "irm https://app.optrabot.io/static/assets/scripts/install-optrabot.ps1 | iex"
Windows Server: powershell -ExecutionPolicy ByPass -c "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; irm https://app.optrabot.io/static/assets/scripts/install-optrabot.ps1 | iex"
MacOS/Linux: curl -LsSf https://app.optrabot.io/static/assets/scripts/install-optrabot.sh | bash
This will download and automatically install UV if necessary, the correct Python version and the OptraBot itself.
Updating
The OptraBot got a auto-update functionality integrated. There is no need to update it manually.
The UV Package Manager can be updated with the command uv self update
Run OptraBot
OptraBot can be started with the following command: optrabot
Docker
OptraBot is also available as a Docker image (quantxgmbh/optrabot:latest).
Quick Start
Create a docker-compose.yaml and a data/ directory for the configuration and database:
services:
optrabot:
image: quantxgmbh/optrabot:latest
container_name: optrabot
ports:
- "8080:8080" # HTTP – for CDN/reverse proxy origin or direct access
# - "8443:8443" # Optional: direct local HTTPS access (required for IB Web SSO)
volumes:
- ./data:/optrabot # config.yaml and database are stored here
environment:
- IBGW=true # Set to true to start the IB Client Portal Gateway inside the container
restart: unless-stopped
Then start the container:
docker compose up -d
The OptraBot UI is then accessible at http://<host>:8080.
Environment Variables
| Variable | Values | Description |
|---|---|---|
IBGW |
true / false (default) |
Starts the IB Client Portal Gateway inside the container and routes IB API traffic via nginx |
Ports
| Port | Protocol | Description |
|---|---|---|
8080 |
HTTP | Main entry point – suitable as CDN/reverse proxy origin or for direct access |
8443 |
HTTPS (self-signed) | Optional – required for local browser-based IB Web SSO login (Secure cookies) |
Note: When using Interactive Brokers Web API (
ibweb) with local SSO login, use the HTTPS port8443.
Interactive Brokers in Docker
When running OptraBot in Docker with IBGW=true, the connection to Interactive Brokers is established via the IB Client Portal Gateway, which is bundled inside the container. This is different from the native installation, where Trader Workstation (TWS) or a standalone IB Gateway on the host machine is used.
The IB Client Portal Gateway requires a one-time browser-based login (SSO). Because the SSO session cookie is set as Secure, this login must be performed over HTTPS. Make sure to:
- Add the port mapping
8443:8443in yourdocker-compose.yaml - Open
https://<host>:8443in your browser to complete the IB login - Accept the self-signed certificate warning in the browser
After a successful login, OptraBot can communicate with Interactive Brokers via the gateway running inside the container.
Note: Port
8080(HTTP) is not suitable for the IB SSO login — use8443(HTTPS) for any browser-based IB authentication.
Configuration
On first start, the setup wizard launches automatically if no config.yaml is found in the mounted data/ directory. It guides through the initial configuration step by step. An existing config.yaml can also be imported directly in the setup wizard.
Health Check
OptraBot exposes a health check endpoint at /up. Use this path for load balancer and container health checks:
http://<host>:8080/up
The endpoint returns HTTP 200 when OptraBot is running.
Disclaimer
Be aware that you're using this software at your own risk. The author is not liable for any losses occuring with using this software.
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 optrabot-0.32.2.tar.gz.
File metadata
- Download URL: optrabot-0.32.2.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be2120888004c9b8c4ea1799ff359c99eef782ddb9a54b38519e3236974b5d12
|
|
| MD5 |
aeb03b2f16a06049a36c5ba3ce302a48
|
|
| BLAKE2b-256 |
bf619ef3505ed0309e53e425ff31a78417e582bf7ae5e8def80424a48e9add91
|
File details
Details for the file optrabot-0.32.2-py3-none-any.whl.
File metadata
- Download URL: optrabot-0.32.2-py3-none-any.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11689b4cd80d4bde68dfa46daa286426735c5c789b51d0238fa08906ab2b2a84
|
|
| MD5 |
f41067f34674953052a2fca561e13973
|
|
| BLAKE2b-256 |
d441a068ed1bcd2f96fb66d187cab3072966239f24165f5f0039f65afd73b7d1
|