Project 06 of 06 / Financial software

Day trading platform

A modular Python system for market data, order execution and portfolio state, built so that a strategy has to prove itself against history before it can reach any capital.

Language
Python
Broker interface
Interactive Brokers
Period
2025 to now
Status
Backtesting, no live capital

The brief

Make a strategy earn its way to live capital.

The interesting engineering in a trading system is not the strategy. It is the separation between market data, strategy logic, risk management, execution and portfolio state, and the discipline that stops a promising backtest from becoming a live position before anyone has checked it.

Architecture

Risk is a component, not a note in the readme.

  1. Market dataReal time and historical feeds through the IBKR API.
  2. StrategyModular logic evaluated against incoming data.
  3. Risk controlsPosition sizing, stop loss logic and drawdown caps.
  4. ExecutionOrder management and portfolio state updates.

Engineering decisions

Design for validation and containment.

  1. Keep the parts independent. Data, strategies, risk and execution can each change without dragging the others with them.
  2. Make risk explicit. Position sizing, stops and drawdown limits sit in the core workflow, so a strategy cannot opt out of them.
  3. Backtest first. Historical validation gates any move toward live capital.
  4. Use a production broker interface. IBKR supplies real market data and a real execution path, so the test conditions resemble the live ones.

Current status

In backtesting and validation. No live performance claim is made and none should be read into this page. Test methodology and results will be published once they are solid enough to defend.