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

如何修复PineScript 5中ta.valuewhen的bool参数类型错误?

PineScript 5 代码错误修复方案

错误原因

ta.pivothigh() 和 ta.pivotlow() 在PineScript 5中返回的是枢轴点的价格数值,而非布尔值。但ta.valuewhen()的第一个参数要求必须传入布尔类型的条件(true/false),这就是触发报错的核心原因。

修复后的代码

left = input(6, title="Left", group="Support and Resistance")
right = input(8, title="Right", group="Support and Resistance")

hih = ta.pivothigh(high, left, right)
lol = ta.pivotlow(low, left, right)

// 将枢轴点值转换为布尔条件:存在枢轴点时为true,否则为false
top = ta.valuewhen(not na(hih), high[right], 0)
bot = ta.valuewhen(not na(lol), low[right], 0)

关键修改说明

  • 用not na(hih)替代原代码中的hih:当ta.pivothigh()检测到枢轴高点时会返回对应价格(非na值),not na(hih)会将其转换为布尔值true;未检测到时返回na,转换为false。
  • 同理,not na(lol)将ta.pivotlow()的返回值转换为符合要求的布尔条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:24:51