Pine Script实现复选框控制仅显示最近Pivot High/Low枢轴点
Pine Script 仅显示最近枢轴点实现方案
实现逻辑:先统一识别所有枢轴高、枢轴低点位置,根据showRecentOnly开关判断绘制范围:开关关闭时展示全部历史枢轴标记,开关开启时仅抓取最近一次生成的枢轴高、枢轴低点做展示。
修改后完整可运行代码
//@version=5 indicator("Custom Pivot Marker", overlay=true) showRecentOnly = input(title="Pivots Highs & Lows", defval=false) lb = input(defval=5, title='Left Bars') rb = input(defval=5, title='Right Bars') mb = lb + rb + 1 // 识别全量枢轴高低点 isPivotHigh = ta.highestbars(mb) == -lb isPivotLow = ta.lowestbars(mb) == -lb // 按开关状态判断绘制条件 plotHighCond = showRecentOnly ? bar_index == ta.valuewhen(isPivotHigh, bar_index, 0) : isPivotHigh plotLowCond = showRecentOnly ? bar_index == ta.valuewhen(isPivotLow, bar_index, 0) : isPivotLow // 绘制三角形标记 plotshape(plotHighCond, title='Triangle Pivot High', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 60), size=size.tiny, offset=-lb) plotshape(plotLowCond, title='Triangle Pivot Low', style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 60), size=size.tiny, offset=-lb)
关键改动说明
- 把原有分散的枢轴判断逻辑抽为独立布尔变量
isPivotHigh、isPivotLow,减少重复计算 - 用
ta.valuewhen()函数抓取最近一次枢轴高、枢轴低对应的K线索引,开关开启时仅在对应索引位置绘制标记,自动隐藏所有历史标记 - 开关默认关闭时,所有枢轴点正常展示,和原有代码效果完全一致,不会改动用户原有使用习惯
- 移除了原有代码中冗余的空值判断、iff中转逻辑,代码执行效率更高
内容的提问来源于stack exchange,提问作者rooter
相关产品推荐
相关产品推荐

