Guide
How to validate a trading strategy
Last reviewed: 15 September 2026·Tradelyze
To validate a trading strategy, treat a good backtest as a reason to check more, not a reason to trade. Confirm the backtest can be reproduced, has enough trades and a survivable drawdown, and holds on data it was not tuned on. Then stress the trade order, check your prop firm's rules and forward test before risking money.
This page gives the checks in order; for a quick list of warning signs, see Is your TradingView backtest too good to be true?
In plain English
A backtest shows how a set of trading rules would have done on past prices. Validating it means trying to prove that result wrong before your money, or a challenge fee, finds out for you. Work through eight checks in order. Each one can stop you, and the cheap ones come first. Passing them all guarantees nothing, but failing one is a clear reason to stop.
New to this? Start with What is backtesting?
What are the eight checks, in order?
Validating a trading strategy means testing its backtest against each way the result could be wrong. A backtest is a historical simulation of how trading rules would have performed. The eight checks below take the usual weak points in order, and any one of them can end the process:
- Reproduce the backtest: a second run of the same rules on the same data takes the same trades.
- Count the trades: there are enough closed trades that a few lucky ones cannot explain the result.
- Size up the drawdown: the deepest fall in the account is one you, or your prop firm account, could survive.
- Count the settings tried: you know how many combinations of inputs were tested before this one was picked.
- Test on unseen data: the settings still work on prices they were not tuned on.
- Reshuffle the trade order: a less lucky order of the same trades would not have broken your loss limit.
- Check the firm's rules: the worst day and the deepest dip stay inside the challenge's limits.
- Forward test: the frozen strategy keeps working on prices that did not exist when it was built.
The cheap checks come first. Steps 2 and 3 need nothing but the backtest report you already have. Steps 5, 6 and 8 need more data, software or months of time, so a strategy that fails early costs little to drop.
Step 1: Can the backtest be reproduced?
A reproducible backtest is one where a second run of the same rules, on the same price data and settings, takes the same trades. Reproduce a backtest before judging it, because every later check inherits whatever the first run got wrong.
To check, export the strategy's trade list and the price data it ran on. Price data here means OHLCV: the open, high, low, close and volume of every bar. Run the rules again, ideally in a second backtester. Then compare the two trade lists one trade at a time: entry time, direction, entry price and exit. Exporting TradingView trades and price data shows how to get both files.
When trades differ, look for four common causes. The timezone may differ, or settings changed in TradingView were never written into the script's defaults. The date range may differ, or the two tools may assume different paths for price inside each bar. Is TradingView backtesting accurate? explains each cause. A mismatch means the report describes a strategy you did not test, so fix it before moving to step 2.
Step 2: Does the backtest have enough trades?
A backtest needs enough closed trades that a handful of lucky or unlucky ones cannot explain the result. Fewer than about 30 closed trades supports almost no conclusion, and about 100 or more, spread across different kinds of market, is a sturdier base. Neither figure comes from a study: 30 is a general statistics rule of thumb with no trading-specific primary source, and 100 is a trading convention with no primary source.
As constructed arithmetic, a strategy with 9 wins in 15 trades shows a 60% win rate. If two of those wins had been losses, it would show about 47%. Win rate, the share of closed trades that made money, means little on its own, so check expectancy too. Expectancy is the average profit or loss per trade:
As constructed arithmetic, a strategy that wins 90% of the time with $100 wins and $1,000 losses loses $10 per trade: (0.9 × $100) − (0.1 × $1,000) = −$10. More detail is in how many trades a backtest needs and win rate and expectancy.
Step 3: Could you survive the drawdown?
Maximum drawdown is the largest fall in account value from a peak to a later low, usually shown as a percentage of that peak. Compare the maximum drawdown with what you could actually sit through, because a drawdown is harder to climb out of than it looks. By simple arithmetic, the gain needed to get back to the peak is the drawdown divided by one minus the drawdown:
So a 20% drawdown needs a 25% gain to recover, and a 50% drawdown needs a 100% gain.
For a prop firm account, the limit is set for you. A total drawdown limit closes the account when losses reach a set amount. A trailing drawdown limit moves that floor up as the account reaches new highs. Giving back profit can then fail you while the account is barely down from where it started. Where the floor never stops rising, it can fail you while the account is still in profit. A rule checked during the day is broken by the deepest dip inside a day, which a drawdown measured only on closing prices never records.
The backtest's drawdown is also only one path. Risk of ruin is the chance that a strategy hits a loss limit it cannot recover from. See maximum drawdown, trailing drawdown and risk of ruin.
Step 4: How many settings were tried before this one?
Before trusting a backtest, count how many combinations of settings were tried to find it. A setting, or input, is a number the rules depend on, such as the length of a moving average. A trial is one backtest of one complete combination. As constructed arithmetic, three inputs tested at 10 values each make 1,000 combinations.
The count matters because of overfitting: tuning rules to the random noise in one stretch of history, so the result will not repeat. Bailey, Borwein, López de Prado and Zhu (2014) show that impressive backtest results are easy to reach after trying a fairly small number of configurations. They also show that the more configurations are tried, the more likely the winning backtest is overfit.
Count every attempt, not just the final optimizer run. That includes settings you changed by hand in TradingView and strategies you tried and dropped. A result picked from 1,000 tries needs far stronger evidence than the same result picked from 5. See strategy optimization and why the number of trials matters more than the number of inputs.
Step 5: Does the strategy hold up on data it was not tuned on?
In-sample data is the stretch of history the settings were tuned on; out-of-sample data is history kept out of tuning. A strategy that works only in-sample was fitted to that stretch, so this step asks whether the edge survives on prices the tuning never saw.
The simplest version holds back the most recent part of your data. Tune the settings on the rest, then run the frozen settings on the held-back part once. As a constructed example, tune on 2022 and 2023, then test once on 2024. Walk-forward analysis repeats that tune-then-test cycle across several windows of history. Walk-forward efficiency measures how much of the tuned performance survived in the test windows.
Two rules keep the test honest. First, test once. If you change the strategy after seeing the out-of-sample result and test again, that data has shaped the design, so it is no longer unseen. Second, expect out-of-sample results to be worse than in-sample ones, because the best of many trials on seen data is flattered by luck. See in-sample vs out-of-sample, walk-forward analysis and walk-forward efficiency.
Step 6: How bad could a different order of the same trades get?
The order a backtest's trades happened in is only one of many possible orders. A less lucky order of the same trades can produce a deeper drawdown. Checking this is a stress test: a test that makes conditions deliberately worse to see what breaks. Monte Carlo simulation does it by rebuilding the trade list many times at random, reshuffling or resampling the trades, and recording each rebuild's drawdown.
Read the high percentiles, not the average. A 95th percentile drawdown is the depth that 95% of the rebuilds stayed within, so 1 rebuild in 20 went deeper. As a constructed example, a backtest with a $3,000 maximum drawdown might show a 95th percentile drawdown of $4,800. Compare the deeper figure with your loss limit, not the lucky one.
Monte Carlo simulation does not detect overfitting: trades from an overfit strategy go in, and an optimistic answer comes out. A robustness score combines several stress tests into one 0–100 number, so read each test's own result before the total. See Monte Carlo simulation and robustness score.
Step 7: Does the strategy survive the prop firm rules you will trade under?
A prop firm challenge is a paid evaluation in which you must reach a profit target without breaking the firm's loss rules. Each of those rules is broken by a specific number in your backtest, and it is usually not the number the report leads with.
| Prop firm rule | Backtest number to check | Why the headline number misses it |
|---|---|---|
| Daily loss limit: the most the account may lose in one day | The worst single day in the trade list | Maximum drawdown can span weeks, so one violent day can break the limit while the total drawdown looks modest. |
| Total or trailing drawdown limit | The deepest drawdown measured during the day, not only at the close | A drawdown measured close to close never records a dip inside a session. |
| Consistency rule: a cap on how much of the profit one day may provide | The largest winning day divided by total net profit | Win rate and profit factor say nothing about how concentrated the profit is. |
Rules differ between firms and change over time, so read the current rules on the firm's own site before paying. If a drawdown rule fails, test a smaller position size before rewriting the strategy. Suppose the strategy trades a fixed number of contracts, with commission and slippage charged per contract. Then trading 1 contract instead of 2 halves every trade's dollar result, including the worst day. See prop firm rules and backtest metrics, daily loss limit and position sizing for prop firm challenges.
Step 8: How long should you forward test or paper trade?
Forward testing runs the frozen strategy on new prices as they arrive and records its signals. Paper trading goes further and places simulated orders on live prices, usually in a demo account. Both add evidence no backtest can, because the prices did not exist when the strategy was built.
No published source we could verify sets a minimum length for a forward test, so any figure in weeks or months is someone's opinion. Count trades, not calendar time, using the step 2 conventions, which have no primary source either. As constructed arithmetic, a strategy that trades 10 times a month needs about 10 months to reach 100 forward trades. One that trades 5 times a day gets there in about 20 trading days.
Decide before starting how many trades you will wait for and what result would make you stop, so the goalposts cannot move. Make sure the test period includes the kind of market the strategy is weakest in. Backtest vs live trading explains why live results usually fall short of a backtest.
The decision to trade the strategy, with real money or a paid challenge, belongs after step 8. Make it against the stopping rule you wrote down, not against how the last few trades felt. If the backtest went through Tradelyze, work through the pre-trade checklist first. It lists where each check sits on the report and what counts as a red flag.
What does the checklist look like on one backtest?
The table below takes one strategy through all eight checks. It is a constructed illustration, not measured data: an intraday futures strategy backtested over 14 months on a $50,000 account, trading 2 contracts. The trader wants to take a prop firm challenge with a $2,000 trailing drawdown limit. That limit is invented for this example; it is not any firm's rule.
| Step | What the backtest shows | Result |
|---|---|---|
| 1. Reproduce | A second run matches 134 of 140 trades. The 6 that differ trace to a wrong timezone setting; after correcting it, all 140 match. | Pass, after the fix |
| 2. Trades | 140 closed trades: 62 wins averaging $420 and 78 losses averaging $210. Expectancy is (62 ÷ 140 × $420) − (78 ÷ 140 × $210) = $186 − $117 = $69 per trade. | Pass, by conventions that have no primary source |
| 3. Drawdown | Maximum drawdown of $3,000, measured during the day. | Fail at 2 contracts: deeper than the $2,000 limit |
| 4. Settings tried | An optimizer tested 3 inputs at 12 values each: 1,728 combinations. | Warning: the best of 1,728 is likely flattered by luck |
| 5. Unseen data | Tuned on the first 10 months (104 trades, $8,900 profit), then tested once on the last 4 months: 36 trades, $760 profit. That is about $86 per trade in-sample against about $21 out-of-sample. | Warning: most of the edge disappeared |
| 6. Trade order | The Monte Carlo 95th percentile drawdown is $4,800 at 2 contracts, or $2,400 at 1 contract. | Fail: still deeper than the $2,000 limit at 1 contract |
| 7. Firm's rules | At 1 contract, the backtest's own drawdown is $1,500, inside the limit. | Borderline: survives the actual trade order but not a less lucky one |
| 8. Forward test | At 10 trades a month, 100 forward trades would take about 10 months. | Not started: not worth starting until steps 5 to 7 improve |
The 1-contract figures assume the position is cut from a fixed 2 contracts to 1. Commission and slippage are charged per contract, so every dollar figure halves. The verdict: the backtest is reproducible and has enough trades, but its edge weakened sharply on unseen data. A less lucky trade order also breaks the limit, even at 1 contract. Paying for the challenge on this evidence would mean paying to find out whether 14 months of luck repeats. The next move is covered in what to do when a strategy fails validation.
What should you do if a step fails?
A failed step is information about the strategy, and the right response depends on which step failed. Decide what you will do before you see a result. The tempting move, adjusting settings until the step passes, is itself another trial.
- Step 1 fails: fix the data and settings, not the strategy. A mismatch usually comes from the timezone, the script's defaults or the date range.
- Step 2 fails: test the same rules over more history. Loosening the entry rules to create more trades changes the strategy, which then needs every check again.
- Step 3 or 7 fails: test a smaller position size before rewriting the rules. A loss limit stays fixed while dollar losses shrink with size.
- Step 4, 5 or 6 fails: simplify, with fewer inputs and narrower searches, or drop the idea. Re-tuning until the step passes turns unseen data into seen data and adds to the trial count.
The trap to avoid
Every re-run after seeing a result spends evidence you cannot get back. A strategy re-tuned ten times until it passes has, in effect, been tried ten more times. The parameters versus trials section explains why that raises the bar. Each failing result is covered in depth in what to do when a strategy fails validation.
Which steps does Tradelyze automate, and which remain yours?
Tradelyze is a web app, in beta, that re-runs an uploaded TradingView Pine Script strategy and tests the result in five stages: Baseline Matching, Optimizing, Walkforward Analysis, Robustness Scoring and Prop Firm Evaluation. Pine Script is TradingView's language for writing strategies. Tradelyze needs three files from you: the script, the trade list exported from TradingView and OHLCV price data. Tradelyze covers parts of steps 1 to 7 and none of step 8.
| Step | What Tradelyze does | What stays with you | Source |
|---|---|---|---|
| 1. Reproduce | Baseline Matching re-runs your script at its default settings and compares the trades with your TradingView trade list. The result is shown as Match Rate on the Conversion Result card. A submission without the trade list is refused. | Exporting the right files, and writing any settings you changed in TradingView into the script's defaults. | Tradelyze implementation |
| 2. Trades | Shows Trade Count. The permutation test needs at least 20 trades and the deflated Sharpe ratio check at least 5; below those counts the checks earn no points. | Deciding whether the trade count is enough. | Tradelyze implementation for 20 and 5. No primary source for a general minimum. |
| 3. Drawdown | Shows Max Drawdown. The robustness card's Monte Carlo row shows MC Max DD Real→P95: the real drawdown next to the 95th percentile drawdown. | Deciding what drawdown you can live with. | Tradelyze implementation |
| 4. Settings tried | Optimizing runs at least 60 trials when the trial budget is automatic. Its search, called NSGA-II, breeds new settings from the best previous ones. It looks for more profit and a higher Sharpe ratio with less drawdown. The deflated Sharpe ratio and permutation test correct for the distinct settings this search tried. | Counting tuning done before upload: Tradelyze cannot see settings you tried in TradingView or strategies you dropped. | Tradelyze implementation |
| 5. Unseen data | Walkforward Analysis tunes on part of each window and tests on the rest. By default it uses 2 rolling windows, each tuned on 70% of its bars and tested on 30%. PASS needs walk-forward efficiency above 0.5, more than 60% of test windows profitable, at least one usable window and no more than half excluded. | Judging a verdict that one of two windows can decide. A re-optimized run judges the tuning process, not the exact Recommended Parameters. | Tradelyze implementation. The 0.5 and 60% lines are Tradelyze's choices, not published standards. |
| 6. Trade order | Robustness Scoring rebuilds the trade list 1,000 times by default. Its Monte Carlo check passes when Ruin Probability, the share of rebuilds whose drawdown broke the limit being tested, is below 20%. Four other checks share the 0–100 score. | Reading each check instead of the total. | Tradelyze implementation. The 20% line is Tradelyze's choice, not a published standard. |
| 7. Firm's rules | Prop Firm Evaluation checks daily drawdown, total drawdown (static, trailing or end-of-day), profit target, minimum trading days, consistency and minimum trades. It then marks each firm Qualifies or Not Feasible. | Time-limit, news-trading and weekend-holding rules, which are not evaluated, and confirming presets against each firm's current rules. | Tradelyze implementation |
| 8. Forward test | Nothing. Tradelyze places no trades and does not forward test or paper trade. | All of it, on your charting platform or with your broker. | Tradelyze Disclaimer |
Tradelyze does not give financial advice and does not guarantee you will pass a prop firm challenge; every result is hypothetical. Walkforward Analysis and Robustness Scoring can be disabled by configuration. Both are also skipped when the optimizer finds no winning settings, so a report may lack those cards. Each card is explained in How Tradelyze validates a strategy.
When a Tradelyze card comes back weak, what to do when a strategy fails validation has a section for each case:
- A low Match Rate on the Conversion Result card (step 1).
- A walk-forward FAIL or NO VERDICT (step 5).
- A robustness check reading NOT RUN, or a FRAGILE verdict (step 6).
- A firm card reading Not Feasible (step 7).
Where this appears in Tradelyze
In Tradelyze, steps 1 to 7 of this checklist map onto the five stages of a run, from Baseline Matching to Prop Firm Evaluation. To judge the whole report, not one tile, use the pre-trade checklist.
Tradelyze re-runs an uploaded TradingView Pine Script strategy on your price data and compares its trades with your exported trade list. It then runs parameter optimization, walk-forward analysis, a five-check robustness score and prop-firm rule checks. It does not place trades, give financial advice or guarantee a challenge pass, and it is in beta.
Already a user? Open your strategies.
This checklist puts the 18-step learning path together. Browse every page in the Learn hub, or see the Learn FAQ.
Frequently asked questions about validating a trading strategy
How do I know if my trading strategy works?
You cannot know for certain, but you can find out whether its backtest has been shown to be wrong. Check that the backtest reproduces, has enough trades, a drawdown you can survive and a known number of settings tried. Then test it on data it was not tuned on, reshuffle its trades, check your prop firm's rules and forward test it on new prices.
What does it mean to validate a trading strategy?
Validating a trading strategy means trying to prove its backtest wrong before risking money on it. A backtest shows how rules would have traded on past prices. Validation checks whether that result reproduces, rests on enough trades, survives a worse trade order and holds on data the settings were not tuned on. A strategy that passes has survived those tests; it has not proved it will profit.
How can I tell if my backtest is reliable?
Start by reproducing the backtest: run the same rules on the same price data and settings a second time and compare the two trade lists one trade at a time. If they match, count the closed trades; fewer than about 30, a general statistics rule of thumb with no trading-specific primary source, supports almost no conclusion. Then test the settings on data they were not tuned on.
How do I stress test a trading strategy?
Stress testing makes conditions deliberately worse to see what breaks. Monte Carlo simulation rebuilds the trade list in random orders to find a deeper plausible drawdown. Other stress tests nudge each setting slightly to see whether results collapse, or run the strategy on data it was not tuned on. Read the 95th percentile drawdown rather than the average, and compare it with your loss limit.
In what order should I validate a trading strategy?
Run the cheap checks first, because any step can end the process. Reproduce the backtest, count the trades and size up the drawdown using files you already have. Then count the settings tried, test on unseen data and reshuffle the trade order. Check the prop firm rules you will trade under, and forward test on new prices last, because forward testing takes the longest.
Can a strategy pass every validation step and still lose money?
Yes. Every step before forward testing uses historical prices, and markets change. Live trading also adds costs a backtest only simulates, such as slippage, the gap between the price a rule asked for and the price an order actually got. Passing every check means the strategy has not yet been shown to be wrong; it does not show that the strategy will make money.
Is it a problem to re-run the checks until a strategy passes?
Yes. Every change made after seeing a result is another trial. Bailey, Borwein, López de Prado and Zhu showed in 2014 that the more configurations are tried, the more likely the winning backtest is overfit. Re-testing on the same held-back data after each change also turns it into data the design has already seen. Decide what counts as a pass before you look.
Which validation step matters most for a prop firm challenge?
Checking the firm's rules decides a prop firm challenge most directly, because the firm fails you on its loss rules, not on your total profit. Compare the worst single day with the daily loss limit, and the deepest drawdown during a day with the total or trailing drawdown limit. Compare the Monte Carlo 95th percentile drawdown with that limit too, then confirm the firm's current rules on its own site.
What does Tradelyze check, and what does it leave to me?
Tradelyze re-runs your TradingView Pine Script strategy, compares its trades with your export, searches for better settings, runs walk-forward analysis and a five-check robustness score, and checks prop firm rules. It leaves you to count tuning done before upload, confirm each firm's current rules, check time-limit, news and weekend rules it does not evaluate, and forward test. Tradelyze is in beta and places no trades.
Does Tradelyze count the settings I tried in TradingView before uploading?
No. Tradelyze receives your script, trade list and price data, so it cannot see settings you tried by hand in TradingView or strategies you abandoned. Its deflated Sharpe ratio and permutation test correct only for the distinct settings Tradelyze's own optimizer tried. If you tuned heavily before uploading, treat every Tradelyze result as more optimistic than those checks suggest.
Does failing one validation step mean I should abandon the strategy?
Not always; it depends on the step. A failed reproduction usually points to a data or settings problem, and a drawdown or prop firm failure may be fixed by trading a smaller size. Failing on unseen data or a reshuffled trade order is more serious, because re-tuning until it passes adds trials and uses up the unseen data. What to do when a strategy fails validation covers each case.
What is the difference between optimizing and validating a strategy?
Optimizing searches for the settings that performed best on past data; validating tries to show that result is wrong. The two pull in opposite directions. Every extra optimization trial makes the best result look better, whether or not the strategy has an edge, so validation must demand stronger evidence the more optimization was done. Keep the data used for validation out of the optimization.
Sources
- David H. Bailey, Jonathan M. Borwein, Marcos López de Prado and Qiji Jim Zhu, Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance, Notices of the American Mathematical Society 61(5), May 2014, DOI 10.1090/noti1105. Basis for step 4: high backtest performance is easy to reach after trying relatively few configurations, and the chance that a backtest is overfit rises with the number tried. The detailed treatment is in overfitting and sample size.
- Trade-count conventions of about 30 and about 100 closed trades (steps 2 and 8): no primary source. Thirty is a general statistics rule of thumb and 100 a trading convention, as set out in how many trades a backtest needs.
- Forward-test length (step 8): no published minimum could be verified, as recorded in how long to forward test before trading live.
- Which backtest number predicts which prop firm rule (step 7): which backtest statistic predicts which prop rule. Firm rules change; check each firm's current terms.
- Recovery gain, expectancy, combination counts and every example on this page: constructed arithmetic, not measured data.
- Tradelyze implementation, reviewed 15 September 2026: the five stage names, and that Walkforward Analysis and Robustness Scoring can be disabled by configuration or skipped; the refusal of a submission without a trade list; the Trade Count, Max Drawdown, MC Max DD Real→P95, Ruin Probability, Qualifies and Not Feasible labels; the 20-trade permutation test and 5-trade deflated Sharpe minimums; multiple-testing corrections counted over the distinct settings the optimizer tried; the automatic budget of at least 60 optimization trials; walk-forward defaults of 2 rolling windows tuned on 70% of each window; the four walk-forward PASS conditions; 1,000 Monte Carlo simulations by default and the 20% Ruin Probability line; and the prop firm rule types evaluated, which exclude time-limit, news and weekend rules.
- Tradelyze, Disclaimer, reviewed 15 September 2026: Tradelyze does not facilitate actual trading, hold client funds or act as a broker or dealer; it is not registered with SEBI as an investment advisor or research analyst; it does not guarantee you will pass a prop firm challenge; results are hypothetical; it is beta software.