no viable alternative at character "“"
Retype the quotes as straight quotes (" or ').
Updated 23 October 2026. Runs in your browser; nothing you type is uploaded.
Try a worked example
Untitled script, Pine v6 indicator
TradingView's compiler stops at line 2
no viable alternative at character "“"
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 script has a character Pine does not use, here a curly quote. Code copied from a web page, a chat window or a word processor often brings them.
The fix, compiled
Retype the quotes as straight quotes (" or '). The character in the message is the one to find on the marked line.
//@version=6
indicator(“My script”)
plot(close)//@version=6
indicator("My script")
plot(close)The same mistake in Pine v5
Compiled as //@version=5, the same code prints, at line 2:
no viable alternative at character '“'
Other code that prints it
- A semicolon at the end of a line: Pine statements end at the line break.
no viable alternative at character ";"//@version=6 indicator("My script") x = close; plot(x)- Braces around a block: Pine marks blocks by indentation.
no viable alternative at character "{"//@version=6 indicator("My script") x = close if x > open { x := 1 } plot(x)- A backtick, often left over from Markdown.
no viable alternative at character "`"//@version=6 indicator("My script") x = `close` plot(x)
Syntax: lines, brackets and characters
- Mismatched input 'end of line without line continuation' expecting ')'
- Syntax error: Missing closing parenthesis
- Syntax error: Extra closing parenthesis
- Syntax error at input "end of line without line continuation"
- Syntax error at input "strategy"
- Syntax error at input "label"
- Syntax error at input "line"
- Syntax error at input "plotshape"
- Syntax error at input "plot"
- Syntax error at input "overlay"
- Syntax error at input "new line"
- Mismatched input 'strategy' expecting 'end of line without line continuation'
- Mismatched input 'if' expecting 'end of line without line continuation'
- Mismatched input 'label' expecting 'end of line without line continuation'
- Mismatched input "if" expecting set "end of line without line continuation"
- Extraneous input ":" expecting "end of line without line continuation"
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.