EducationMay 18, 20269 min read337 views

Pine Script v6 Complete Guide: Strategies, Indicators, and Alerts That Actually Work

Pine Script v6 introduced breaking changes from v5. This guide covers the key differences, the most common mistakes traders make, and how to write strategies and indicators that compile and run correctly in TradingView.

What changed in Pine Script v6

Pine Script v6 is not a minor update. It introduced a new type system, stricter scoping rules, and removed or renamed dozens of functions that existed in v5. Code that worked perfectly in v5 often fails immediately in v6 — and the error messages aren't always clear about why.

The biggest practical change: Pine Script v6 enforces a strict separation between series values and simple values. Many functions that accepted either type in v5 now require explicit types in v6. This is the root cause of most 'type mismatch' errors.

  • Strict type enforcement: series<float> vs float (simple) must be handled explicitly
  • input.int(), input.float(), input.bool() replace the old input() with type argument
  • strategy.risk.* functions removed — risk management is now done manually
  • bgcolor() requires color type, not conditional expressions directly in some contexts
  • Pine Script v6 requires explicit na checks in more situations than v5

Strategy structure: the correct skeleton

Every Pine Script v6 strategy starts the same way. Get this wrong and nothing else matters.

//@version=6
strategy("Strategy Name", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// --- Inputs ---
fastLen = input.int(9,  title="Fast EMA", minval=1)
slowLen = input.int(21, title="Slow EMA", minval=1)
rsiLen  = input.int(14, title="RSI Length", minval=1)
rsiOB   = input.int(70, title="RSI Overbought", minval=50, maxval=100)
rsiOS   = input.int(30, title="RSI Oversold",   minval=0,  maxval=50)

// --- Calculations ---
fastEma = ta.ema(close, fastLen)
slowEma = ta.ema(close, slowLen)
rsi     = ta.rsi(close, rsiLen)

// --- Conditions ---
longCond  = ta.crossover(fastEma, slowEma)  and rsi < rsiOB
shortCond = ta.crossunder(fastEma, slowEma) and rsi > rsiOS

// --- Entries ---
if longCond
    strategy.entry("Long", strategy.long)
if shortCond
    strategy.entry("Short", strategy.short)

// --- Plots ---
plot(fastEma, color=color.new(color.green, 0), linewidth=2)
plot(slowEma, color=color.new(color.red,   0), linewidth=2)

// --- Alerts ---
alertcondition(longCond,  title="Long Entry",  message="Long signal triggered")
alertcondition(shortCond, title="Short Entry", message="Short signal triggered")

The most common Pine Script v6 errors and how to fix them

These are the errors TradePilot users hit most often when working with existing scripts or manually-written code.

  • "Cannot call `strategy.entry` in this context" — you have strategy.entry() inside an indicator script. Change //@version=6 to strategy() declaration.
  • "Undeclared identifier" on a built-in — you're on the wrong version. Make sure //@version=6 is the first line.
  • "Cannot use 'series bool' where 'bool' is expected" — wrap the condition in a variable: cond = ..., then pass cond.
  • "Loop is too long" — your for/while loop runs on every bar. Use arrays or math instead of loops where possible.
  • "Add to chart operation failed" — check for any function called outside its valid scope, usually a strategy.* call in an indicator.

Indicators vs Strategies: what you can and can't do

Pine Script enforces a strict separation between indicator scripts and strategy scripts. You cannot mix strategy.* calls into an indicator, and indicators run on every bar with no position tracking. Strategies simulate trades and track equity.

Indicators should use plotshape(), plot(), hline(), and alertcondition(). Strategies use strategy.entry(), strategy.exit(), strategy.close(), and strategy.order(). The type of script is set by the first declaration line.

Tip

Use indicators for signals and overlays you want on the chart without running a full backtest. Use strategies when you need position tracking, P&L, win rate, and parameter optimization. TradePilot supports both and picks the right type based on your description.

Alerts: the right way to wire alertcondition()

alertcondition() must receive a series bool — a condition that evaluates to true/false on each bar. It doesn't fire the alert itself; it registers the condition so you can set an alert on it in TradingView's Alerts dialog.

Always add alertcondition() at the bottom of your script after all calculations. Use descriptive title strings — these are what appear in TradingView's alert setup dropdown.

// Correct alert wiring
longSignal  = ta.crossover(fastEma, slowEma)
shortSignal = ta.crossunder(fastEma, slowEma)

alertcondition(longSignal,  title="EMA Long",  message="EMA crossover long — {{ticker}} @ {{close}}")
alertcondition(shortSignal, title="EMA Short", message="EMA crossunder short — {{ticker}} @ {{close}}")
TP

TradePilot Team

Traders and engineers building the fastest way to go from idea to live Pine Script strategy, right inside TradingView.

More articles

Pine Script

TradingView Alerts Not Firing? The Pine Script Reasons and Fixes

Read
Guide

Pine Script for Beginners: Where to Start in 2026

Read
Education

Can AI Write Profitable Trading Strategies? An Honest Answer

Read
Tutorial

The EMA Crossover Strategy in Pine Script v6 (Complete Guide + Code)

Read
Comparison

Pine Script vs MQL vs thinkScript: Which Trading Language Should You Learn?

Read
Pine Script

Multi-Timeframe Pine Script: Using request.security Without Repainting

Read
Education

TradingView Strategy Tester Explained: Reading Your Backtest Like a Pro

Read
Tutorial

How to Add a Stop Loss and Take Profit in Pine Script v6

Read
Pine Script

Pine Script 'Could Not Find Function' Error: Why It Happens and How to Fix It

Read
Strategy

10 Pine Script Indicators Worth Building in 2026 (And How)

Read
Pine Script

Pine Script Alerts: alert() vs alertcondition() and When to Use Each

Read
Tutorial

How to Write an RSI Strategy in Pine Script v6 (With Working Code)

Read
Comparison

Free vs Paid Pine Script AI: Is It Worth Paying?

Read
Guide

Pine Script Generator vs Writing It By Hand: Which Is Faster?

Read
Guide

Why AI Gets Pine Script Wrong (And How to Fix It)

Read
Guide

The Best Pine Script AI for Beginners in 2026

Read
Comparison

Can ChatGPT Write Pine Script v6? We Tested It Properly

Read
Pine Script

Pine Script Compile Errors: The Most Common Causes and Exact Fixes

Read
Education

TradingView Pine Script Generator: How AI Writes Your Strategy Code

Read
Strategy

Pine Script Strategy Optimizer: How to Find the Best Parameters for Your Strategy

Read
Tutorial

How to Create a Pine Script Strategy with AI: Complete 2026 Guide

Read
Pine Script

Pine Script v6 Function Reference: ta.*, strategy.*, input.*, request.*

Read
Tutorial

How to Install TradePilot in TradingView (Step-by-Step Guide)

Read
Comparison

Best Free AI Tools for Pine Script in 2026 (Honest Comparison)

Read
Pine Script

Pine Script v6 Syntax Changes: Everything That Breaks Coming from v5

Read
Education

The Best TradingView Indicators and Strategy Types in 2025 (And How to Build Them with AI)

Read
Education

How to Backtest a Trading Strategy in TradingView (The Right Way)

Read
Comparison

TradePilot vs ChatGPT for Pine Script: Why a Specialist Wins Every Time

Read
Product

Edit Any Pine Script Strategy with Plain English — No Coding Required

Read
Product

One Click to Fix Any Pine Script Error Inside TradingView

Read
Product

Stop Guessing Parameters. TradePilot's Strategy Optimizer Tests Them All.

Read
Product

We Built the Fastest AI Pine Script Generator Inside TradingView

Read
Pine Script

EMA Crossover Strategy in Pine Script v6: Full Code with RSI Filter, Stop Loss & Alerts

Read
Backtesting

TradingView Backtesting Guide 2025: How to Test Any Strategy with Pine Script

Read
AI Trading

AI Pine Script Generator: How to Create TradingView Strategies Without Coding in 2025

Read
Pine Script

Pine Script Strategy: The Complete 2025 Guide to Writing TradingView Strategies

Read

Ready to elevate your trading?

Join thousands of traders using TradePilot.co.in to generate profitable Pine Script strategies.

No credit card required1,000 free credits / monthWorks inside TradingViewCancel anytime