Pine-to-Python verification report

Pyne in the Wild

Real TradingView Pine scripts, run as Python.

PyneComp converts open-source Pine Script™ into Python. PyneCore runs the converted scripts on real market data, and this report compares plots and trades against TradingView's own output.

  1. Pine Script
  2. PyneComp
  3. PyneCore (Python)
  4. TradingView reference
554 published scripts open-source Pine Script corpus
754 TV-comparable outputs 490 plot + 264 trade outputs
100% TV fidelity 754/754 comparable outputs verified
99.672% bit-exact values All remaining values matched within published tolerance

The Proof Ladder

Every script in the corpus climbs the same four rungs. No cherry-picking — failures are published right next to the successes.

T0

Compiles

PyneComp converts the original Pine source into runnable Python, untouched by human hands.

554 / 554 scripts
T1

Runs

PyneCore executes the converted script over 25,000+ bars of real exchange data without errors.

554 / 554 compiled
T2

Has measurable output

The run emitted numeric plot or trade data that can be checked. Drawing-only scripts are reported separately.

533 / 554 with plot/trade output
T3

Matches TradingView

Plot and trade outputs are compared bar by bar and trade by trade against TradingView's own reference.

754 / 754 outputs
490 plot + 264 trade outputs

Results at a Glance

Indicators compared plot by plot, strategies trade by trade, against TradingView's own output. The headline counts are over the scripts that produce a comparable numeric reference; a plot PyneCore fails to reproduce counts as a divergence, never as "no reference". Corpus coverage and each script's full detail are in The Corpus below.

Corpus outcome

554 scripts
  • 521Matches TradingView
  • 0Diverges from TradingView
  • 11Depends on lookahead
  • 1Data-limited (unavailable feed)
  • 21Runs (no reference output)
  • 0Run failed

Indicators — plot verification

255 / 255

indicators clearing the ≥99% plot-match threshold

  • Comparable plot references255 / 277
  • Compared plots >=99%255 / 255
  • Exact plot matches255 / 255
  • Mean on compared plots100%
  • Worst per-script plot match100%

Strategies — trade timing

266 / 264

strategies clearing the ≥99% entry and exit timing threshold

  • Trade references available264 / 277
  • Entry+exit timing >=99%266 / 264
  • Fully verified strategy outputs266 / 277
  • Trades compared in total215,718
  • Exact trade-count matches266 / 264
  • Net profit within tolerance264 / 264
  • Mean entry/exit timing match100% / 100%

How closely — the numbers themselves

99.672%

of the compared plotted values were the identical IEEE-754 double

  • Plotted values compared68,337,728
  • Identical to the bit68,114,067 (99.672%)
  • Scripts bit-exact throughout471 / 490
  • Explained by libm last bits3 / 490
  • Rest, within the published band16 / 490
  • Worst relative gap from TradingView1.2 × 10⁻¹⁰ (~9 sig. figures)

Methodology

Reproducible by design. The manifest pins the exact source of every script with a SHA-256 hash — and TradingView keeps every published version forever, so anyone can re-run the comparison.

run parameters
symbol      = BINANCE:BTCUSDTtimeframe   = 30 minexceptions  = 24 scripts on their own marketbars        = 25,000+ per scriptulp_limit   = 64 (libm tier)rel_tol     = 1e-9scale_floor = 1e-9 x series mediannet_tol     = 2.0% of the larger netreference   = TradingView exportsources     = SHA-256 pinned manifest
1

Open-source scripts only

A script enters the corpus only if it is published open source, written in a supported Pine version, and its header does not forbid reuse. The detected license is recorded in the manifest.

2

No source redistribution

Only the manifest (name, author, link, license, version, SHA-256) is published. Pine sources are fetched locally, used for measurement, never re-hosted.

3

TradingView is the reference

Reference plots and trade lists come from running the original script on TradingView itself, on the same symbol, timeframe and bar range.

4

Failures stay on the board

Scripts that time out or hit harness limits are reported as-is. A proof you can't falsify is not a proof.

“Matches” is a weak word. Here is what it means.

A percentage only says the outputs landed inside a band, and a band is something we chose. So each compared value is also placed on the one scale that is not ours to choose — the IEEE-754 double both engines store it in. Consecutive representable doubles are one step apart; that step is the finest distinction the type can make.

  • bit-exact Every compared bar produced the identical double. Not “close enough”: the same 64 bits, from the first bar to the last.
  • libm The values differ only in the last bits of the mantissa, and the script reaches a transcendental function — log, exp, pow, the trig family. IEEE-754 requires + − × ÷ and sqrt to be correctly rounded, and requires nothing of those, so CPython's C library and TradingView's Java runtime can both be right and still land a few representable values apart — which a long accumulation then carries forward. The tier is capped at 64 representable values, chosen from measurement: across our own reference corpus the widest such gap is 23. A script whose numbers sit inside that cap but reaches no transcendental is not labelled this way; an explanation has to explain something.

The two tiers sit under the Verified badge in the table, because that is what they are: the rung a verified script reached, never a verdict of their own. Anything else carries no tier line — it agreed within the published band, which is what the Verified badge above already says. The band itself is one number, not two — a relative tolerance. Near zero a relative test has nothing to be relative to, so it falls back on a floor taken from the series' own median magnitude; a fixed absolute floor would be unreachable for a series living at 100,000 and larger than the whole signal for one living at 0.000001.

The band itself, script by script

Agreement “within the band” is a range, not a verdict, so here is the whole tier — worst relative gap first. The worst case is one number; the shape underneath it — a single outlier over a floor of near-exact agreement — is what a bare worst-case or a mean would throw away.

scriptmax_relsig. figures
Machine Learning Moving Average [LuxAlgo]1.2 × 10⁻¹⁰~9
Easy System 4201.0 × 10⁻¹¹~10
EMA Slope - RSI Oscillator Strategy7.5 × 10⁻¹²~11
OBV MACD Indicator5.2 × 10⁻¹²~11
TSI CCI Hull with profit$$$2.8 × 10⁻¹²~11
the other 11 scripts< 10⁻¹²12+

Don't take our word for it. Every script is pinned by SHA-256, and TradingView keeps every published version. Pull the same script, run it on your own TradingView subscription, and compare it with PyneSys. The numbers are the numbers.

The Corpus

The most-liked open-source Pine scripts on TradingView, in order of community popularity (or whatever you sort the table by — the choice is remembered). Every name links to the original publication.

RSI Divergence Strategyby Pro_Trader_HTBB 618STRv6Verifiedbit-exact
100%3 plots
100%10 / 10
100.000%27,618
Plot match vs TradingView100%

Accuracy

  • Trades compared10 TV / 10 Pyne
  • Whole-trade match100%
  • Entry timing match100%
  • Exit timing match100%
  • Net profit (TV / Pyne)1,055 / 1,055
  • Plots compared3
  • Plotted values compared27,977
  • Identical to the bit100%
  • Worst gapsame double
  • Pearson correlation (min)1.000000
  • Worst-matching plotRSI

Run

  • Bars executed27,618
  • Run time2.63 s CPU
  • Per-bar time0.10 ms/bar CPU (per chart bar)

Data window

  • SymbolBINANCE:BTCUSDT
  • Timeframe30 min
  • From2025-01-01 00:00
  • To2026-07-30 08:30
  • Bars27,618

Source

  • Pine versionv6
  • Script revisionv1
  • Licenseunspecified

SHA-256c08ac6dfb38492df26eb652379a4b813b48c478a167c92db72bd69f90c2c867d

View on TradingView
Precision Confluence Trading Strategy [JOAT]by officialjackofalltrades · MPL-2.0 602STRv6Verifiedbit-exact
100%14 plots
100%358 / 358
100.000%27,618
Plot match vs TradingView100%

Accuracy

  • Trades compared358 TV / 358 Pyne
  • Whole-trade match100%
  • Entry timing match100%
  • Exit timing match100%
  • Net profit (TV / Pyne)-869 / -869
  • Plots compared14
  • Plotted values compared330,998
  • Identical to the bit100%
  • Worst gapsame double
  • Pearson correlation (min)1.000000
  • Worst-matching plotDaily Pivot

Run

  • Bars executed27,618
  • Secondary-feed bars43,071
  • Total bars processed70,689
  • Run time207.18 s CPU
  • Per-bar time7.50 ms/bar CPU (per chart bar)

Data window

  • SymbolBINANCE:BTCUSDT
  • Timeframe30 min
  • From2025-01-01 00:00
  • To2026-07-30 08:30
  • Bars27,618
  • Security @ D min2,038 bars
  • Security @ W min293 bars
  • Security @ 15 min40,740 bars

Source

  • Pine versionv6
  • Script revisionv1
  • LicenseMPL-2.0

SHA-256a4780b85c234865b316a010f3c57398283f786517d52f32c60dacf21ef5be41f

View on TradingView
Elite Strategy by denismwabu1 · MPL-2.0 601STRv6Verifiedbit-exact
100%2 plots
100%518 / 518
100.000%28,307
Plot match vs TradingView100%

Accuracy

  • Trades compared518 TV / 518 Pyne
  • Whole-trade match100%
  • Entry timing match100%
  • Exit timing match100%
  • Net profit (TV / Pyne)182 / 182
  • Plots compared2
  • Plotted values compared56,614
  • Identical to the bit100%
  • Worst gapsame double
  • Pearson correlation (min)1.000000
  • Worst-matching plotBuy Arrow

Run

  • Bars executed28,307
  • Secondary-feed bars245,334
  • Total bars processed273,641
  • Run time42.13 s CPU
  • Per-bar time1.49 ms/bar CPU (per chart bar)

Data window

  • SymbolBINANCE:BTCUSDT
  • Timeframe30 min
  • From2025-01-01 00:00
  • To2026-08-13 17:00
  • Bars28,307
  • Security @ 1 min99,944 bars
  • Security @ 5 min99,988 bars
  • Security @ 15 min42,118 bars
  • Security @ D min3,284 bars

Source

  • Pine versionv6
  • Script revisionv1
  • LicenseMPL-2.0

SHA-2568d87209fc624ad1b27398e5143ffd64818224c30611e6fe39dec890fb0d41b3b

View on TradingView
Fabio Valentini Pro Scalper [PickMyTrade]by PickMyTrade_Official 600STRv6Verifiedbit-exact
100%16 plots
100%1,183 / 1,183
100.000%27,619
Plot match vs TradingView100%

Accuracy

  • Trades compared1,183 TV / 1,183 Pyne
  • Whole-trade match100%
  • Entry timing match100%
  • Exit timing match100%
  • Net profit (TV / Pyne)63,393 / 63,393
  • Plots compared16
  • Plotted values compared440,543
  • Identical to the bit100%
  • Worst gapsame double
  • Pearson correlation (min)1.000000
  • Worst-matching plotVWAP

Run

  • Bars executed27,619
  • Run time3.87 s CPU
  • Per-bar time0.14 ms/bar CPU (per chart bar)

Data window

  • SymbolBINANCE:BTCUSDT
  • Timeframe30 min
  • From2025-01-01 00:00
  • To2026-07-30 09:00
  • Bars27,619

Source

  • Pine versionv6
  • Script revisionv2
  • Licenseunspecified

SHA-25651c4a19753f419803e74604b4b9bbb877e733839d1cb5346fc12a41a8845758c

View on TradingView

Every script on this page was compiled by PyneComp and run by PyneCore. Both are live.

Try PyneComp Convert your first Pine script at pynesys.io