请求修复并转换SuperTrend BF脚本至Pine Script v5版本
SuperTrend BF 脚本 Pine Script v5 适配版(中文注释)
适配说明
- 完成从Pine Script v4到v5的转换,核心调整颜色常量引用逻辑(v5要求颜色值需加
color.前缀) - 移除变量定义末尾的冗余逗号,符合v5语法规范
- 将plot函数的样式参数更新为v5枚举值
plot.style_circles - 添加中文注释便于理解
完整代码
//SuperTrend 原作者:Olivier Seban //二次开发:BlindFreddy // 中文注释版 | Pine Script v5 indicator(title="SuperTrend BF", overlay = true) // 输入参数:ATR周期,最小值1 Length = input.int(10, minval=1, title="ATR周期") // 输入参数:ATR乘数,最小值1,浮点型 mult = input.float(3, minval=1, title="ATR乘数") // 计算指定周期的ATR值 avgTR = ta.atr(Length) // 计算空头波段初始值:(最高价+最低价)/2 + ATR*乘数 newshortband = ta.hl2 + avgTR * mult // 计算多头波段初始值:(最高价+最低价)/2 - ATR*乘数 newlongband = ta.hl2 - avgTR * mult // 更新多头波段:若前收盘价≥前值,则取初始值与前值的较大值,否则取初始值 longband = close[1] >= longband[1] ? math.max(newlongband, longband[1]) : newlongband // 更新空头波段:若前收盘价≤前值,则取初始值与前值的较小值,否则取初始值 shortband = close[1] <= shortband[1] ? math.min(newshortband, shortband[1]) : newshortband // 判断趋势方向:收盘价上穿前值空头波段则为多头(1),下穿前值多头波段则为空头(-1),否则延续前趋势 trend = close > shortband[1] ? 1 : close < longband[1] ? -1 : ta.nz(trend[1], 1) // 确定超级趋势线数值:多头趋势取多头波段,空头趋势取空头波段 supt = trend == 1 ? longband : shortband // 确定超级趋势线颜色:多头为绿色,空头为褐红色 dotcolor = trend == 1 ? color.green : color.maroon // 绘制超级趋势线,样式为圆点,线宽3 plot(supt, color=dotcolor, style=plot.style_circles, linewidth=3, title="超级趋势线")
内容的提问来源于stack exchange,提问作者Brett Gaudreau
相关产品推荐
相关产品推荐

