Backtest stock strategies in seconds
No signup required. Try a sample strategy or build your own across 8,000+ stocks.
How it works
Pick or build a strategy
Start from one of 10 prebuilt samples or define your own entry and exit conditions from 124+ indicators.
Choose universe & rules
S&P 500, Russell 2000, NASDAQ, or your own custom ticker list. Set stop loss, take profit, position sizing.
Get full results
Returns, Sharpe, drawdown, win rate, trade-by-trade analysis, benchmark comparison. Export to Excel.
How conditions work
Entry conditions are joined by AND — every condition listed must be true on the same day for a buy signal to fire. If you require "RSI below 30" plus "P/E below 15", a stock needs both at today's close to be entered tomorrow morning.
Exit conditions default to OR — any single condition triggers an exit — but you can switch to AND in the exit-logic toggle. Common exits are indicator-based ("RSI above 70"), time-based ("held for 20 days"), or fundamental shifts ("EPS growth below 5%").
Order execution timing
Signals fire at end of day when the engine scans every stock in your universe against today's full daily bar. Buy and sell orders execute at next day's open, modeling the fact that you can't act on today's close until tomorrow.
Stop loss and take profit are the exception — they trigger intraday at the exact price level, not at next morning's open. A 5% stop loss on a $100 entry exits the moment price touches $95, regardless of when in the session that happens.
Position sizing & cash
Each trade uses up to your Position Size in dollars. A new position only opens when available cash covers the full position size — no fractional positions filling slots with leftover cents.
As a strategy closes profitable trades, cash grows and can fund additional concurrent positions. This is how a profitable strategy compounds — the max number of concurrent positions isn't capped, just gated by cash.
Indicators & custom conditions
Over 124 built-in indicators cover price action (SMA, EMA, RSI, MACD, Bollinger), volume, volatility, valuation (P/E, PEG, EV/EBITDA), income statement, balance sheet, cash flow, profitability, and analyst sentiment.
You can also describe a condition in plain English and the engine will interpret it via AI into a sandboxed Python function — useful for ideas that don't fit a single off-the-shelf indicator.
Universe
Select which stocks to backtest against
Entry Conditions
Define when to open a position. All conditions must be met.
Exit Conditions
Define when to close a position. Any condition triggers an exit.
Risk Management
Optional stop loss and take profit levels
Portfolio
Configure portfolio sizing and position limits