You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求将带Super Trend的布林带V2 Pine Script v2代码转v5

Pine Script v2 转 v5:带Super Trend的布林带代码转换

以下是转换后的Pine Script v5版本代码,完全兼容v5环境,同时保留原脚本的所有功能:

// ########################## 参数 ########################################
indicator(shorttitle="Bollinger Bands V2 [Super Trend]", title="Bollinger Bands V2 [Super Trend]", overlay=true)
 
src = input(defval=close, title="Source")
length = input.int(defval=20, minval=1, title = "Bollinger Bands")
mult = input.float(defval=2.0, minval=0.001, maxval=50.0)

souc = input(title="Color of the BB with Super Trend", defval=false)
Factor=input.int(title="Super Trend", defval=4, minval=1, maxval = 100)
ATR_length=input.int(title="ATR", defval=12, minval=1, maxval = 100)
spt = input(title="View Super Trend on chart", defval=false)


// ######################## 布林带 #####################################

basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// ########################## Super Trend #######################################

atr_val = ta.atr(ATR_length)
Up = ta.hl2 - (Factor * atr_val)
Dn = ta.hl2 + (Factor * atr_val)

// 用var初始化变量以保留历史值
var float TUp = na
var float TDown = na

TUp := src[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := src[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn

var int Trend = 1
Trend := src > TDown[1] ? 1 : src < TUp[1] ? -1 : ta.nz(Trend[1], 1)
Tsl = Trend == 1 ? TUp : TDown
TslView = spt ? Tsl : na  // 用na替代false隐藏线条

// ############################# 颜色 ##########################################

linecolorATR = Trend == 1 ? color.green : color.red
linecolorPrice = src >= basis ? color.green : color.red
linecolor = souc ? linecolorATR : linecolorPrice

// ########################### 显示 ########################################

plot(TslView, color = linecolorATR , style = plot.style_line , linewidth = 2, title = "SuperTrend")
plot(basis, color=color.red, transp=75, title="Moving Average")
p1 = plot(upper, color=linecolor, transp=35, title="high band")
p2 = plot(lower, color=linecolor, transp=35, title="Low band")
fill(p1, p2, color=linecolor, transp=95, title="background")

关键改动说明

  • 脚本声明:study()替换为v5标准的indicator()
  • 输入类型规范:整数参数用input.int(),浮点数用input.float(),类型更严谨
  • 命名空间前缀:所有技术指标函数添加ta.前缀(如ta.sma、ta.atr),数学函数添加math.前缀(math.max、math.min)
  • 变量持久化:用var关键字声明TUp、TDown、Trend,确保变量保留历史计算值(v5默认会重新初始化变量,与v2行为不同)
  • 隐藏线条逻辑:将原false替换为na,这是v5中隐藏plot元素的标准方式,避免出现异常的0值线条
  • 颜色API更新:使用color.green、color.red替代v2的green、red常量
  • plot样式枚举:style = line改为plot.style_line,符合v5的枚举用法

内容的提问来源于stack exchange,提问作者최태혁

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 15:09:59