MidasTrader is a robust trading system designed for seamless transitions between backtesting and live trading without requiring changes to user code. It integrates a flexible architecture combining a data engine, execution engine, and core components that streamline the strategy development process. The system is built with a multi-threaded design where each component communicates via a shared message bus.
-
Core Engine:
- Central to the system, the Core Engine includes:
- Order Book: Tracks market depth and price movements.
- Portfolio Server: Manages and tracks portfolio allocations and positions.
- Performance Tracking: Calculates and monitors key trading metrics.
- Order Management System: Handles order placement, modifications, and cancellations.
- Base Strategy: A foundation for user-defined strategies.
- Central to the system, the Core Engine includes:
-
Data Engine:
- Connects to user-defined data sources:
- Midas Server: Access historical data via the Midas ecosystem.
- Binary Data Files: Handles local files encoded with the Midas Binary Encoding Library.
- External Sources: Currently supports Databento, with more integrations planned.
- Connects to user-defined data sources:
-
Execution Engine:
- Facilitates live trading by connecting to brokers:
- Currently supports Interactive Brokers.
- Users can configure broker details in the
config.toml
file.
- Facilitates live trading by connecting to brokers:
You can install midastrader
directly from PyPI:
pip install midastrader
Define system parameters, including data sources, execution settings, and strategy configuration.
- Example : config.toml
Strategies are implemented by extending the BaseStrategy
class. Define your custom logic in Python.
- Example : logic.py
Run the system using the following commands:
# Backtest Mode
midas path/to/config.toml backtest
# Live Mode
midas path/to/config.toml live
Alternatively, you can use the system programmatically in your application:
from midas.cli import run
# Backtest Mode
run("path/to/config.toml", "backtest")
# Live Mode
run("path/to/config.toml", "live")
Data Vendors | |
---|---|
✅ | Databento |
Brokers | |
---|---|
✅ | Interactive Brokers |
- Add more data sources.
- Integrate additional brokers.
Contributions are welcome! Feel free to open an issue or submit a pull request with suggestions or improvements.
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.