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

摆动低点被突破后查找最高开盘价的Pine Script代码运行报错求助

Pine Script v4 代码修复结果

原代码错误点

  • pivotlow()仅在摆动低点确认的当根K线返回价格,其余时段返回空值na,你使用的crossunder(low,swl)条件永远无法触发
  • barssince(swh)在未出现有效摆动高点时返回na,传入highest()的长度参数会触发语法错误
  • 未持久化存储历史有效摆动低点,击穿逻辑没有可对比的基准值

修复后可运行代码

//@version=4
study("Swing Low击穿后最高开盘价计算", overlay = true)
// 计算摆动高低点
swh = pivothigh(high,2,1)
swl = pivotlow(low,2,1)

// 持久化存储最近一次有效摆动低点
var float last_valid_swl = na
if not na(swl)
    last_valid_swl := swl

// 处理摆动高点计数的空值问题
Bcount = nz(barssince(swh), bar_index)

// 击穿摆动低点时计算对应区间最高开盘价
highestOpen = valuewhen(low < last_valid_swl, highest(open, Bcount + 1), 0)

// 绘制结果
plot(highestOpen, color = color.green, linewidth = 2)

关键修改说明

  • 用var类型变量存储有效摆动低点,避免空值导致的信号失效
  • 用nz()函数处理barssince的空返回值,避免参数类型不匹配报错
  • 将触发条件替换为low < last_valid_swl,符合“摆动低点被击穿”的业务逻辑
  • 新增摆动低点持久化逻辑,保证计算基准始终是最近一次确认的摆动低点

内容的提问来源于stack exchange,提问作者MVP_Script

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 14:42:00