如何在PineScript数组控制代码中添加input.bool实现开关控制?
在PineScript中添加开关控制指标线条输出的方法
步骤1:添加开关输入项
把input.bool放在脚本最顶部(指标声明语句之后,任何逻辑代码之前),这样用户就能在指标设置菜单里看到启停开关:
// 放在//@version=5和indicator()声明之后 showSR = input.bool(true, title="显示支撑阻力线", tooltip="开启/关闭支撑阻力线的绘制")
true是默认开启状态,可改成false设置默认关闭title是设置菜单里显示的开关名称,可自定义
步骤2:用开关控制目标代码执行
把你原来的array.set代码包裹在if判断里,只有当开关开启时才执行这段逻辑:
if showSR array.set(sr_lines, x + 1, line.new(x1=bar_index, y1=mid, x2=bar_index - 1, y2=mid, extend=extend.both, color=mid >= close ? resistancecolor : supportcolor, style=Lstyle, width=linewidth))
完整示例片段
//@version=5 indicator("带开关的支撑阻力指标", overlay=true) // 开关输入项 showSR = input.bool(true, title="显示支撑阻力线", tooltip="开启/关闭支撑阻力线的绘制") // 自定义参数(根据你的实际代码调整) resistancecolor = color.new(color.red, 0) supportcolor = color.new(color.green, 0) Lstyle = line.style_solid linewidth = 2 mid = (ta.highest(high, 5) + ta.lowest(low, 5)) / 2 // 初始化线条数组(必须在使用前定义) var sr_lines = array.new_line() x = 0 // 示例索引值,替换成你的实际逻辑变量 // 受开关控制的线条绘制逻辑 if showSR array.set(sr_lines, x + 1, line.new(x1=bar_index, y1=mid, x2=bar_index - 1, y2=mid, extend=extend.both, color=mid >= close ? resistancecolor : supportcolor, style=Lstyle, width=linewidth))
注意事项
- 确保
sr_lines数组已经通过var关键字初始化(避免每次bar都重新创建数组) - 开关的
if判断要放在数组初始化之后、目标代码执行的位置,确保逻辑顺序正确
内容的提问来源于stack exchange,提问作者dcmc830
相关产品推荐
相关产品推荐

