Your backtest says 300%. Is it real, or curve-fitting?
An honest engine (fees, slippage, next-bar fills) plus the stress tests quant funds use: walk-forward, an untouched out-of-sample hold-out, Monte Carlo and parameter heatmaps. One command, one HTML report. Your code, on your machine.

The trap it's built to catch
The bundled demo tunes a moving-average strategy on the first 70% of the data. In-sample it looks great: Sharpe 1.49. On the untouched last 30% it falls apart: Sharpe −0.13. Most backtesting tools would only ever show you the first number.
What you get
Honest engine
Decide at the close, fill at the next open, fee + slippage on every fill. No look-ahead (tested).
Walk-forward
Rolling or anchored re-optimization, stitched out-of-sample equity, WF-efficiency score.
Out-of-sample split
Optimize on 70%, test once on the untouched 30%.
Monte Carlo
Trade bootstrap, order shuffle, block bootstrap. Percentile bands, P(loss), drawdown distribution.
Parameter heatmaps
Plateau score separates robust edges from lucky spikes.
6 strategies + your own
MA cross, Donchian, RSI reversion, EMA+ATR, vol-targeted trend, B&H. Add yours with a 5-line decorator.
Risk exits & sizing
Stop-loss, take-profit, trailing stop (gap-aware); 0–100% fractional and volatility-targeted sizing.
20+ metrics
CAGR, Sharpe, Sortino, Calmar, max DD & duration, profit factor, expectancy, fees, B&H comparison.
YAML + full CLI
run, split, walkforward, montecarlo, sensitivity, report. Any OHLCV CSV, keyless candle downloader.
Screenshots





Lite vs Pro
| Lite (free, MIT) | Pro ($12) | |
|---|---|---|
| Engine with fees, slippage, next-open fills | ✓ | ✓ |
| CAGR, Sharpe, max drawdown, win rate | ✓ | ✓ |
| Sortino, Calmar, profit factor, 20+ metrics | ✓ | |
| Strategies | MA crossover | 6 + custom registry |
| Stops / take-profit / trailing / fractional sizing | ✓ | |
| Out-of-sample split · walk-forward · Monte Carlo | ✓ | |
| Parameter-sensitivity heatmaps | ✓ | |
| Charts | equity + drawdown | 5 chart types + HTML report |
| Config + CLI | basic flags | YAML + full CLI |
Free: Crypto Backtest Toolkit Lite
The same honest engine with fees, slippage and the core metrics, MIT-licensed. Try it first and see the code quality for yourself.
Download Lite (free) zip · Python 3.10+ · MITBuy Toolkit Pro
One-time payment in bitcoin (on-chain). No email, no account.
- Get a live quote: an exact sat amount, an order ID and a secret claim key. Valid 30 minutes. Don't send anything before you see it.
- Send exactly that amount to the address shown, in one payment.
- Keep this page open, or come back later. After 1 confirmation your download appears right here.
Honest note on timing: our checkout runs on a small machine that isn't always online. Requests and deliveries travel as end-to-end encrypted messages through public Nostr relays, which hold them while it's offline, so a quote or delivery can take hours instead of seconds. The line above shows when the checkout was last online. Your order is saved in this browser.
Checkout diagnostics (screenshot this if checkout doesn't work)
Claim key
Amount
Address
Expires in30:00Our only payment address is 1MVAKAcfvPNSyxW9Pa7zdn7SQn5xTqhCKu. It's also listed in the FAQ and in our Nostr profile. This quote was verified as signed by our shop key.
Save your order ID and claim key. They're stored in this browser, but they are the only way to recover your purchase on another device. all details.
Send the exact amount in one payment. Network fees are paid by you. Digital goods are final sale.
Recover my order
Paste the order ID and claim key you saved.
FAQ
Our only payment address is 1MVAKAcfvPNSyxW9Pa7zdn7SQn5xTqhCKu. It's in this FAQ and in our Nostr profile (npub16lgpp5erwwfrwdur0sjashuessfg28mlf8c0uruq06ah2ag26x5sm7vd7g), which you can check in any Nostr app independent of this website, and the checkout refuses any quote not signed by that shop key or naming a different address. If you ever see another address, don't pay it.
Python 3.10+ with numpy, pandas, matplotlib and pyyaml. Windows, macOS or Linux. Runs fully offline.
No. It's research software: no exchange connections, no API keys, no signals. Sample data is synthetic.
No payment processor and no account for you or us. You pay an exact amount on-chain and get a one-time download link after 1 confirmation.
Digital download, so all sales are final. That's why the Lite edition is free: try before you buy.
Single user, on all your own machines, commercial use OK.