请求将带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,提问作者최태혁
相关产品推荐
相关产品推荐

