ia-pinescript
/install compound-eng-pinescript
Pine Script Development
Verify before implementing: For Pine Script version-specific syntax or new built-in functions, search current docs via search_docs before writing code. TradingView updates Pine Script frequently and training data may be stale.
Critical Syntax Rules
- Ternary operators MUST stay on one line -- splitting across lines causes "end of line without line continuation" error. For complex ternaries, use intermediate variables:
isBull = close > open barColor = isBull ? color.green : color.red - Continuation lines MUST be indented MORE than the starting line -- same indentation = error
- NEVER use plot() inside local scopes (if/for/functions) -- use conditional value instead:
plot(condition ? value : na) - barstate.isconfirmed -- use to prevent repainting on real-time bars
Platform Limits
500 bars history for request.security() | 500 plot calls | 64 drawing objects | 40 request.security() calls | 100KB compiled size
Performance
- Tuple security calls -- one
request.security()returning[close, high, low]instead of 3 separate calls - Pre-allocate arrays with
array.new\x3Ctype>(size)instead of push-and-resize - Short-circuit signals: build conditions incrementally, exit early when first condition fails
- Cache repeated calculations in variables -- Pine recalculates every bar
Debugging
TradingView has no console or debugger. Use these patterns:
- Label debugging:
label.new(bar_index, high, str.tostring(myVar))to inspect values - Table monitor:
table.new()withbarstate.islastfor real-time variable dashboard - Debug mode toggle: wrap all debug code in
if input.bool("Debug", false)-- remove before publishing - Repainting detector: track
previousValue = value[1], flag when historical values change
Strategy & Backtesting
- Use
strategy.*functions:strategy.wintrades,strategy.losstrades,strategy.grossprofit - Drawdown tracking:
maxEquity = math.max(strategy.equity, nz(maxEquity[1])), thendd = (maxEquity - strategy.equity) / maxEquity * 100 - Sharpe:
dailyReturn * 252 / (stdDev * math.sqrt(252)) - Walk-forward validation -- optimize on period 1, test on period 2, re-optimize on period 2, test on period 3. If metrics degrade > 30%, parameters are overfit.
- Indicator accuracy testing -- use forward-looking
close[lookforward]to measure prediction accuracy, track true/false positive rates
Visualization
color.from_gradient()for trend strength coloring- Adaptive text sizing:
size.smallfor intraday,size.normalfor daily+ - Dynamic table rows -- resize based on enabled features via input toggles
- Professional color constants: define BULL_COLOR, BEAR_COLOR, NEUTRAL_COLOR once with transparency
Publishing
- Documentation goes at TOP of .pine file as comments before
indicator()/strategy() - Use
@version,@description,@paramtags - Multi-line tooltips:
tooltip="Line 1" + "\ " + "Line 2" - TradingView House Rules: no financial advice, no performance guarantees, no external links, no obfuscated code, no donation requests
Common Coding Mistakes
- Indicator stacking (RSI + Stochastics + CCI) -- all measure the same thing (momentum). Use indicators from different categories instead.
- Overfitting parameters: if optimal values are oddly specific (RSI 23 instead of 20), the backtest is curve-fitted. Use round numbers and
input()with sensible defaults. - Missing
barstate.isconfirmedguard -- calculations on unconfirmed bars cause repainting. Always guard entry signals. - Hardcoded thresholds without
input()-- makes the script untestable across instruments.
Workflow
- Write indicator/strategy in Pine Editor
- Test with bar replay and strategy tester on multiple timeframes
- Walk-forward validate before trusting backtest results (see Strategy & Backtesting above)
- Verify: run on 3+ symbols and 2+ timeframes
Verify
- Indicator compiles without errors on TradingView
- No repainting:
barstate.isconfirmedguard present where needed - Walk-forward tested on 3+ symbols across different timeframes
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install compound-eng-pinescript - After installation, invoke the skill by name or use
/compound-eng-pinescript - Provide required inputs per the skill's parameter spec and get structured output
What is ia-pinescript?
Pine Script v6: syntax, performance, error diagnosis, backtesting, visualization. Use when writing or debugging `.pine` files or TradingView Pine indicators/... It is an AI Agent Skill for Claude Code / OpenClaw, with 290 downloads so far.
How do I install ia-pinescript?
Run "/install compound-eng-pinescript" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is ia-pinescript free?
Yes, ia-pinescript is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does ia-pinescript support?
ia-pinescript is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created ia-pinescript?
It is built and maintained by Ilia Alshanetsky (@iliaal); the current version is v3.0.4.