Pine Script:如何在TradingView数据窗口显示bomax数值
解决Pine Script中BoMax数据窗口显示空值的问题
核心原因
数据窗口显示∅,本质是bomax变量在非触发突破的K线上处于na(空值)状态——虽然plot函数能自动连接有效点形成水平线,但数据窗口会读取当前K线的变量值,空值就会显示∅。
具体修复方案
1. 用var保留变量有效值
通过var声明变量,仅初始化一次,后续只有突破触发时更新值,非触发周期保持最后有效值:
indicator("Breakout Finder", overlay=true) // 替换成你实际的突破触发逻辑(示例用枢轴高点) breakoutCondition = ta.pivothigh(5, 5) // 用var初始化bomax,确保非突破周期保留最后值 var float bomax = na if breakoutCondition bomax := ta.highest(ta.high, 10) // 替换成你实际的bomax计算逻辑 // 绘制水平线,数据窗口会同步显示有效值 plot(bomax, "BoMax", color=color.blue, style=plot.style_linebr)
2. 用ta.valuewhen提取最后有效值
如果不想用var,可以用ta.valuewhen直接获取最近一次突破触发时的bomax值,确保所有K线都有值:
indicator("Breakout Finder", overlay=true) breakoutCondition = ta.pivothigh(5, 5) bomaxCalc = ta.highest(ta.high, 10) // 你的bomax计算逻辑 // 提取最后一次突破时的bomax值,无突破时保持之前的值 bomax = ta.valuewhen(breakoutCondition, bomaxCalc, 0) plot(bomax, "BoMax", color=color.blue, style=plot.style_linebr)
3. 检查plot参数设置
确保plot函数没有设置display=display.data_window_off,默认display.data_window_on会让指标显示在数据窗口。如果只想在数据窗口显示、不显示图表线,可设置:
plot(bomax, "BoMax", display=display.data_window_only)
验证方法
修改代码后切换不同K线,查看数据窗口的BoMax字段:
- 触发突破的K线显示计算值
- 非突破K线显示上一次的
bomax值,不再出现∅
内容的提问来源于stack exchange,提问作者Raghunadh
相关产品推荐
相关产品推荐

