Most options backtests publish a final chart, but often leave out the exact requests, fill rules and execution assumptions needed to reproduce it.
I wanted to build something where the complete process could be inspected, so I created an open-source Java backtester and used it to replicate two publicly described short-duration options strategies: Early Retirement Now and WealthyOption.
Results
Both tests use SPXW data from January 2017 to July 2026.
| Strategy | My backtest | Published result |
|---|---|---|
| ERN — 0DTE + 1DTE puts | 1.55% annualized return | 7.06% annualized return |
| WealthyOption — 3 puts + 3 calls | 17.58% CAGR / 21.43% max drawdown | 23.1% CAGR / 19.2% max drawdown |
These aren’t exact like-for-like comparisons. The ERN result published by its author includes discretionary decisions, while my implementation is entirely rules-based. The periods, data and execution models also differ.
Technical details
The project includes:
- A streaming Java backtesting engine
- A Spring Boot API
- ThetaData five-minute option data integration
- SQLite persistence
- Configurable commissions, slippage and fill assumptions
- Versioned requests and complete backtest results
- Documentation covering the methodology and known limitations
The core engine is separated from the ThetaData integration so other data providers can be added later. The published tests include commissions and use documented bid/ask-based fill rules rather than assuming every trade executes at the midpoint.
The repository is here:
github.com/Javier-Garzo/ern-wo-options-backtester
The main goal is to let other developers inspect the assumptions and reproduce the results instead of having to trust a performance chart. Feedback on the architecture, execution model or methodology is welcome.
Top comments (0)