Guide
How Tradelyze validates a Pine Script strategy
Last reviewed: 26 September 2026·Tradelyze
Tradelyze checks a TradingView Pine Script strategy in five stages: it re-runs the backtest to confirm the trades match, searches for better settings, checks whether the edge holds up across periods of your history, stress-tests the result and grades it against prop firm rules. You upload the script, its exported trade list and price data. Tradelyze places no trades and guarantees no result.
Before you read the cards
Each card in a Tradelyze report answers a different question, so read them one at a time instead of trusting a single score. Every card has its own explainer:
- Match Rate (Backtest vs TradingView card): Match Rate, TV Only and BT Only explained
- Best Metrics: win rate and expectancy, profit factor, Sharpe ratio and maximum drawdown
- Top Trials: reading the Top Trials table
- Walk-forward card: walk-forward efficiency
- Robustness card: robustness score
- Prop firm cards: prop firm rules and backtest metrics
New to this? Start with exporting TradingView trades and price data.
What do I need to upload?
A Tradelyze run needs three files from you: the Pine Script strategy, the trade list TradingView produced when it tested that strategy, and the price data the strategy ran on. The trade list is required. Tradelyze refuses a submission without it, because Baseline Matching checks Tradelyze's own re-run against that list.
- Pine Script file. The strategy script itself. Tradelyze runs it with the script's own default settings, so if you changed Inputs or Properties in TradingView before exporting, write those values into the script's defaults first.
- Trade list CSV. The upload form's instruction is: Strategy Tester → Export report (CSV).
- OHLCV CSV. Price bars, meaning the open, high, low, close and volume of each bar, for the same instrument and timeframe as the strategy. Tradelyze holds no market-data redistribution license, so it cannot download candles for you.
- Extra timeframe CSVs. Needed when the script calls
request.security()orrequest.security_lower_tf()to read a second timeframe.
The upload form accepts CSV files of up to 10 MB each. The form also asks for three timezones, and it never copies one from another. Exchange Timezone is the venue's own calendar, which decides where one trading day ends; daily drawdown, trading days and consistency rules are all counted on it. Chart Timezone is the zone shown in the bottom-right corner of your TradingView chart when you exported the price data; your price data is read in it. Trade List Timezone is the zone the chart showed when you exported the trade list; your trades are converted from it before they are matched. A wrong Chart Timezone or Trade List Timezone can make a faithful re-run look like a broken match.
Step-by-step export instructions and accepted column names are in exporting TradingView trades and OHLCV data.
How long does a run take, and what appears while it runs?
With automatic settings, a Tradelyze run takes tens of minutes or more, not seconds. Every optimization trial is a full backtest, and trials run one after another. The search alone is at least 60 backtests: roughly 23 to 84 minutes, by estimates in Tradelyze's optimizer code. Results fill in stage by stage while you wait.
A Tradelyze run moves through five stages, shown in the app under these names. Walkforward Analysis and Robustness Scoring can be switched off, and both are skipped when the search finds nothing worth validating.
| Stage | What happens | What you read | Explained on |
|---|---|---|---|
| Baseline Matching | Your Pine Script is run as written, at its default settings, on a Pine Script backtesting engine, and its trades are compared, one at a time, with your TradingView trade list. | Backtest vs TradingView card: Match Rate, Matched, TV Only, BT Only | TradingView backtest accuracy |
| Optimizing | Many trials, each a full backtest with different settings, search for more profit, a higher Sharpe ratio and a smaller drawdown. | Best Metrics, Recommended Parameters, Parameter Search Space, Top Trials | Strategy optimization |
| Walkforward Analysis | By default, the chosen settings are scored period by period across one run of your history. For a strategy that does not qualify, the search is repeated on one stretch of history and scored on the stretch that follows. | Walk-forward card: the method, WF Efficiency or Retention Ratio, and a Consistent, Not Consistent, Confirmed, Not Confirmed, Inconclusive or NO VERDICT badge | Walk-forward efficiency |
| Robustness Scoring | Four scored stress tests of the chosen result, plus a minimum backtest length check shown for information. | Robustness card: score, grade, verdict, how many of the 4 scored checks passed, and one row per check | Robustness score |
| Prop Firm Evaluation | The results are checked against each selected firm's rules. | One card per firm: Qualifies or Not Feasible, and Rule Results | Prop firm rules and backtest metrics |
While a run is in progress, the strategy page shows a Run in progress heading and the stage list, and results grow underneath. The note under the stage list reads: "Each stage appears below as it finishes. Prop firm verdicts and robustness scores are held back until the run is complete, because they are graded on evidence the later stages are still producing."
So the Backtest vs TradingView card, the search results and the walk-forward card can appear while the run is still working. The prop firm cards and robustness cards arrive together at the end. Until then, early results carry the note "From the stages finished so far. Results for next stages will be added as they complete."
| Per-backtest figure | Seconds | 60 trials | Source |
|---|---|---|---|
| Planning figure | 23 | ≈ 23 min | Tradelyze optimizer settings |
| Fastest measured backtest | 51 | ≈ 51 min | Tradelyze optimizer code: six measured backtests |
| Slowest measured backtest | 84 | ≈ 84 min | Tradelyze optimizer code: six measured backtests |
The arithmetic behind the estimate: 60 trials × 23 seconds is 1,380 seconds, about 23 minutes, and 60 × 84 seconds is about 84 minutes. Tradelyze's optimizer settings plan on about 23 seconds per backtest. Its code also records a slower 51 to 84 seconds, measured on six backtests of a 2,000-bar test file. Neither figure is an average of real customer runs.
Tradelyze's automatic Optimization trials budget depends on how many inputs the optimizer searches. It is 60 trials for 1 to 5 inputs, 90 for 6 to 15, 120 for 16 to 30 and 150 above that. A re-tuned walk-forward repeats the search in every window, Parameter Sensitivity runs its own backtests, and the held-out test adds one backtest for each distinct set of recommended settings, so a whole run takes longer than the search. The default walk-forward method, One run, split by period, adds no backtests. Setting Optimization trials to a custom number from 20 to 300 changes that budget. Below 50 trials, Tradelyze's automatic Parameter Sensitivity budget skips that check, which caps the robustness verdict at ACCEPTABLE.
After the run's first backtest finishes, a badge beside Run in progress counts down the time left, estimated from how long that first backtest took. If the run outlasts its estimate, the badge reads Taking longer than expected while the run keeps working.
A separate banner covers a new submission while Tradelyze matches it. That banner notes: "We'll email you when the run finishes — you don't need to keep this page open." For each prop firm, that email gives the robustness grade, the verdict and how many of the 4 scored checks passed, and says when the score was reduced. If the strategy still has no matching result 5 hours after you submitted it, the banner changes to Processing is taking longer than expected. It says the processing service may be temporarily unavailable and offers Cancel & Delete, which deletes the strategy and cannot be undone.
What happens at Baseline Matching?
Baseline Matching is the first stage of every run: Tradelyze runs your Pine Script as written, at its default settings and on the price data you uploaded, on a Pine Script backtesting engine, with no conversion to another language. It then compares the resulting trades with your TradingView trade list, one trade at a time. The match matters because every later number describes this re-run. If the re-run does not take the same trades as your TradingView test, the report is about a different strategy.
The result appears on the card headed Backtest vs TradingView. Match Rate is the headline percentage. Matched counts trades found in both lists. TV Only counts trades found only in your TradingView export. BT Only counts trades found only in Tradelyze's backtest, which the card abbreviates to BT.
Only trades that open and close inside your price data are compared. A re-run trade taken before the first trade in your export counts as BT Only, so export the trade list over the same period as the price data. A re-run trade that opens after the last trade in your export has closed is left out, not counted as BT Only. BT Trades counts every trade the re-run took, so Matched and BT Only can add up to less than it. TV Trades counts only the exported trades that were compared. When Match Rate reaches 100%, the card shows the line "Every backtest trade matched TradingView" in place of the counts. That line covers the trades compared, not the ones left out. Older results can also show a Trade Details table and a second, smaller figure marked "before warmup alignment" under Match Rate. Current runs set no trades aside for warmup, so that second figure no longer appears on them.
Tradelyze colors Match Rate green at 90% or more, amber at 80% or more and red below 80%. Those bands are an app display choice with no primary source. When too few trades match, the run halts on a card headed Optimization stopped, and its message names the threshold the run halted against.
Review comparison opens the evidence. Continue anyway optimizes the re-run as it is, and the card warns: "Continuing optimizes this backtest of your strategy as-is. Every number the run reports will describe that build, not the one your TradingView export came from." Continuing uses no further credit.
The usual causes of a low match are a wrong Chart Timezone or Trade List Timezone, script defaults that differ from what you ran in TradingView, and price data covering a different date range or timeframe. What each figure means, and how to raise a low match, is covered in Match Rate, TV Only and BT Only explained.
What are the Backtest Metrics on the Backtest vs TradingView card?
The Backtest Metrics on the Backtest vs TradingView card are Final Value, PnL %, Win Rate, Max Drawdown, Sharpe Ratio and Profit Factor. Tradelyze takes them from the Baseline Matching re-run, which uses your script's default settings, so they describe the strategy as you uploaded it. They are the only performance figures in the report that no optimization trial produced; every other one comes from settings the optimizer chose. Sharpe Ratio here is Tradelyze's own calculation and need not equal the figure TradingView reports, as explained in which Sharpe ratio Tradelyze shows. Final Value can read "--" on some older results, which did not carry that figure.
A constructed example, not measured data: a Backtest vs TradingView card shows a Match Rate of 97%, PnL % of 12% and Profit Factor of 1.3. The re-run reproduced almost all of your TradingView trades, and at its default settings the strategy made modest money. A far better Profit tile in Best Metrics after optimization is a tuned figure, so treat the Backtest Metrics as the untuned starting point.
How does Tradelyze search for better settings?
Tradelyze runs a search that tries many settings, looking for more profit and Sharpe ratio with less drawdown (details: strategy optimization). Each attempt is a trial: one full backtest of your strategy with one set of input settings. The first 10 trials are chosen at random. After that, the search builds a probability model of which settings did well and which did poorly, and proposes new settings that are more likely to do well, so it spends its time near settings that already did well. The method is the Tree-structured Parzen Estimator (TPE), a form of Bayesian optimization, and Tradelyze runs it through the open-source Optuna library. TPE replaced NSGA-II, a genetic algorithm, on 24 September 2026, after a comparison by Tradelyze in which TPE reached better settings in 12 of 15 paired runs. That comparison is Tradelyze's own internal measurement: no primary source, and not independently verified.
The Sharpe ratio is average return divided by how much returns swing around, so a higher value means steadier returns for the profit made. Maximum drawdown is the largest fall from a peak in account value. Because the three goals pull against each other, there is rarely one best trial. The search keeps a shortlist of trials that no other trial beats on all three goals at once, known as the Pareto front (details: how the shortlist works).
| Trial | Profit % | Sharpe | Max DD % | On the shortlist? |
|---|---|---|---|---|
| A | 42 | 1.10 | 18 | Yes: no other trial has more profit |
| B | 30 | 1.40 | 9 | Yes: best Sharpe ratio and smallest drawdown |
| C | 28 | 0.90 | 12 | No: trial B beats it on all three |
Tradelyze then picks one winner from the front with a ranking that weights profit and Sharpe ratio by how many trades support them, so a spectacular result built on three trades counts for little. That ranking chooses a winner; it is not a quality score.
The header of the results card shows how many trials ran, with the number of feasible trials in brackets. A feasible trial passed every rule of the rule set used to pick the recommended settings, and trials with fewer than 5 trades are normally not counted.
More trials explore more settings, but they also give luck more chances to produce a winner, which is why the trial count changes how much every other number is worth. See why more trials raise the bar and how many trials to run.
Why are Best Metrics and Recommended Parameters the most optimistic numbers?
By default, Recommended Parameters are chosen on the earlier 75% of your history, the part the search sees. Best Metrics describe those settings over your full history, so they should match what TradingView shows on the full chart, but most of that history is in-sample: data the optimizer could see and fit settings to. Out-of-sample data is data it never saw, and the held-out test reports the held-back part on its own. The best of many trials on seen data is biased upward, because the search keeps whichever settings happened to fit that stretch of prices best, luck included. Treat these numbers as a ceiling, not a forecast.
The Best Metrics tiles are Profit, Sharpe (Bar), Sharpe (Daily), Max Drawdown, Win Rate, Profit Factor, Trade Count, First Trade and TV Comparable From. Recommended Parameters are the same settings the optimizer picked as best: the walk-forward and robustness stages never swap in different values. Those two stages run once, on the search's overall best settings. When a prop firm is recommended different settings, the walk-forward card names that firm in an amber banner, and that firm's robustness card carries a banner saying its checks were run on other settings. The Parameter Search Space table lists each input with the range searched, its default and the best value found.
A constructed example, not measured data: a Profit tile of 40% with a Trade Count of 38 is the best result of a search. It was measured on the same history the settings were fitted to, and only 38 trades support it. Read Trade Count before Profit, then read the Held-out Test card, which scores these settings on data the search did not see. More on reading these figures: how to read in-sample results and best versus recommended parameters.
What do Qualifies and Not Feasible mean?
Each prop firm you select gets its own card. Qualifies means the settings recommended for that firm passed every rule Tradelyze checked; Not Feasible means at least one rule failed. If nothing failed but a rule could not be checked, the card shows no badge. Qualifies is a statement about a backtest on your data, not a prediction that you will pass the challenge.
The Rule Results table has one row per rule, with a Status mark, the Rule, the Actual value your backtest reached, the Limit and a Message. Tradelyze checks maximum daily drawdown, maximum total drawdown, profit target, minimum trading days, consistency and minimum number of trades. Total drawdown can be static, trailing during the day, trailing at the end of each day, or measured on end-of-day balances. Tradelyze does not check evaluation time limits, news-trading restrictions or weekend-holding rules.
A constructed example, not measured data: if a rule set allows a 5% maximum daily drawdown and the backtest's worst day reaches 6.2%, that row fails and the card reads Not Feasible. The first failing row is the one to work on. With a drawdown rule, test a smaller position size before rewriting the strategy, because the limit is fixed while losses grow with size.
The settings each card judged are listed under Parameters Used for Evaluation, and they can differ from firm to firm, because the winner is picked separately for each firm. Tradelyze ships 17 firm presets, and you can add your own custom rules. Presets can fall behind a firm's current terms, so check every limit on the firm's own site. More detail: what Qualifies does and does not cover and how trailing drawdown works.
What does the Top Trials card show?
The Top Trials card lists the highest-ranked optimization trials, normally five, plus the recommended trial if the ranking left it out. The ranking ignores prop firm rules, so a top row can still break them; the Feasible column shows which trials passed every rule. Every column and button, including Verify Trial, is explained in reading the Top Trials table.
What do Confirmed, Consistent, Inconclusive and NO VERDICT mean on the walk-forward card?
The walk-forward card checks whether the edge holds up across periods of your history. Tradelyze uses one of two methods, chosen by the app rather than by you, and a label beside the badge names it. The badge words depend on the method:
- One run, split by period is the default for a strategy that qualifies. It runs the recommended settings once over your history, cuts that run into periods and checks that the periods add up exactly to the whole run; it costs no extra backtests. The badge reads Consistent when the Retention Ratio is above 0.5 and more than 60% of periods made money, and Not Consistent when either one fails. It is not a test on unseen data: the settings were chosen on this same history, so Consistent shows they performed evenly across it, not that they held up on data they never saw.
- Re-tuned each window is used otherwise. Each window re-runs the search on its first part and scores that window's winner on the part that follows. The badge reads Confirmed when WF Efficiency is above 0.5 and more than 60% of test windows made money, and Not Confirmed when either one fails.
Before either is judged, Tradelyze checks that there is enough evidence. If fewer than two windows produced a result, more than half were excluded, a window placed fewer than 5 trades in its test stretch, or a Sharpe ratio could not be measured, the badge reads Inconclusive and the card says which. Inconclusive is not a verdict on the strategy: it means the test could not tell. NO VERDICT means no walk-forward result is available.
Results from before 26 September 2026 can show a third label, Fixed settings across periods, also with Consistent or Not Consistent. That method, parameter stability, was retired on 26 September 2026. It asked the same question as One run, split by period, but its confirming re-run always landed on the first window's tuning stretch, so it never checked a test figure. One run, split by period answers that question with a check that always runs, at no extra cost.
Classic walk-forward analysis tunes the strategy on one stretch of history, the in-sample part, and scores it on the stretch that follows, the out-of-sample part; that is the re-tuned method. By default Tradelyze uses 2 rolling windows, each split 70% and 30%: tuned on the first 70% of its bars and tested on the remaining 30%, or, on a split-by-period run, read as an earlier and a later period. With two windows, both must produce a result before any verdict is given, and both must make money for Confirmed or Consistent.
On a re-tuned run, WF Efficiency measures how much of the tuned performance survived on data the optimizer did not see (details: walk-forward efficiency). It is the average Sharpe ratio on the test windows divided by the average on the tuning windows, both converted to a yearly rate. The card shows those averages as Mean OOS Sharpe (out-of-sample, the test windows) and Mean IS Sharpe (in-sample, the tuning windows). Tradelyze labels WF Efficiency above 0.5 Generalizes well, 0 to 0.5 Likely overfit, and below 0 Inverted — lost out-of-sample. The WF Efficiency tile is blank when the tuning average is zero or negative, because there was no edge to keep. OOS Profit, Windows Profitable and Excluded Windows complete the card. Windows Profitable is a count, such as 1 of 2, with the number the badge needs beneath it: more than 60% of two windows is both. On a split-by-period run, or an older Fixed settings across periods run, the same tiles read Retention Ratio, Mean Earlier Sharpe, Mean Later Sharpe, Later-Stretch Profit and Periods Profitable, and the ratio is labeled Held up in later periods, Weaker in later periods or Inverted — lost in the later periods.
A constructed example of a re-tuned run, not measured data: Mean IS Sharpe of 1.60 and Mean OOS Sharpe of 0.60 give a WF Efficiency of 0.375, labeled Likely overfit. Even if both test windows made money, the badge reads Not Confirmed, because 0.375 is not above 0.5.
The walk-forward stage runs once, on the search's overall best settings. When some prop firms were recommended different settings, an amber banner at the top of the card names those firms. It says the check was run on the search's overall best settings, so for those firms the card describes other settings. When a held-out test ran, it adds that the held-out test on each firm's card uses that firm's own settings.
On a re-tuned run, each window tunes the strategy again from scratch, so Confirmed judges whether re-tuning keeps working over time, not the exact Recommended Parameters. A split-by-period run scores those exact settings, but not on new data. The held-out test is the check of those exact settings on data they were not chosen on. See what the walk-forward badge requires and re-tuned walk-forward versus fixed settings.
What does the held-out test show?
By default, Tradelyze holds back the last 25% of your history from the whole search. The search, the pick for each prop firm, the walk-forward and the robustness checks all see only the earlier 75%. When the run finishes, each firm's Recommended Parameters are run once over your full history, and the trades they opened in the held-back period are the test. It is the one check of the exact settings you are given on data they were not chosen on.
The Held-out Test card reads Confirmed when those settings made money in the held-back period and kept more than half of the Sharpe ratio they showed on the period they were chosen on. Not Confirmed means they lost money there, kept half or less of that Sharpe, or had no positive Sharpe to keep. Inconclusive means fewer than 20 trades were opened in the held-back period, a Sharpe ratio could not be measured or a trade could not be placed in either period, or the run that measures it failed: too little to call either way, and not a verdict on the strategy. Pending means the run is still going, and Not run means nothing was held back, because your data was under 200 bars or the test was switched off. The card compares the two periods side by side and says how much of the edge was kept.
Best Metrics and each firm's Rule Results describe the same full-history run, so they should match what TradingView shows for these settings on the full chart. You can check the test yourself: apply the settings in TradingView and, in the List of Trades, look at the trades opened on or after the date on the card. A trade still open at that date counts on neither side. One held-back period is real evidence, not proof. Re-running until it passes turns it back into data the settings were chosen on.
How do I read the robustness score without being misled?
Read the check count and each check row on the robustness card, not only the score. The robustness score adds four unrelated stress tests into one number out of 100. A fifth row, Min Backtest Length, is shown for information only and earns no points. A failed check cannot hide behind a high total: if any scored check ran and failed, or your uploaded data covers under 30 days (one month) or has no usable dates, the points are multiplied by 0.69. A check refused for too few trades counts as failed. A reduced score is at most 69, so it reads C+ and MARGINAL at best, and a grade of B- or better always means no check failed and your data covers at least 30 days. The score still does not say which check failed, so read each row.
The verdict is ROBUST only when all four scored checks ran and passed, your data covers at least 30 days and the score is at least 80; ACCEPTABLE at 70 or more; MARGINAL at 50 or more; otherwise FRAGILE. The 30 days are counted over your whole upload, from its first bar to its last, even when the held-out test sets the last 25% aside. The Available Years figure on the Min Backtest Length row is different: it is the span the checks ran on, which is shorter when the held-out test runs. A scored check that did not run, could not be resolved or could not be computed is not a failure and does not reduce the score, but it caps the verdict at ACCEPTABLE. The 30-day minimum is a starting value and may rise later.
Tradelyze added the 0.69 factor on 26 September 2026. Before it, a strategy could show an A or A+ grade beside a failed check. A factor rather than a flat cap keeps failing runs in the order their points put them, so a near miss still scores above a clear failure, and 0.69 keeps every failing run below 70, the ACCEPTABLE line.
| Check on the card | Points | Question it answers | Passes in Tradelyze when | Source |
|---|---|---|---|---|
| Monte Carlo | 29 | Would a less lucky mix of the same trades have broken the drawdown limit? | Ruin Probability is below 20%. Tradelyze redraws runs of your real trades with replacement, 1,000 times by default, against the selected firm's drawdown limit, or 10% with none. MC Max DD Real→P95 shows the real drawdown, then the 95th percentile: the depth 95% of redraws stayed within. The card shows Ruin Probability rounded down to one decimal, so a passing ruin never reads 20.0%. The Ruin Check badge in the same box reads Ruin Acceptable or Ruin Too High. With fewer than 3 closed trades there is nothing to redraw: the check is refused, the badge reads Too Few Trades, and it counts as a failed check. | Tradelyze implementation |
| Permutation Test | 29 | Did the trades beat random versions with wins and losses flipped? | Significant: the P-Value, the chance that randomly flipping your trades' wins and losses would do this well, is below 0.05, a bar made stricter the more settings the optimizer tried (details: permutation test). Needs at least 20 trades; with fewer, the test is refused, the badge reads Too Few Trades, and it counts as a failed check. Not Significant means the test ran and missed its bar. Shows NOT RESOLVED when the test ran but could not reach an answer; that is not a failure, and the check is left out of the score. | Tradelyze implementation |
| Parameter Sensitivity | 24 | Do slightly changed settings still work? | Stable. Shows NOT RUN when the optimization ran fewer than 50 trials. | Tradelyze implementation |
| Deflated Sharpe Ratio | 18 | Does the Sharpe ratio survive the number of settings tried? | Significant. Needs at least 5 trades; with fewer, it is refused, the badge reads Too Few Trades, and it counts as a failed check. Shows NOT RESOLVED when the value could not be computed; that is not a failure, and the check is left out of the score. | Tradelyze implementation |
| Min Backtest Length | Not scored | Is there enough history for this Sharpe ratio? | Sufficient, comparing Available Years with Required Years. Shown for information only: it does not change the score, grade or verdict. The same box shows Enough for ROBUST (≥ 30 days) · N days of data, where N is your whole upload: Yes, No, or NOT MEASURED when the data had no usable dates. No or NOT MEASURED means the score was multiplied by 0.69. Results from before 26 September 2026 show this box as it was then, when it was scored, without the Enough for ROBUST row. | Tradelyze implementation |
When a check does not run, the score is worked out over the checks that did, so a score can rest on fewer than four checks. The grade relabels the score as a letter, from A+ at 95 or more down to F below 40. Each firm's card can show a different robustness score, because the Monte Carlo check measures ruin against that firm's drawdown limit: it can pass for one firm and fail for another, so the 0.69 factor can apply on one firm's card and not another's. All the checks analyze the tuned result on the history it was tuned on; none of them uses data the optimizer never saw.
The large number on the card is the score rounded down to a whole number, so it always sits in the same band as the grade and verdict beside it. Under the verdict, the card says how many checks passed, such as 3 of 4 checks passed, adding · 1 not run when a check did not run. When the score was reduced, an amber note on the card says so, with both figures to one decimal, for example: "Score reduced from 88.4 to 61.0 (×0.69) because Monte Carlo failed. A failed check or under a month of data keeps a run at C+ and MARGINAL at best." When the Monte Carlo check was refused, the note says Monte Carlo could not run (too few trades). Show Warnings repeats the reason in a full sentence. When the checks were run on settings other than those recommended for this firm, an amber banner says so: the checks still describe the strategy, but not those exact settings. When a held-out test ran, the banner adds that it does use the recommended settings.
| Check results | Points earned | Card shows | Grade | Verdict | Check line |
|---|---|---|---|---|---|
| Ruin Probability 10%, permutation test Significant, DSR Value 0.97, Parameter Sensitivity NOT RUN | 92.4 | 92 | A | ACCEPTABLE | 3 of 4 checks passed · 1 not run |
| Ruin Probability 20%, so Monte Carlo fails; permutation test Significant, DSR Value 0.97, Parameter Sensitivity Stable at 0% degradation | 88.4 | 61 | C | MARGINAL | 3 of 4 checks passed |
The first card is ACCEPTABLE, not ROBUST, because only three of the four scored checks ran. Its 92 is about 70 of the 76 points those three checks can give, not 92 of 100. The second card earned 88.4 points, but a failed check multiplies them by 0.69, so its score is 61.0: the card shows 61, with the reduction note. See how to read each row of the robustness card and what Ruin Probability measures.
What should I check before trading a strategy or paying a challenge fee?
Check the report in order. Start with whether the re-run is your strategy at all, finish with whether the rules you face are complete and current, then forward test before risking money. No combination of results guarantees a profit or a passed challenge; the checklist only shows where a backtest is weakest.
| Check | Where on the report | Red flag | Source |
|---|---|---|---|
| Is the re-run your strategy? | Backtest vs TradingView card: Match Rate, TV Only, BT Only | A low Match Rate, or a run that went ahead with Continue anyway | Tradelyze implementation; the color bands have no primary source. |
| Are there enough trades? | Best Metrics: Trade Count; Top Trials: Trades | Too few trades to separate skill from luck; Tradelyze's permutation test needs at least 20 | Tradelyze implementation for the 20-trade minimum. No primary source for a universal minimum. |
| Is the headline number in-sample? | Best Metrics, Recommended Parameters | Treating the Profit tile as an expected return | Tradelyze implementation |
| Do these exact settings work on data they were not chosen on? | Held-out Test card: badge, the two periods side by side, edge kept | Not Confirmed, or Inconclusive with only a few held-out trades | Tradelyze implementation |
| Did the edge hold up across periods of history? | Walk-forward card: method label, badge, WF Efficiency or Retention Ratio, Per-Window Results | Not Confirmed, Not Consistent, Inconclusive, a blank or Likely overfit WF Efficiency, or a banner naming your firm | Tradelyze implementation |
| Did every robustness check pass, and which did not? | Robustness card: the check count under the verdict, then each check row | Fewer than 4 of 4 checks passed, a Score reduced note, Ruin Too High, Too Few Trades, Unstable, Not Significant, NOT RUN, NOT RESOLVED, or No or NOT MEASURED beside Enough for ROBUST (≥ 30 days); or a banner saying the checks ran on other settings. Insufficient on the unscored Min Backtest Length row is a warning sign to read too. | Tradelyze implementation |
| Do nearby settings still work? | Parameter Sensitivity row; Parameter Search Space table | Unstable, or a best value sitting at the edge of its searched range | No primary source. |
| Would the settings break a firm rule? | Each firm card: Rule Results | Not Feasible, or an Actual value close to its Limit | Tradelyze implementation; how close is too close has no primary source. |
| Are the firm's rules complete and current? | The firm's own website, outside Tradelyze | Unchecked time limit, news or weekend rules, or a preset that differs from the firm's terms | The firm's current terms |
| Does the strategy work going forward? | Outside Tradelyze: forward or paper testing | Paying a challenge fee straight after a backtest | No primary source. |
Forward testing runs the unchanged strategy on new prices as they arrive, and paper trading does the same with simulated orders. Both add evidence a backtest cannot supply, covered in backtest vs live trading.
When a result comes back weak, the cause is usually one of a few, and the first fix is rarely more tuning. The table below pairs each common weak result in a Tradelyze report with its likely cause, a first thing to try and the tempting move to avoid.
| Result | Likely cause | What to try | What not to do |
|---|---|---|---|
| A low Match Rate on the Backtest vs TradingView card, or a run halted on a card headed Optimization stopped | The re-run is not trading your TradingView strategy: usually a wrong Chart Timezone or Trade List Timezone, script defaults that differ from the Inputs or Properties you ran, or price data covering a different date range or timeframe. | Check Chart Timezone and Trade List Timezone, write your TradingView settings into the script's defaults, match the data range, then re-export both files and resubmit. See why trades do not match. | Do not press Continue anyway and then read the report as a verdict on your TradingView strategy; every number would describe the mismatched re-run. |
| Walk-forward Not Confirmed, Not Consistent or Inconclusive from 2 windows | Too little evidence to judge. With Tradelyze's default of 2 windows, one window can decide the badge. | Add price history, or raise Walk-forward windows (Tradelyze allows 2 to 6), then read the Per-Window Results. More windows on the same history make each window shorter. | Do not trust either verdict while one window decides it, and do not re-tune until the badge reads Confirmed or Consistent. |
| Parameter Sensitivity shows NOT RUN | Fewer than 50 optimization trials ran, for example with Optimization trials set to a custom number below 50. Tradelyze's automatic sensitivity budget skips the check below 50 trials. | Run at least 50 optimization trials. | Do not read a high score as covering the missing check. Any NOT RUN caps the verdict at ACCEPTABLE, and the score is worked out over the checks that ran. |
| Not Feasible because of a drawdown rule | The position size is too large for the firm's limit: losses grow with size while the limit stays fixed. | Reduce the order size in the script's strategy() defaults, re-export the trade list from TradingView and resubmit. See position sizing for prop firm challenges. | Do not loosen a custom rule's limit to make the card read Qualifies; the firm applies its real limit. |
| A best value at the edge of its searched range in the Parameter Search Space table | The best setting may lie outside the range the optimizer was allowed to search. | Widen that input's range, its Min or Max, and run again. | Do not trade the edge value as if it were a tested peak; nothing beyond it was tried. |
Do not keep re-optimizing until a badge reads Confirmed or Consistent. Every extra attempt gives luck another chance to produce a pass that will not repeat (see why the number of attempts matters). Each failing result is covered in more depth in what to do when a strategy fails validation.
What does Tradelyze not do?
Tradelyze, operated by Pick MyTrade Pvt Ltd, analyzes backtests; Tradelyze does not trade, advise or guarantee anything. According to its terms and disclaimer, and to how the app works:
- No live trading. Tradelyze places no orders, holds no client funds and does not act as a broker or dealer.
- No financial advice. Pick MyTrade Pvt Ltd is not registered with SEBI as an investment advisor or research analyst.
- No guarantee. Tradelyze does not guarantee profits or a passed prop firm challenge; its disclaimer notes that a strategy graded A+ can still fail in live markets.
- No real performance. Every result is hypothetical, built from historical data, and does not account for every live factor, such as liquidity, slippage and execution speed.
- No market data. You supply the price data and the trade list, and the results can only be as good as those files.
- No complete rule check. Evaluation time limits, news-trading rules and weekend-holding rules are not evaluated, and firm presets may be out of date.
- One held-out period, not many. The held-out test checks the recommended settings on one stretch of your history that the search never saw. One stretch is real evidence, not proof, and it cannot contain market conditions your data does not.
- No affiliation. Tradelyze is not affiliated with TradingView or any prop firm.
Tradelyze is in beta, and its disclaimer says results produced during the beta may differ from results produced by later versions.
How are credits used?
Credits pay for runs. Each strategy submission costs 1 credit. You choose the prop firms on the submission form, at most 3, and that credit covers the whole run against them: Baseline Matching, the search and every check after it.
Some older strategies stopped after Baseline Matching, before any optimization. Their first optimization is charged 1 credit for each preset prop firm, while your own custom rules are free, and one whose match reached 100% skips that charge. The Run Optimization dialog shows that cost before you confirm: picking two preset firms and one custom rule reads "Cost: 2 credits (1 custom free)", and the button reads "Use 2 Credits & Run". When that first optimization costs nothing, the dialog marks it Free.
Running optimization again on a strategy that has already finished is shown as Free in the Run Optimization dialog; Re-Evaluate costs 1 credit. Re-Evaluate re-runs a finished strategy through the current pipeline. Once a finished strategy has kept its trial results, its page offers Re-Evaluate instead of Run Optimization. The Resubmit button on a Strategy Processing Failed card also costs 1 credit: it retries the failed run with the same files, prop firms and settings, and asks you to confirm first.
Two ways back use no further credit. When a run stops on a card headed Optimization stopped because the backtest could not be run, its Resubmit does not use another credit; if the card names an error in your data or script, the run will stop there again until that is fixed. When a run stops at Baseline Matching, Continue anyway does not use another credit either, and the stop message says so.
This page states no credit price and no signup allowance, because Tradelyze's terms say features, pricing and credit allocations may change during the beta. The current credit price is shown in the app: on the Payments page, Get Credits opens a dialog that states what each credit costs.
Trying Tradelyze
This page maps every card in a Tradelyze report. Tradelyze re-runs an uploaded TradingView Pine Script strategy from your exported trade list and price data, then runs parameter optimization, walk-forward analysis, a four-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.
Stage 1 · step 4 of 18. Next in the learning path: Win rate and expectancy
Frequently asked questions about how Tradelyze works
What is Tradelyze?
Tradelyze is a web app, operated by Pick MyTrade Pvt Ltd in India, for checking a TradingView Pine Script strategy before you trust it. You upload the script, its exported trade list and matching price data. Tradelyze re-runs the backtest, confirms the trades match, searches for better settings, then runs walk-forward analysis, a four-check robustness score and prop-firm rule checks. Tradelyze is in beta.
Does Tradelyze place trades or give financial advice?
No. Tradelyze does not place trades, hold client funds or act as a broker or dealer, and Pick MyTrade Pvt Ltd is not registered with SEBI as an investment advisor or research analyst. Every result is hypothetical, built from historical data you supply. A strong report is evidence about the past, not a forecast, a recommendation or a promise that you will pass a prop firm challenge.
Which files does Tradelyze need?
Tradelyze needs the Pine Script strategy file, the trade list exported from TradingView's Strategy Tester as a CSV, and an OHLCV price file for the same instrument and timeframe. OHLCV means the open, high, low, close and volume of each bar. A script that calls request.security() or request.security_lower_tf() also needs a CSV for each extra timeframe it reads. Each CSV can be up to 10 MB.
Why does Tradelyze need my TradingView trade list?
The trade list is the reference Tradelyze checks its own re-run against, and a submission without one is refused. Baseline Matching compares the two lists trade by trade. If the re-run cannot reproduce your TradingView trades, every later number describes a different strategy from the one you tested, so a close match is the foundation the rest of the report stands on.
Why did my run stop at Baseline Matching?
The run stopped because too few of the re-run's trades matched your TradingView export. Common causes are a wrong Chart Timezone or Trade List Timezone, script defaults that differ from the Inputs or Properties you used in TradingView, and price data covering a different date range or timeframe. Review comparison shows the evidence. Continue anyway optimizes the mismatched build, and every number then describes that build rather than your export.
Which Tradelyze stage finds the settings shown in Best Metrics?
The Optimizing stage finds the settings shown in Best Metrics. It runs many trials, each a full backtest with different settings, looking for more profit, a higher Sharpe ratio and a smaller drawdown at once. The first 10 trials are chosen at random; after that, the search proposes settings that its model of the earlier trials rates likely to do well. Tradelyze picks one winner from the best trade-offs, and Best Metrics shows that winner over your full history, most or all of which it was tuned on. How the search works is explained in strategy optimization.
Are the Best Metrics what I should expect in live trading?
No. Best Metrics come from running the chosen settings over your full history, and most or all of that history is data the optimizer tuned them on, so they are the most optimistic numbers in the report. Recommended Parameters are those same settings. Expect live results to be worse, and judge the strategy on its trade count, the Held-out Test card, the walk-forward card and the individual robustness checks instead.
Does Qualifies mean I will pass the prop firm challenge?
No. Qualifies means the settings recommended for that firm passed every rule Tradelyze checked, on historical data. Tradelyze does not check evaluation time limits, news-trading restrictions or weekend-holding rules, and firm presets can fall out of date. Live fills, costs and your own execution also differ from a backtest, so check the firm's current terms before paying a challenge fee.
What do Confirmed, Consistent, Inconclusive and NO VERDICT mean on the walk-forward card?
The badge depends on the method named beside it, which Tradelyze chooses. One run, split by period, the default for a strategy that qualifies, scores the recommended settings on periods of one continuous run over the history they were chosen on. Consistent means the Retention Ratio was above 0.5 and more than 60% of periods made money, and Not Consistent means either one missed; it is not a test on unseen data. Re-tuned each window re-runs the search in every window and scores that window's winner on the stretch that follows. Confirmed means WF Efficiency was above 0.5 and more than 60% of test windows made money, and Not Confirmed means either one missed. Inconclusive means the evidence was too thin to call it either way: fewer than two windows produced a result, more than half were excluded, a window placed fewer than 5 trades in its test stretch, or a Sharpe ratio could not be measured. That is not a verdict on the strategy, and the card says which. NO VERDICT means no walk-forward result is available. With the default two windows, both must produce a result for any verdict and both must make money for a pass.
Why is my robustness verdict not ROBUST?
ROBUST needs all four scored checks to run and pass, at least 30 days (one month) of data and a score of at least 80. The 30 days are counted over your whole upload, from its first bar to its last, even when the held-out test sets the last part aside, and the Enough for ROBUST row on the card shows that span in days. If any scored check ran and failed, or your data covers under 30 days or its span cannot be measured, the score is multiplied by 0.69, so the best possible result is C+ and MARGINAL. A check refused for too few trades counts as failed and shows Too Few Trades, so a strategy with fewer than 20 trades has its permutation test refused and its score reduced. When a scored check did not run, could not be resolved or could not be computed, the score is not reduced, but the best possible verdict is ACCEPTABLE, however high the score. The Sufficient or Insufficient answer on the Min Backtest Length row is shown for information only and does not change the verdict. Parameter Sensitivity does not run automatically when the optimization ran fewer than 50 trials.
How are credits used on Tradelyze?
Each strategy submission costs 1 credit, and it covers the whole run against the prop firms you choose when you submit. Running optimization again on a strategy that has already finished is shown as Free in the Run Optimization dialog; Re-Evaluate, and Resubmit on a failed run, each cost 1 credit. Continue anyway after a stop at Baseline Matching, and Resubmit after a backtest that could not be run, use no further credit. Some older strategies that stopped before their first optimization are charged 1 credit per preset prop firm for it. Pricing can change during the beta.
How long does a Tradelyze run take?
Tradelyze's terms guarantee no processing time. Each optimization trial is a full backtest, and trials run one after another. The automatic budget is at least 60 trials, so the search alone takes roughly 23 to 84 minutes by estimates in Tradelyze's optimizer code, and the held-out test, Parameter Sensitivity and a re-tuned walk-forward can add more backtests after that. While a run is in progress, the strategy page shows an estimate of the time remaining.
Is Tradelyze affiliated with TradingView or any prop firm?
No. Tradelyze's disclaimer says it is not affiliated with, endorsed by or partnered with TradingView or any prop trading firm. Firm names appear only to identify the rule presets you can test against, and Pine Script is a TradingView trademark. Because firms change their rules, the limits stored in Tradelyze can lag behind, so verify them on each firm's own site.
Sources
- Tradelyze implementation, reviewed 14 September 2026: the submission form, Baseline Matching and its results card, the Top Trials ranking, Best Metrics and Recommended Parameters, the walk-forward badge gate and efficiency bands, per-firm prop firm rule checks, and credit charging. Every threshold, weight and label on this page comes from this review or the later ones below.
- Tradelyze implementation, re-checked 15 September 2026: the five stage names and which stages can be skipped; the Backtest Metrics on the Baseline Matching results card and the default-settings baseline run behind them; the Optimization stopped card title; the automatic Parameter Sensitivity budget, which skips the check below 50 optimization trials; the Optimization trials range of Automatic or 20 to 300; the walk-forward window range of 2 to 6; and the credit price shown under Get Credits on the Payments page. The capital that Profit % is measured on and the match level that halts a run were not confirmed, so this page does not state them.
- Tradelyze implementation and optimizer source code, re-checked 15 September 2026: the Run in progress note that holds back prop firm verdicts and robustness scores until a run is complete; the runtime estimate badge and its Taking longer than expected label; the 5-hour Processing is taking longer than expected banner with Cancel & Delete; the automatic Optimization trials budget of 60, 90, 120 or 150 backtests run one at a time; the optimizer settings' planning figure of about 23 seconds per backtest and the optimizer code's measured 51 to 84 seconds, from six backtests of a 2,000-bar test file; the Free label in the Run Optimization dialog; the 1 credit charged by Re-Evaluate; the limit of 3 prop firms per optimization; and the Top Trials card, which ranks trials without regard to prop firm rules, shows five rows and adds the recommended trial when the ranking leaves it out. The run-time figures on this page are arithmetic from those numbers, not measured run times.
- Tradelyze implementation, reviewed 26 September 2026: Baseline Matching runs the Pine Script as written, with no conversion to another language, on a Pine Script backtesting engine, and its results card is headed Backtest vs TradingView; the Exchange, Chart and Trade List Timezones the upload form asks for; which trades Match Rate compares, the Final Value figure, the Trade Details table and the before warmup alignment figure that only older results show, and the wording of the card that stops a run at Baseline Matching; the optimizer search, a Tree-structured Parzen Estimator (TPE) used since 24 September 2026 in place of NSGA-II, whose first 10 trials are random, and the internal comparison behind the change, which is not independently verified; the two walk-forward methods, One run, split by period, which adds no backtests, with Consistent or Not Consistent and Re-tuned each window with Confirmed or Not Confirmed, the Inconclusive and NO VERDICT outcomes, the retirement of parameter stability on 26 September 2026 and the banner naming firms whose settings differ; the four scored robustness checks and their 29, 29, 24 and 18 points; the multiplication by 0.69 when a scored check fails or the data covers under 30 days; the minimum backtest length shown for information only; the 30-day minimum history for a ROBUST verdict, counted over the whole upload and shown in days on the Enough for ROBUST row; the Too Few Trades badge on every check refused for too few trades; the Ruin Probability shown rounded down; the verdict rules; the headline score, rounded down from a score published to one decimal, and the check count, Ruin Check and NOT RESOLVED badges, reduction note and settings banner on the robustness card, which mentions the held-out test only when one ran; the held-out test, its badges and its one full-history backtest per distinct set of recommended settings, the run Best Metrics describe on a finished result; credit charging: 1 credit per submission for the whole run, the per-firm charge on an older strategy's first optimization, the Resubmit on a failed run, which retries it unchanged for 1 credit, and the Resubmit and Continue anyway on the two Optimization stopped cards, which use no further credit; and the grade, verdict and check count in the finished-run email. The robustness examples on this page were scored with Tradelyze's scoring code.
- Tradelyze, Terms of Service, last updated 6 April 2026, reviewed 14 September 2026: operator Pick MyTrade Pvt Ltd; beta status; features, pricing and credit allocations may change; no guaranteed processing times.
- Tradelyze, Disclaimer, reviewed 14 September 2026: not a broker, dealer, investment advisor or research analyst and not SEBI-registered; results are hypothetical; no guarantee of passing a prop firm challenge; prop firm rules may be out of date; not affiliated with TradingView or any prop firm; beta software.