Skip to main content
自定义指标脚本:Pine 与 ThinkScript 入门模板
blog 中级 · ~2 min read

自定义指标脚本:Pine 与 ThinkScript 入门模板

用 Pine Script 和 ThinkScript 写自定义指标有可复用的模板;告警、多周期读取、共振评分、视觉叠加这五套起步模板能让你从空白编辑器走到能用工具。

· Lead Editor · · ~2 min read
#advanced-charting#tools
本文为英文。需要查看中文翻译吗?

交互工具在翻译视图中可能无法使用。

自定义指标脚本: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.securityThinkScript:振荡器用 declare lower,标签用 AddChartBubble,时间标记用 AddVerticalLine;回测走 ThinkBack。

工作流

  1. 先用大白话写清楚条件。
  2. 把每个分句翻译成一个变量。
  3. 合成布尔值。
  4. 画形状、挂告警。
  5. 在 50 根历史 K 线上验证,再信任实盘。

这五套模板可组合:共振评分在视觉区域内触发告警、再用回测桩验证,能把一个主观猜测升级成系统。

相关市场数据由 TradingView 提供。

分享:
𝕏 f in r/
·
📝

我的笔记

登录后可在本文保存笔记并与社区分享。

✓ 已核查事实 审阅人 Timi Chen, 编辑顾问 · 发布于: 2026-07-01 · 编辑政策
由 Marcus Cole 起草 · 由 Timi Chen 于 2026-07-01 审核 · 最后检查于 2026-07-01

教育内容 · 非财务建议 · 风险自担

下一篇推荐

platformstools 2026-07-01

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