Backtest the rules you actually saved
A backtest replays a saved strategy against available historical data. It is most useful for checking logic, trade sequence, exposure, and sensitivity—not predicting future returns.
Finish the strategy definition first. Confirm its universe, entries, sizing, exits, schedules, portfolio limits, and asset-specific settings from the strategy Overview. A material edit creates a new test hypothesis, so rerun the relevant periods after saving.
Run a backtest
- Open Strategies, select the strategy, and review the saved configuration on Overview.
- Open the Backtest tab. The run uses available history; inspect its reported dates after completion.
- Start the run. Investfly shows queued or running progress; you can stop an active run if the definition or date range is wrong.
- After completion, review the portfolio curve, summary metrics, closed trades, and any errors or warnings together.

Interpret the result in layers
| Evidence | Question to ask |
|---|---|
| Trade list | Did the strategy enter, size, scale, and exit when the saved rules say it should? |
| Portfolio path | Were gains concentrated in one short interval, and how deep or persistent were declines? |
| Counts and win/loss metrics | Is the sample large enough to be informative, and are a few outliers driving the outcome? |
| Risk-adjusted metrics | Do the reported values remain coherent across relevant periods and assumptions? |
| Warnings and missing data | Could unavailable history, sparse bars, or a modeled instrument invalidate the comparison? |
Compare periods without overfitting
Test more than one market environment and keep at least one period outside the tuning process. If a small parameter change completely reverses the result, treat the strategy as fragile. Prefer a rule set you can explain over one selected only because it maximized a historical metric.
Daily bars, intraday bars, schedules, pending limits, futures contracts, and options structures can have different timing and pricing assumptions. Compare only runs whose data and configuration make the comparison meaningful.
Move from history to forward observation
A completed backtest is one checkpoint. Next, deploy the saved strategy to an Investfly virtual portfolio and observe current signals, pending orders, fills, state transitions, and exits with simulated funds. If you later choose an eligible broker account, repeat the compatibility and risk review before authorization.
Need a strategy first? Follow How to Create a Trading Strategy or compare the no-code trading bot builder with the Python algorithmic trading platform.
Inspect a complete historical test
Premium and Elite include hosted visual/Python backtesting. Standard does not include continued backtesting after the trial. The public SMA CrossOver example uses AAPL and META, five-minute SMA(20) above SMA(50) on a rising edge, 30% equity sizing, an initial 4% protective threshold, staged targets and a later trailing stop. Review all saved settings before testing.
Inspect SMA CrossOver, use Customize to save a private draft, and review every setting before running it.
| Reported historical period | Matched closed-trade records | Last completed run |
|---|---|---|
| 2026-09-03 to 2026-10-09 | 15 | 2026-10-10 |
Historical simulation, not live performance. Partial closes may create multiple matched records. The run uses available history; its dates can change as data refreshes. Inspect costs, fills, missing data and warnings in the full report. These settings demonstrate software behavior, not a recommended strategy.
| Coverage | Important assumption |
|---|---|
| Stocks/ETFs and spot crypto | Stored OHLCV history varies by symbol and interval; ETFs use stock history. |
| Forex | Pair history and pip/margin semantics depend on available data. |
| Futures | Continuous/back-adjusted product history differs from specific contract-month prices; review roll/expiry rules. |
| Options | Synthetic/proxy marks from underlying history when chains are unavailable; not historical option-chain replay. |
| Intervals | Stored 1-, 5-, 15-, 30-, 60-minute and daily bars where available; indicator warm-up constrains usable history. |
| Execution | Modeled validation, fills, fees and final liquidation; not broker/order-book replay. |
Check the first trades against the rules, sample size, losing periods and warnings. A short intraday period or annualized return is insufficient evidence of robustness. Inspect reported dates rather than assuming universal seven-year coverage or an arbitrary date-range selector. Read the modeled-options guide, then observe a forward virtual portfolio.
Reproduce different rule families
Public snapshots checked October 14, 2026. Every row links the exact saved definition and report. These are different demonstrations, not a controlled performance comparison or recommended parameters; dates, warm-up, instruments, fills and sample sizes differ.
| Actual public workflow | Reported period | Matched closed records | Reproduction |
|---|---|---|---|
|
MACD CrossOver
AAPL: 15-minute MACD(12,26) above signal(9), with last price above upper Bollinger(20,2). |
2026-09-03 to 2026-10-09 | 5 | View strategy |
|
Bollinger Squeeze and Breakout
AAPL: last price above 15-minute upper Bollinger(20,2) and SMA(50). The saved title says squeeze, but inspect the conditions; it does not measure bandwidth contraction. |
2026-09-03 to 2026-10-09 | 6 | View strategy |
|
Crypto Triple EMA Daily
BTC/ETH: daily EMA(8) > EMA(20) > EMA(50), 35% equity sizing and a separate EMA exit. |
2020-12-31 to 2026-10-08 | 71 | View strategy |
|
Futures 15m MNQ Mean Reversion
MNQ: 15-minute RSI(7), tick-native protection, one contract and expiry controls. |
2026-09-10 to 2026-10-02 | 122 | View strategy |
|
Python MES Opening Range Breakout
MES Python: one-minute events with fifteen-minute context and an opening-range rule; inspect the full source for session/range construction. |
2026-09-10 to 2026-10-12 | 0 | Full rule/source |
|
Python MCL VWAP Mean Reversion
MCL Python: five-minute events, session VWAP and bounded volatility, one-contract and notice-window controls. |
2026-09-11 to 2026-10-12 | 0 | Full rule/source |
After inspecting the complete definition, Customize a private copy, check every market-specific input and run a fresh test. Use individual trades to confirm the condition and exits. Do not attribute a result to MACD, RSI, VWAP or a moving average alone when the definition includes additional guards and risk rules.
Define what a SPY backtest should test
For SPY shares, use the stock/ETF path and select SPY in a private definition; preserve the interval, sizing and exits, then inspect available history and individual fills. For SPY options, contract selection and modeled option prices add different assumptions. The complete public SPY iron-condor source and dated report give a reproducible options example. Neither is a buy-and-hold total-return calculator, historical option-chain replay or proof of a SPY LEAPS strategy.