pinescript
Installation
SKILL.md
Pine Script Development
Verify before implementing: For Pine Script version-specific syntax or new built-in functions, look up current official docs before writing code. Prefer Context7 (query-docs) when available. Otherwise use available web tools to read the TradingView Pine Script docs for the script's version. TradingView updates Pine Script frequently and training data may be stale.
Critical Syntax Rules
- Keep simple ternaries readable; multiline expressions require valid continuation indentation. For complex ternaries, use intermediate variables:
isBull = close > open barColor = isBull ? color.green : color.red - Continuation lines outside parentheses MUST be indented by a non-multiple of 4: same indentation as the start errors, and 4/8/12 spaces parse as a local block and error too (2 spaces is the conventional choice). Inside parentheses (function calls, parenthesized expressions) any indentation works, including multiples of 4
- NEVER use plot() inside local scopes (if/for/functions); use conditional value instead:
plot(condition ? value : na) - Use
barstate.isconfirmedwhen signals require the chart bar's closing values. It does not establish that requested higher-timeframe values are confirmed; inspectrequest.security()offsets and lookahead separately.
Platform Limits
Check the current platform limits before sizing a script: 64 plot counts (one call can consume several); up to 500 line, box, or label IDs each and 100 polyline IDs; 40 unique request.*() calls, or 64 on Ultimate; 100,000 compiled tokens. History buffers, requested intrabars, and chart history have distinct limits; there is no general 500-bar request.security() history limit.