The Strategy Tester panel inside TradingView is fine for a quick glance at net profit, but the moment you want to ask a real question of your backtest — which entry hours carried the P&L? how did drawdown cluster? does the edge hold up over time? — you need the raw trade list outside the platform. Fortunately, TradingView lets you export the full Strategy Tester report as an .xlsx workbook. This guide walks through the export step-by-step, explains exactly what lands in the file, and covers the three pitfalls that quietly corrupt downstream analysis if you don't know about them.
Step 1: Run the strategy on your chart
Add any Pine Script strategy to a chart — one of your own scripts, a community strategy, or a built-in. As soon as a strategy (not just an indicator) is on the chart, the Strategy Tester panel appears at the bottom of the chart. It shows the Overview tab with the equity curve, plus Performance, Trades analysis, and the trade list.
One thing worth knowing before you export: the tester only processes the bars your TradingView plan loads onto the chart. Basic plans limit how much history is available to the Strategy Tester, and the export always covers whatever the tester actually ran — no more, no less. If your intraday strategy only shows a few months of trades, that's usually a bar-history limit, not a bug. (Extended-range Deep Backtesting exists but requires a higher-tier TradingView plan — we cover workarounds in Deep Backtest Analysis Without TradingView Premium.)
Step 2: Export the report as .xlsx
In the Strategy Tester panel there is an export/download control that saves the full results to disk as an .xlsx file. Click it, save the file, and you're done with the TradingView side. The whole export takes a couple of seconds even for backtests with thousands of trades.
A practical naming tip: TradingView's default filename doesn't always capture what you tested. Rename the file immediately to something like ES-5m-ORB-v3_2020-2026.xlsx. Once you have five variants of the same strategy exported, you will thank yourself — especially if you later want to line them up side by side, which we cover in How to Compare Multiple TradingView Strategies Side by Side.
What's inside the export
The workbook contains multiple sheets. The three you'll actually use:
- List of trades — the raw material. Each trade appears as entry and exit rows with Date/Time, Price, P&L, Run-up, and Drawdown columns. This sheet is what any serious analysis is built on.
- Performance — the summary statistics you see in the tester's Performance tab: net profit, gross profit/loss, max drawdown, and so on.
- Trades analysis — aggregate trade statistics such as counts and averages, split long/short.
One quirk to be aware of: column names vary by TradingView version. The excursion columns in the trade list may be labeled Run-up / Drawdown, MFE / MAE, or Favorable / Adverse excursion depending on when and where the export was generated. They mean the same thing — the best and worst open P&L each trade saw before it closed — but any parser or spreadsheet formula that hardcodes one label will silently break on the others.
The three pitfalls that corrupt your analysis
1. Timestamps have no timezone attached
The export contains no timezone metadata. Every timestamp is written in whatever timezone your chart was set to at export time. If your chart was on Exchange time and you analyze the file assuming UTC, every "P&L by hour" result you compute is shifted by several hours — the numbers look plausible and are completely wrong. Before doing any time-of-day work, note your chart's timezone and carry it with the file. This matters enormously for the kind of entry-hour analysis described in How to Find Your Strategy's Most Profitable Trading Hours.
2. Open positions masquerade as closed trades
If your strategy had a position open at the moment you exported, the open position appears in the trade list as an exit row dated at export time, with its unrealized P&L filled in as if the trade had closed. A naive row-by-row analysis counts this phantom exit as a real trade — inflating (or deflating) your final numbers and planting a fake trade at whatever hour you happened to click export. Detecting it requires cross-checking: the "Open P&L" field in the Performance sheet, trade-count mismatches between sheets, and discrepancies between cumulative trade P&L and reported Net Profit are the usual tells. DataViz Studio runs these checks automatically and flags open positions separately, but if you're working in raw Excel, check the last row of the trade list against your export time before trusting anything.
3. Entry/exit rows are not one-row-per-trade
The List of trades sheet stores each trade across paired rows (entry and exit), not as a single record. Pivot tables and AVERAGEIF formulas that treat every row as a trade will double-count. You need to pair the rows up first — by trade number — before computing anything per-trade.
Analyzing the file once you have it
Excel itself gets you surprisingly far: a pivot table on the paired trade list gives you win rate, average win/loss, and P&L grouped by weekday or hour (timezone caveat above applies). What Excel does not give you cheaply is the second-order questions — was the profit factor stable across the sample, or did three lucky weeks carry it? Which risk metrics does the Strategy Tester report omit entirely? Our guide TradingView Backtest Metrics Explained covers what the standard report leaves out.
If you want the fast path: you can run your export through a free instant report — no signup, the file is processed in memory and never stored — and get win rate, profit factor, max drawdown, average win/loss, and a P&L-by-entry-hour breakdown in about ten seconds. It also handles the open-position detection and paired-row parsing described above, so the numbers you see are computed from actual closed trades.
Sanity-check the file before you trust it
Thirty seconds of verification saves hours of analyzing a broken dataset. Right after exporting, open the workbook and run three quick checks:
- Trade count. Compare the number of trades in the List of trades sheet against the total the Strategy Tester displayed. A mismatch usually means an open position snuck in as a fake exit row.
- Last exit timestamp. If the final exit is dated within minutes of when you clicked export, that row is almost certainly an open position, not a closed trade.
- Net profit reconciliation. Sum the P&L column of paired trades and compare it to Net Profit on the Performance sheet. If they disagree, the gap is typically the unrealized P&L of an open position — the Performance sheet's Open P&L field will usually confirm it.
If all three line up, you have a clean closed-trade dataset and everything downstream — pivot tables, hourly buckets, risk metrics — rests on solid ground.
Quick reference
| Item | What to remember |
|---|---|
| Export location | Export/download control in the Strategy Tester panel → saves .xlsx |
| Key sheets | List of trades, Performance, Trades analysis |
| Excursion columns | Run-up/Drawdown, MFE/MAE, or Favorable/Adverse — varies by version |
| Timezone | None in the file — timestamps use the chart's timezone |
| Open positions | Appear as fake exit rows dated at export time |
| History depth | Export covers whatever bars the tester ran (plan-limited) |
The export is the easy part — thirty seconds of clicking. The value is in what you do next: treating the trade list as a dataset rather than a report, and asking it questions the Strategy Tester UI can't answer.
