Undeclared identifier "diff"
Declare the variable at the top level, before the block, and assign it inside the block with :=.
Updated 23 October 2026. Runs in your browser; nothing you type is uploaded.
Try a worked example
My script, Pine v6 indicator
TradingView's compiler stops at line 5
Undeclared identifier "diff"
Static checks, which read the code as written: Passes static repaint & Pine Script v6 checks. Edit the script and the compiler line goes; the checks below follow your edits.
Critical repaint flags
0
0 caution flags to verify
Bar-close gate
Not found
barstate.isconfirmed or a bar-close alert
Higher-timeframe calls
0
request.security() calls, of a 40 limit
Plots and alerts
1
Plots, of a 64 limit; 0 alerts
Repaint and lookahead
No lookahead leaks, unshifted request.security() calls or realtime-only signal branches found in this snippet.
Pine Script v6 migration checklist
Declares //@version=6, and none of the migration patterns this checker reads were found. TradingView's compiler is the final word.
Want TradingView indicators whose Pine Script v6 source already passes every check?
Every desk in Pine Pro Library ships as readable .pine v6 source with confirmed higher-timeframe requests and barstate.isconfirmed event logging.
What causes it
The name is not declared where it is used. Here diff is declared inside the if block, so it exists only there; a typo, or a variable used above the line that declares it, gives the same message.
The fix, compiled
Declare the variable at the top level, before the block, and assign it inside the block with :=.
//@version=6
indicator("My script")
if close > open
diff = close - open
plot(diff)//@version=6
indicator("My script")
diff = 0.0
if close > open
diff := close - open
plot(diff)The same mistake in Pine v5
Compiled as //@version=5, the same code prints, at line 5:
Undeclared identifier 'diff'
Other code that prints it
- A typo in a built-in name.
Undeclared identifier "closee"//@version=6 indicator("My script") plot(closee)
Names Pine cannot find
- Could not find function or function reference 'study'
- Could not find function or function reference 'security'
- Undeclared identifier "color.gold"
- Undeclared identifier "color.cyan"
- Could not find function or function reference 'iff'
- Could not find function or function reference 'ta.adx'
- Could not find function or function reference 'ta.sum'
- Could not find function or function reference 'ta.obv'
- Could not find function or function reference 'math.clamp'
- Could not find function or function reference 'dayofyear'
- Could not find function or function reference 'ema'
- Could not find function or function reference 'sma'
- Could not find function or function reference 'input.integer'
- Could not find function or function reference 'ta.kama'
- Could not find function or function reference 'ta.cmf'
- Could not find function or function reference 'ta.plus_di'
- Could not find function or function reference 'ta.slope'
- Could not find function or function reference 'ta.ichimoku'
- Could not find function or function reference 'ta.crossabove'
- Could not find function or function reference 'math.tanh'
- Could not find function or function reference 'math.mod'
- Could not find function or function reference 'input.timezone'
Compiled on TradingView 23 October 2026. The checker above reads repaint and v6 migration patterns; TradingView's compiler is the final word on whether a script compiles.
Have your AI fix the next one
- Pine Fixer An AI skill pack for 45 compiler-verified Pine v6 failure classes, with a repaint clinic. $9.99 once.