The TradingView Strategy Tester, also called the Strategy Report, simulates your Pine Script strategy against historical bars and hands you an immediate performance report. It shows the equity curve, a layered performance chart, a full trades list, and a set of risk and return metrics you can use to decide whether a strategy is worth refining, forward testing, or discarding.
TL;DR:
- Match the symbol and timeframe to the intended trades, use a date range spanning different market conditions, and remember that each chart runs one strategy.
- Use realistic order sizing, capital, commission, and slippage; on small accounts, percentage of equity sizing can round orders down to zero.
- Compare profit factor and largest wins or losses with win rate; frequent winners can still lose money when losing trades are larger.
- Change one variable per test, record settings and results, and check whether gains come from many trades or one outlier before trusting a backtest.
- Historical simulations miss partial fills, broker execution quirks, and live drawdown pressure, so forward test promising results and verify sizing against your actual account.
Table of Contents
- Quick start: add and run a strategy on TradingView
- Strategy Report interface: Metrics, Trades, and Properties explained
- Interpreting the performance visuals and numerical metrics
- Step-by-step backtesting workflow: run, record, iterate
- Diagnose and fix common issues (no orders, runtime errors, size and capital mismatches)
- How HuntersAlgo uses the Strategy Tester: reproducible workflows and tools
- Author perspective: practical limits and where Strategy Tester fits in a live-trading plan
- HuntersAlgo: reproducible backtests, prebuilt strategies, and setup help
- FAQ
- Sources
Quick start: add and run a strategy on TradingView
Getting a backtest running takes less time than reading about it. Open the Indicators panel on your chart, then look under Strategies for a built in option, search the Community Scripts tab for a published strategy, or paste your own Pine Script code into the Pine Editor and add it to the chart.
The moment a valid strategy script attaches to your chart, the Strategy Report panel opens automatically beneath it. TradingView only runs one strategy per chart at a time, so adding a second strategy replaces the first rather than running both side by side.
Before judging any numbers, set three things deliberately:
- Pick the symbol and timeframe that match how you actually intend to trade the strategy, since a 5 minute system tested on daily bars tells you nothing useful.
- Choose a date range long enough to include different market conditions, not just the most recent trending month.
- Confirm the strategy loaded correctly by checking that the Strategy Report tabs populate with data instead of staying blank.
Once those three settings are locked in, every metric that follows reflects a comparison you can trust rather than an artifact of a convenient time window.
Strategy Report interface: Metrics, Trades, and Properties explained
The Strategy Report splits into three tabs, and each one controls or displays a different layer of your backtest.
- Metrics tab: shows the equity chart, the performance chart with its layers, and a date range control that lets you narrow the test window without touching your chart settings.
- Trades tab: lists every simulated trade with entry and exit prices, size, profit or loss, and running equity, and you can copy or export this list for closer analysis outside TradingView.
- Properties tab: holds the settings that change how orders are sized and filled, including
default_qty_type, order size, initial capital, commission, and slippage.
The Properties tab is where traders most often introduce a hidden bias into their results. default_qty_type decides whether your order size means a fixed number of contracts, a percent of equity, or a cash amount, and switching between those modes without reading the resulting trade sizes can quietly double or halve your position without you noticing. Initial capital interacts with that setting directly: a percent based strategy on a small account can round down to zero shares on some bars, which shows up as skipped trades rather than an error.
Commission and slippage deserve the same attention. A strategy that looks profitable with zero commission can turn negative once you apply a realistic per contract fee, and slippage assumptions matter more for strategies that trade frequently on tight timeframes.
Pro Tip: Set commission and slippage to match your actual broker before trusting any profit factor or win rate number, since both figures shift meaningfully once realistic costs are applied.
Not every setting lives in the Properties tab. Entry logic, exit rules, stop placement, and any input variables the script author exposed as adjustable parameters come from the Pine Script code itself, and you edit those through the strategy's settings dialog rather than the Properties tab. The Properties tab only governs execution mechanics: how big an order is, how much starting capital you simulate with, and what friction costs get subtracted from each fill. Knowing which lever lives where saves you from hunting through code for something that's actually a checkbox in Properties, or vice versa.
Interpreting the performance visuals and numerical metrics
The performance chart is where most of the real analysis happens, because it layers several views of the same trades on top of each other instead of forcing you to read numbers in isolation.
- Cumulative PnL plots your running profit or loss trade by trade, giving you the shape of the equity curve rather than just its endpoint.
- Buy & Hold overlays what a simple buy and hold position would have returned over the same period, which is the baseline your strategy needs to beat to justify the added complexity.
- MFE and MAE (maximum favorable and adverse excursion) show how far each trade moved in your favor or against you before it closed, which exposes trades that gave back most of their gains.
- Run ups and drawdowns reveal the largest unrealized gains and losses the equity curve experienced, which matters more for risk tolerance than the final return does.
The Buy & Hold layer works as a useful filter on its own: if your cumulative PnL line consistently sits below Buy & Hold, the strategy isn't earning its complexity, and you should focus changes on profit capture rather than tightening risk controls.
Return details fill out the rest of the Metrics tab. Net P&L is your bottom line profit or loss, while gross profit and gross loss show the two sides that produced it separately. Profit factor divides gross profit by gross loss, so a value above 1 means winning trades outweighed losing ones in dollar terms regardless of how often each occurred. Expected payoff is the average profit per trade, and CAGR annualizes your return so you can compare strategies tested over different date ranges on equal footing.
Risk adjusted metrics put returns in context against volatility. The Sharpe ratio measures return relative to total volatility, while the Sortino ratio only penalizes downside volatility, which makes it more forgiving toward strategies with sharp upside spikes. Neither number means much alone, but comparing Sharpe and Sortino across two parameter sets on the same symbol and date range tells you which one delivers smoother, more dependable returns rather than just a bigger final number.
One figure worth watching closely: the strategy's percent profitable can look strong while profit factor stays weak, which signals that losing trades are larger than winning ones even though winners happen more often. Trade level stats round out the picture: percent profitable, average profit and loss per trade, and the size of your largest single win or loss. A strategy with one outsized winning trade carrying the entire backtest is fragile in a way the headline Net P&L number won't show you on its own.
Step-by-step backtesting workflow: run, record, iterate
A backtest only tells you something useful when you treat it as a controlled experiment rather than a one off click.
- Select a clean historical range that covers at least one trending period and one choppy or ranging period on your chosen timeframe.
- Record your baseline metrics by taking a screenshot or copying the key numbers from the Metrics and Trades tabs before you touch anything.
- Change exactly one variable at a time, whether that's order size, an exit rule, or the chart timeframe, so you can attribute any change in results to that single adjustment.
- Re-run the test and compare the new metrics against your recorded baseline rather than against your memory of it.
- Check the trades list or an ROI distribution view to confirm whether an improvement came from broadly better trades or from one or two outlier wins skewing the average.
Pro Tip: Keep a simple log, even a spreadsheet, noting the date range, parameter values, and resulting metrics for each run, since recreating a specific result three weeks later without notes wastes more time than the logging ever costs.
Isolating variables matters because strategy parameters interact in ways that aren't obvious from the code alone. Widening a stop loss might improve win rate while quietly increasing average loss size enough to leave profit factor unchanged, and you'd only catch that by comparing both metrics side by side rather than looking at one in isolation.
Favor longer sample periods and multiple market regimes before trusting any single parameter change. A strategy that performs well across six months of 2024 data and also holds up across a different six month stretch with different volatility is a far more credible candidate for live trading than one that only ever gets tested on the period that happens to flatter it.
Diagnose and fix common issues (no orders, runtime errors, size and capital mismatches)
A blank or empty Strategy Report usually traces back to one of a few common causes, and the TradingView support documentation on missing orders walks through most of them directly.
- Confirm the script is actually declared as a strategy using
strategy()rather thanindicator()orstudy(), since the latter two will never generate orders regardless of the logic inside them. - Verify the script calls
strategy.*order functions likestrategy.entry()orstrategy.order(), because logic that only plots conditions without calling these functions won't trade. - Expand your date range if the report shows no trades, since your entry conditions may simply never have triggered inside a narrow test window.
- Plot your entry conditions directly on the chart to visually confirm whether the logic actually becomes true anywhere in the data you're testing.
- Check Properties for size and capital mismatches, since an order size set too large relative to initial capital will silently fail to fill on some symbols.
- Watch for a red exclamation mark near the strategy name, which flags a runtime error, and read the attached message since it usually names the exact line or function causing the failure.
- Check whether your symbol allows fractional order sizes, since some crypto pairs permit fractional contracts while equities and FX typically require whole units, and a size that doesn't match this rule can quietly drop orders.
Most of these issues resolve in minutes once you know where to look, but they're worth checking in this order before assuming the strategy's logic itself is flawed.
How HuntersAlgo uses the Strategy Tester: reproducible workflows and tools
We built our process around the same Strategy Report outputs covered above, because transparent, reproducible backtesting only works if every number can be checked rather than taken on faith. Before we publish a strategy, we run it through the Metrics, Trades, and Properties tabs the same way described in this guide: baseline run, documented parameter set, and a clean date range that spans more than one market regime.
Our backtest reproduction helper walks you through recreating our published results on your own chart, step by step, using the exact Properties settings and date ranges we tested with. That matters because a backtest you can't reproduce is a backtest you can't trust, and simulation first evaluation only means something when the simulation is checkable.
Strategies like The Philosophers, which pairs a morning reversal approach with an afternoon continuation technique, get built and tuned through this same cycle before they ever reach a subscriber's chart. Our methodology page outlines how we validate a strategy's parameters and what we check before calling a backtest result reliable enough to publish, without pretending any single backtest is a guarantee of future performance.

Author perspective: practical limits and where Strategy Tester fits in a live-trading plan
The Strategy Tester earns its reputation for one job: validating whether a rule set behaves the way you think it does across historical data. That's genuinely valuable, and most traders skip it entirely in favor of gut feel.
Where it falls short is anything the simulation can't model, like partial fills during fast moves, broker specific execution quirks, or your own behavior under live drawdown pressure. Small samples produce extreme numbers by chance alone, and a single outlier trade often props up a result that looks far more consistent than it actually is.
Treat the Strategy Report as the first filter, not the final verdict. Forward test on a live or paper account, verify your margin and account size against the strategy's actual position sizing, and keep versioned records of every parameter set you've tested so a strong result is something you can trace back and reproduce rather than something you half remember.
— charlie
HuntersAlgo: reproducible backtests, prebuilt strategies, and setup help

If you've worked through the Strategy Report process above and want strategies that already carry that discipline built in, our NinjaTrader 8 and TradingView strategies come with published backtesting results and the same reproducible setup described in this guide, so you can verify our numbers on your own chart before committing to anything. Every strategy and indicator in our library ships under one subscription rather than separate add on purchases, with setup guides and Discord support included so configuration questions get answered directly rather than left to a help ticket queue.
Plans run $49.99 per month, $120 per quarter, or $420 per year, each starting with a trial period before billing begins. If you'd rather test the configuration tools first, our free position size calculator helps you translate recommended order sizes into real contract counts and margin requirements, the same Properties level decisions this guide walked through. Check current pricing when you're ready to see which plan fits your trading schedule.
FAQ
Is there a free TradingView Strategy Tester available?
Yes, the Strategy Tester is built into TradingView and runs on any Pine Script strategy you add to a chart, including on TradingView's free plan with its applicable chart and data limits. You don't need a paid TradingView subscription just to open and run the Strategy Report.
Why can't I find a strategy tester on TradingView?
The Strategy Report only appears automatically once you add a script declared as a strategy(), not a regular indicator, so searching for a standalone "Strategy Tester" button won't turn up anything. Add a strategy from the Indicators panel, Community Scripts, or the Pine Editor, and the Strategy Report panel opens beneath your chart automatically.
How do I backtest my strategies in TradingView?
Add your Pine Script strategy to a chart through the Indicators panel or Pine Editor, set your symbol, timeframe, and date range, and the Strategy Report generates automatically with equity charts, a trades list, and performance metrics. Adjust Properties settings like order size and initial capital to match your real trading conditions before trusting the results.
What trading strategy has a 90% win rate?
A far more useful question when evaluating any strategy is whether its profit factor and risk adjusted metrics hold up across a longer backtest spanning multiple market regimes, not just its headline win rate.
How do I fix a strategy that shows no orders in the Strategy Tester?
Confirm the script uses strategy() rather than indicator(), calls strategy.* order functions, and that your entry conditions actually trigger within the selected date range. If orders still don't appear, check the Properties tab for a size or capital mismatch and look for a runtime error flagged near the strategy name.
Sources
- Performance chart — TradingView
- I've successfully added a strategy to my chart, but it doesn't generate orders — TradingView India
