Pine Script无法绘制前两天高低线问题求助
解决Pine Script无法绘制前两天高低价线条的问题
我编写了一段Pine Script脚本,意图绘制前两天的最高价与最低价线条,脚本运行无报错,但仅显示指标标签,看不到实际线条。原脚本代码如下:
//@version=5 indicator('prev2day', overlay=true, max_bars_back=2) prev2dayhigh = request.security(syminfo.tickerid, 'D', high[2]) prev2daylow = request.security(syminfo.tickerid, 'D', low[2]) plot(prev2dayhigh, title='Previous 2Day High', color=color.new(color.gray, 0), linewidth=1, style=plot.style_line, offset=-9999) plot(prev2daylow, title='Previous 2Day Low', color=color.new(color.gray, 0), linewidth=1, style=plot.style_line, offset=-9999)
问题原因及修正方案
导致线条不显示的核心问题有两个:
- 错误的offset参数:
offset=-9999将线条偏移到了极早的历史K线位置,超出了当前图表的可视范围,直接移除该参数即可让线条显示在对应周期的正确位置。 - 数据引用与max_bars_back设置:原脚本的
max_bars_back=2不足以支撑日线级别数据的调用,同时request.security中直接使用high[2]在低周期图表中可能导致数据获取不连续。
修正后的脚本:
//@version=5 indicator('prev2day', overlay=true, max_bars_back=100) // 增大max_bars_back确保获取足够历史数据 // 获取前两天的日线高低价,使用ta.barssince确保数据稳定传递 prev2day_high = request.security(syminfo.tickerid, 'D', ta.valuewhen(ta.change(time('D')), high, 2)) prev2day_low = request.security(syminfo.tickerid, 'D', ta.valuewhen(ta.change(time('D')), low, 2)) // 绘制线条,移除错误的offset参数 plot(prev2day_high, title='Previous 2Day High', color=color.gray, linewidth=1, style=plot.style_line) plot(prev2day_low, title='Previous 2Day Low', color=color.gray, linewidth=1, style=plot.style_line)
关键修改说明
- 移除offset参数:让线条绘制在当前周期对应的前两天高低价位置,保证可视性。
- 增大max_bars_back:设置为100可以确保脚本能获取足够的历史日线数据,避免数据缺失。
- 使用ta.valuewhen:配合
ta.change(time('D'))来精准定位前两天的日线高低价,确保在低周期图表中数据能稳定传递到每一根K线。
内容的提问来源于stack exchange,提问作者aiman
相关产品推荐
相关产品推荐

