Pine Script v6: What Changed and What It Means for Your Strategies

TradingView released Pine Script v6 on December 10, 2024, and said "all new features from this point onward will be implemented exclusively in the latest Pine version" (>TradingView). Your v5 scripts still run. But twelve monthly updates have shipped since, ending with request.footprint() in January 2026, and none of them reach v5. If you run strategies, a few v6 changes can move your backtest numbers.

Pine ScriptBy , Senior AnalystPublished Updated 5 min read

What v6 added

TradingView's launch post lists the headline upgrades.

Feature What it does
Dynamic requests request.*() calls accept "series string" values and can sit inside local scopes, so one script can loop over symbols or timeframes.
Lazy boolean evaluation and and or stop evaluating once the result is known.
No hard 9,000-trade stop Strategies "no longer stop calculating or raise an error after reaching the 9000 trade limit." The oldest orders are trimmed instead.
Negative array indices array.get(), array.set(), array.insert() and array.remove() accept negatives, so -1 is the last item.
Text formatting Text sizes in typographic points, plus bold and italic through text_formatting.

Source: >TradingView blog

TradingView also says v6 upgrades "do not affect personal or published scripts written in earlier Pine versions." A converter exists, though "not all scripts can be converted to v6 automatically."

The breaking changes that touch strategies

These come from TradingView's >v6 migration guide. The right column is our read on why each one matters for a backtest.

Change in v6 Why it can matter
Default strategy margin is now 100. It used to default to 0, which meant no margin checking. A converted strategy may now size or fill differently. Recheck trade count.
strategy.exit() with both absolute and relative levels evaluates both and "uses the one that the market price is expected to trigger first." Exit prices can change on trades where both were set.
The when parameter is removed from strategy.entry(), strategy.exit(), strategy.close() and related calls. Conditions move into if blocks. A careless rewrite can change logic.
Dividing two ints that don't divide evenly "always results in a number with a fractional value." 3 / 2 gives 1.5. Code that relied on truncation needs math.floor() or similar.
bool values can no longer be na. na(), nz() and fixnan() no longer accept bools. Three-state flags need a new design.
Numbers no longer cast to bool implicitly. Use bool(). Old shortcuts like if volume stop compiling.
and / or evaluate lazily. A function call on the right side may not run every bar.
transp is removed from plot(), bgcolor() and others. Use color.new(). Visual only, but it breaks compilation.
timeframe.period always includes a multiplier, such as "1D" instead of "D". String checks against "D" silently fail.

The quiet ones are the dangerous ones. The margin default and the strategy.exit() change can shift results without a single compile error.

Twelve monthly updates since launch

TradersPost tracked every Pine release from February 2025 to January 2026 (>TradersPost).

Month Update
Feb 2025 Unlimited local scopes (the 550-scope limit removed); bid and ask on tick charts
Mar 2025 Dynamic for loop boundaries; box.set_xloc()
Apr 2025 PercentageLTP box sizing for alternative chart types
May 2025 time_close improvements for Renko, Kagi and other non-time charts
Jun 2025 Library constant exports with export const
Jul 2025 Active input parameter; syminfo.current_contract for continuous futures
Aug 2025 Max string length raised 10x to 40,960 characters; editor side panel
Sep 2025 Plot linestyle: solid, dashed or dotted
Oct 2025 timeframe_bars_back for time() and time_close()
Nov 2025 syminfo.isin
Dec 2025 Relaxed indentation for lines wrapped in parentheses
Jan 2026 request.footprint() plus footprint and volume_row types

For futures traders, syminfo.current_contract stands out. It is built for tracking the live contract behind continuous futures charts such as NQ1!.

request.footprint(), in plain English

Footprint data shows how volume split between buyers and sellers at each price inside a bar. TradingView's release notes say scripts can now read "total 'buy' or 'sell' volume and overall volume delta," plus each row's "price levels, volume values, volume delta, and imbalances." The footprint also supplies Value Area and Point of Control boundaries (>TradingView release notes).

The signature is request.footprint(ticks_per_row, va_percent, imbalance_percent) (>TradingView docs).

Two limits to know:

A delta filter is the obvious use. For example, take a breakout only when the bar's delta agrees with the direction. That idea is untested here. Treat any footprint rule like any other new filter: backtest it with costs before you trust it.

A migration checklist for your strategies

  1. Save a v5 baseline. Export trade count, net profit, profit factor and max drawdown.
  2. Run the converter. Fix what it can't convert by hand.
  3. Set margin on purpose. Don't let the new default decide it for you.
  4. Audit every strategy.exit() that sets both absolute and relative levels.
  5. Search for integer division and bool na checks.
  6. Re-run the backtest with the same costs. Compare it to the baseline trade by trade. Any gap needs a reason.

How to use it on the Loomi.Ai Desk

Loomi's named strategies already ship in v6. On the strategy pages, a $99 one-time purchase includes "The Pine Script (v6) version for TradingView, ready to add to your chart" and "The Python version for your own machine or backtesting," plus plain-English setup instructions and the certificate behind the numbers. If you'd rather lease, "Every Pine strategy" is $49/month.

The Python version matters for the checklist above. Loomi's certificates describe two passes: a TradingView run, then rules "independently re-implemented in Python and re-run over the full dataset with realistic costs. Both passes must agree before a strategy is published." Every test uses the same settings: "Commission $0.62/contract (futures) · 0.10%/trade (equities) · slippage 1 tick · pyramiding 0 · bar-close calc only · fixed size."

A second engine gives you a reference that doesn't depend on Pine's defaults. If a platform change ever moves your TradingView numbers, you have something to compare against. Backtested results are hypothetical and don't guarantee future results.

The Desk itself is $8/mo intro, then $20/mo.

Put the research to work on your Desk

Explore the tools behind the research, compare the available access, or open your Desk if you already have an account.

Explore the tools → · Compare access → · Member sign in →

FAQ

Is Pine Script v5 still supported? v5 scripts keep running. TradingView says new features go only into the latest version, so v5 won't get them.

How do I convert Pine Script v5 to v6? Use the converter in the Pine Editor, then fix what it can't handle. Check the migration guide for the when removal, integer division, bool na and the new margin default.

What is request.footprint() in Pine Script? A function added in January 2026 that returns volume footprint data: buy and sell volume, delta, Point of Control, Value Area and imbalances per row.

Do I need a paid TradingView plan for footprint scripts? Yes. TradingView's release notes say footprint features are for Premium or Ultimate plan users.

Loomi.Ai provides educational market research, not financial advice. Backtested results are hypothetical and do not guarantee future performance.

Sources