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

Pine Script枢轴线脚本修改:仅在价格穿越收破后绘制新线

Pine Script 枢轴线绘制逻辑修改方案

原脚本会直接绘制所有检测到的枢轴高低点连线,现在需要添加过滤条件:仅当价格收盘价穿越并收于当前枢轴高线之上时,才绘制新的枢轴高线;仅当价格收盘价穿越并收于当前枢轴低线之下时,才绘制新的枢轴低线。

修改思路

  1. 用var变量持续跟踪当前有效的枢轴高/低点(初始值设为第一个检测到的枢轴点)
  2. 当新的枢轴高/低点出现时,通过ta.crossover()/ta.crossunder()判断收盘价是否突破当前有效线
  3. 仅满足突破条件时,才更新有效枢轴点并绘制连线

修改后的完整代码

//@version=5
indicator(title='Pivot Lines (Filtered)', overlay=true)

leftBars = input(5, title='左侧K线数')
rightBars = input(5, title='右侧K线数')

// 检测原始枢轴高低点(延迟1根K线确认)
rawPivotHigh = ta.pivothigh(leftBars, rightBars)[1]
rawPivotLow = ta.pivotlow(leftBars, rightBars)[1]

// 初始化并跟踪有效枢轴高/低点
var float validPivotHigh = na
var float validPivotLow = na

// 处理枢轴高点逻辑:收盘价突破当前有效高点时,更新有效高点
if not na(rawPivotHigh)
    if na(validPivotHigh)  // 第一个枢轴高点直接生效
        validPivotHigh := rawPivotHigh
    else
        // 收盘价穿越并收于当前有效枢轴高线之上
        if ta.crossover(close, validPivotHigh)
            validPivotHigh := rawPivotHigh

// 处理枢轴低点逻辑:收盘价突破当前有效低点时,更新有效低点
if not na(rawPivotLow)
    if na(validPivotLow)  // 第一个枢轴低点直接生效
        validPivotLow := rawPivotLow
    else
        // 收盘价穿越并收于当前有效枢轴低线之下
        if ta.crossunder(close, validPivotLow)
            validPivotLow := rawPivotLow

// 绘制过滤后的枢轴线
r1 = plot(validPivotHigh, color=ta.change(validPivotHigh) ? na : #FF0000, linewidth=1, offset=-(rightBars + 1), title='过滤后枢轴高')
s1 = plot(validPivotLow, color=ta.change(validPivotLow) ? na : #233dee, linewidth=1, offset=-(rightBars + 1), title='过滤后枢轴低')

关键代码说明

  • var关键字确保变量在脚本运行期间保持值,不会随K线重置
  • ta.crossover(close, validPivotHigh):判断收盘价是否从下往上穿越当前有效枢轴高线
  • ta.crossunder(close, validPivotLow):判断收盘价是否从上往下穿越当前有效枢轴低线
  • 初始状态下(无有效枢轴点时),第一个检测到的枢轴点直接生效,保证脚本能正常启动

内容的提问来源于stack exchange,提问作者Kevin.G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:00:20