A heads-up: this is the deep-dive of a two-part set — the full landscape (free-tier limits, alternative platforms, exchange-native charts) is in TradingView’s Free Tier: The Real Limits and Legitimate Workarounds. This piece drills into one path: which open-source tools you can self-host to draw a strategy backtest the way TV does. I’ll give you the slightly deflating-but-honest conclusion first, then walk through each option.
1. The pain: TV’s backtest UI is genuinely good, but blocked twice
TradingView’s Strategy Tester is probably the most frictionless backtest UI a retail trader can touch: equity curve, List of Trades, per-trade performance, underwater drawdown, properties summary, and clicking a bar jumps to the matching trade. Two problems:
- The paywall: many of the good parts (multi-symbol comparison, detailed performance breakdown, longer backtest history) require Essential or Premium.
- Pine is a closed runtime: Pine Script is TV’s own language, running on TV’s servers. Nothing in the open-source world can “drop a .pine file into a local tool and get a backtest chart identical to TV’s.”
The second point is the crux. So every option below follows the same path: port the strategy to Python (you probably already have a Python version, or porting is quick), then use an open-source tool to draw the backtest result in a TV-like way.
2. Six options, from “fastest chart” to “most like TV’s full suite”
1. backtesting.py — fastest path to a TV-style backtest chart
backtesting.py is a pure-Python backtesting library; pip install backtesting and you’re in. Its killer feature is a single bt.plot() call — it pops open an interactive HTML page in your browser with: candlesticks + entry/exit markers, an equity curve, returns, an underwater drawdown plot, plus a stats table (win rate, profit factor, max drawdown, Sharpe, etc.).
This is the closest I found to “one action produces something resembling TV’s strategy tester chart.” It’s not TV’s five-tab full layout; it compresses the core info onto one zoomable, hoverable chart. For “I just want to see what my strategy looks like,” that’s enough.
Caveats: long-only by default; shorting/flipping needs hedging=True; the engine is bar-by-bar and ignores funding fees and detailed slippage, so numbers skew optimistic. Fully local, free, no server to run.
2. Freqtrade + FreqUI — the web UI that most resembles TV’s full multi-panel layout
Freqtrade is the most mature open-source quant framework in crypto. Docker one-liner, ships a web UI called FreqUI. Its backtest page has profit curves, ROI, per-trade logs, per-pair breakdowns — in layout terms, the closest to TV’s “multiple tabs stuffed with data” full tester.
For: crypto traders who want backtest + live trading + multi-pair in one stack and don’t mind configuring Docker and downloading data. Heavy, but most complete. Fully open-source, free, self-hosted.
3. TradingView lightweight-charts — TV’s own open-source charting lib, identical candlesticks
This one’s the most fun: lightweight-charts is the same underlying library TradingView’s web candles use — Apache 2.0, free, still actively maintained in 2026. You can draw candlesticks that look identical to TV’s.
But it’s a charting library, not a backtester — you plug in your own backtest engine (e.g., your Python strategy) and feed it trade points to render. The ecosystem has Python wrappers (lightweight-charts-esistjosh, a streamlit wrapper), and people use it as a front-end for backtesting.py’s results.
For: those fixated on “the candles must look exactly like TV’s” and willing to assemble it themselves. Most work, most control, highest fidelity. Note: TV also has an “advanced charting library” (with drawing tools) that needs a license application; the lightweight version is the fully free, open-source one.
4. vectorbt — vectorized, very fast, but the complete version is paid
vectorbt turns backtesting into pure pandas/NumPy + Numba vectorization, running parameter-grid scans tens of times faster than bar-by-bar engines, with plotly for interactive charts.
For: large-scale parameter sweeps, finding optimal regions via heatmaps. Caveats: so-so docs; and serious use requires a vectorbt Pro membership (invite-only/paid). The free core is enough but the UI isn’t on Pro’s level. It’s a library, not a finished UI — you’ll write some code.
5. backtrader — the veteran, stock-friendly
backtrader is an old hand in Python quant: event-driven, mature ecosystem, thick docs. It ships matplotlib static plots, and the community has a backtrader_plotting extension that bolts on Bokeh interactivity.
For: stocks/futures traders who like traditional OHLCV strategies and want a stable, proven library. For crypto perpetuals it doesn’t natively understand funding, so for crypto I’d reach for Freqtrade first. Fully open-source, free.
6. Jesse — crypto OSS engine, but the polished UI is paid
Jesse is a Python backtest + optimization + live-trading framework built for crypto; the engine is open-source on GitHub. Its DSL for writing strategies is pleasant.
Honest note: the polished desktop UI and cloud service on jesse.trade are freemium (free for contributors, paid for others); what’s open is the engine itself. So for “run locally + see a TV-like UI,” the free part does it but isn’t as turnkey as Freqtrade’s FreqUI. Don’t confuse it with a token called JESSE — that’s a coin, unrelated to this framework.
3. A table to pick
| Your situation | First pick | Why |
|---|---|---|
| Just want the equity curve + trades fastest, TV-style | backtesting.py | One-line plot → interactive HTML, zero deploy |
| Crypto, want backtest + live + multi-pair in one | Freqtrade | FreqUI most resembles TV’s full tester |
| Candles must look exactly like TV, willing to self-assemble | lightweight-charts | TV’s own underlying library |
| Large parameter sweeps, heatmaps | vectorbt | Vectorized speed (Pro is stronger) |
| Stocks/futures, want a stable veteran | backtrader | Mature ecosystem, full docs |
4. I picked backtesting.py — walking through it with MacdCross
My quant project LynxCrypto has a strategy called MacdCross-4h (MACD 12,26,9 golden/death cross flip + 2×ATR stop) that already had a Python implementation. Porting it to backtesting.py looks roughly like this (simplified, long side only; shorting needs hedging):
| |
Half an hour from “I have it” to “chart on screen.” That’s enough for me — what I want is to see signal timing, stop placement, and how equity crawls, not yet another service to operate.
5. Caveats you must internalize
- No local Pine runtime: there are Pine→Python emulators like pinepy out there — incomplete, unreliable. Just port to Python honestly.
- Funding fees: in perpetual-futures backtests, funding is a big number. backtesting.py / Freqtrade (partially) / self-assembled lightweight-charts don’t always model it truthfully, so numbers skew optimistic. TV’s Pine backtest doesn’t model funding either. For funding-inclusive truth, use a tick-level engine of your own.
- Different fill models: each tool’s matching, slippage, and commission assumptions differ, so the same strategy backtests to different numbers across tools. Don’t expect bit-for-bit parity with TV. Read relative shape (curve shape, drawdown location), not absolute amounts.
- Look-ahead bias: in backtesting.py’s
next()you can only use[-1]and earlier; touching a future bar throws an error — that’s actually a feature, it forces clean code.
6. Conclusion + two pro options
For most people who “want to see a TV-like strategy backtest chart on their own machine,” my advice: install backtesting.py first, get a chart in half an hour; come back to Freqtrade when you want crypto live trading + multi-pair; only reach for self-assembled lightweight-charts if you’re obsessed with candlestick fidelity.
Two more institution-leaning options: QuantConnect/Lean is an open-source backtest engine, cloud-leaning, multi-asset; Tradex is a 2026 library whose result.show(style="bloomberg") renders a four-quadrant layout + monthly heatmap — worth watching, but still young.
The open-source ecosystem can already replicate the “display style and data” of TradingView’s strategy backtest to about 80–90%. What’s missing is mainly that closed Pine runtime — and that path connects the moment you port to Python.
Sources:
- TradingView Lightweight Charts (official open-source lib) · docs
- backtesting.py (GitHub) · quick start · intro guide (AlgoTrading101)
- Freqtrade official site
- vectorbt guide (AlgoTrading101, incl. Pro membership note)
- Jesse (GitHub) · pricing
- backtrader official site · backtrader_plotting (Bokeh extension)
- QuantConnect/Lean engine
- Tradex library
- TradingView self-hosted alternatives overview (2026, TheFrontKit)
