ALGOVIGIL
Backtesting methodology

Your backtest looks great. Does it survive real slippage?

Most backtests assume every exit fills at exactly the price your code computed. A stop-loss or trailing-stop fires at a level your code calculated in advance — and by the time an order reaches the book, price has often already moved past it. That gap is where a backtest's edge quietly evaporates in live trading.

Open source (MIT) free tier Works with any strategy Runs entirely locally

What's actually happening

That's only true for exits priced off what the market is actually doing right now — an end-of-day exit, a time stop. A stop-loss or trailing-stop fires at a level your code calculated in advance, and real fills routinely land worse than that level by the time an order actually reaches the book.

SlipStress takes a trade log you've already produced from your own backtest, haircuts the exit price on whichever exit types you tag as "computed level," and recomputes performance so you see exactly how much of your edge survives. This isn't a trading strategy and it doesn't generate signals — it's a stress test for a strategy you already have.

What it looks like when it runs

SlipStress -- 0.28% slippage on stop_loss, trailing_stop, atr_stop exits Metric Baseline Stressed -------------------------------------------------- Trades 20 20 Total return % 4.27 3.91 CAGR % 25.2 22.9 Sharpe 3.801 3.563 Max drawdown % -0.77 -0.83 Profit factor 3.175 2.786 Win rate % 50.0 50.0 Expectancy $ 213.67 195.68

One command against your own trade-log CSV, a real before/after comparison — no guessing what slippage "probably" costs you.

Four modes

  1. single — one slippage level, baseline vs. stressed comparison, optional equity-curve chart and Excel export.
  2. sweep — the full degradation curve across multiple slippage levels, so you see exactly where your edge starts to break down.
  3. compare — design-fold vs. test-fold, side by side, to catch a strategy that overfit its exit timing to one period.
  4. batch — run the same stress test against every trade log in a folder, one summary table instead of running it by hand per file.

Quick start — free tier

No signup, no account linking. Your own trade-log CSV, a couple of commands.

$ git clone https://github.com/mthameed/slipstress.git $ cd slipstress $ pip install -e . $ slipstress-free --trades example_trades.csv --slip-pct 0.28

Runs entirely on your own machine against your own trade logs — nothing is uploaded anywhere. See the repo's README for the trade-log CSV format and an example file to try it on immediately.

Free vs Pro

The free tier runs one slippage level against one trade log and prints a console comparison — genuinely open source (MIT), not a crippled trial.

FreePro
Single slippage-level stress test✓✓
Baseline vs. stressed comparison✓✓
Slippage sweep (degradation curve)—✓
Equity-curve chart—✓
Design-fold vs. test-fold comparison—✓
Batch mode (whole folder, one report)—✓
Excel (.xlsx) report export—✓

Common questions

Does this give me trading signals or advice?
No. It only stress-tests a trade log you already produced yourself — it never generates entries, exits, or recommendations.
What format does my trade log need to be in?
A plain CSV: symbol, entry/exit date, entry/exit price, qty, and exit_type (which exits are "computed level" vs. market-observed). See the README for the full spec and an example file.
Is this tied to IBKR, TWS, or any specific backtest engine?
No — it works on any trade log in the expected CSV shape, regardless of what produced it.
Is this a subscription?
No. Pro is a one-time purchase, $79, with a 7-day refund window. No recurring fee.