
自定义指标脚本:Pine 与 ThinkScript 入门模板
用 Pine Script 和 ThinkScript 写自定义指标有可复用的模板;告警、多周期读取、共振评分、视觉叠加这五套起步模板能让你从空白编辑器走到能用工具。
交互工具在翻译视图中可能无法使用。
自定义指标脚本:Pine 与 ThinkScript 入门模板
现成指标会把你的分析塞进别人的逻辑里。掌握五种脚本模板,你就能在 TradingView 的 Pine 或 ThinkorSwim 的 ThinkScript 里,做出策略真正需要的读数。
Pine 和 ThinkScript 的逻辑大体相通。下面五套模板覆盖主观交易员 80% 的脚本需求。
模板 1:条件触发告警
满足条件时弹告警。Pine Script:
//@version=5
indicator("VSA Stopping Volume Alert", overlay=true)
v30 = ta.sma(volume, 30)
spread = high - low
closePos = (close - low) / (high - low)
stoppingVol = spread > ta.atr(20) * 1.4 and volume > v30 * 1.75 and closePos > 0.6
plotshape(stoppingVol, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
alertcondition(stoppingVol, title="Stopping Volume", message="Stopping volume detected")
ThinkScript 等价写法:用 def 定义每个分量,合成一个布尔值,再用 AddChartBubble(stoppingVol, low, "SV", Color.GREEN, no)。这套套路——分量定义成变量、合成布尔、画形状、挂告警——对任何条件信号都通用。
模板 2:多周期读取
把高周期数值拉到当前图上。Pine:
//@version=5
indicator("HTF EMA Filter", overlay=true)
htfEma = request.security(syminfo.tickerid, "240", ta.ema(close, 20))
plot(htfEma, color=color.blue, linewidth=2)
uptrend = close > htfEma
bgcolor(uptrend ? color.new(color.green, 90) : color.new(color.red, 90))
request.security 把 4 小时 EMA 拉到任何低周期图上。做信号默认用 lookahead_off,避免重绘。
模板 3:共振评分
把多个条件合成一个数。Pine:
//@version=5
indicator("Confluence Score", overlay=false)
score = 0
score := score + (close > ta.ema(close, 20) ? 1 : 0)
score := score + (ta.rsi(close, 14) > 50 ? 1 : 0)
score := score + (volume > ta.sma(volume, 30) ? 1 : 0)
score := score + (close > ta.vwap ? 1 : 0)
plot(score, style=plot.style_columns, color=score >= 3 ? color.green : color.gray)
hline(3, "Tradeable", color=color.green)
给评分设阈值(≥ 3 可交易),图上就一根柱子显示共振度——这是 VSA 和斐波那契分析里手工评分系统的脚本化版本。
模板 4:视觉叠加(区域与关键位)
在图上画供需区或谐波 PRZ。Pine:
//@version=5
indicator("Demand Zone Overlay", overlay=true)
var float zoneLow = na
var float zoneHigh = na
if low < low[1] and close > open and (high - low) > ta.atr(14) * 3
zoneLow := low
zoneHigh := close
bgcolor(not na(zoneLow) and close < zoneHigh and close > zoneLow ? color.new(color.green, 85) : na)
plot(zoneHigh, style=plot.style_linebr, color=color.green)
plot(zoneLow, style=plot.style_linebr, color=color.green)
var 让区域跨 K 线持久化;plot.style_linebr 只在有效时画线。
模板 5:回测桩
正式投入前测试想法的最小策略桩。Pine:
//@version=5
strategy("Pullback Entry Test", overlay=true)
ema20 = ta.ema(close, 20)
pullback = low < ema20 and close > ema20 and close > open
if pullback and strategy.position_size == 0
strategy.entry("Long", strategy.long)
strategy.exit("Exit", "Long", stop=low - ta.atr(14) * 0.5, limit=close + ta.atr(14) * 2)
在策略测试器里跑胜率、盈亏比、回撤,再决定要不要主观交易这个想法。
平台备注
Pine:用 //@version=5;多周期用 request.security。ThinkScript:振荡器用 declare lower,标签用 AddChartBubble,时间标记用 AddVerticalLine;回测走 ThinkBack。
工作流
- 先用大白话写清楚条件。
- 把每个分句翻译成一个变量。
- 合成布尔值。
- 画形状、挂告警。
- 在 50 根历史 K 线上验证,再信任实盘。
这五套模板可组合:共振评分在视觉区域内触发告警、再用回测桩验证,能把一个主观猜测升级成系统。
实时行情
打开完整图表 →相关市场数据由 TradingView 提供。
我的笔记
登录后可在本文保存笔记并与社区分享。
下一篇推荐
TradingView Chart Setup Best Practices
Configure TradingView for fast decision-making with multi-timeframe layouts, indicator templates, watchlists, and alert rules that survive restarts.
阅读更多 →Smart Recommendations