Pine Script如何使用历史收盘价及hline函数参数报错解决
报错原因
hline() 函数仅支持传入编译阶段就可确定的固定浮点常量(input float 类型),而你定义的 L_close = close[2] 是每根K线都会动态更新的序列浮点值(series float 类型),参数类型不匹配因此触发报错。
解决方案
根据你的实际需求选对应实现方式即可:
场景1:每根K线都显示对应往前数第2根K线的收盘价
直接用 plot() 函数替代 hline() 即可,plot 支持传入序列值作为参数:
//@version=5 indicator('FRG 1', overlay=true) L_close = close[2] plot(L_close, title="前2根K线收盘价", color=color.new(color.blue, 0), linewidth=2)
如果不需要连续的线,只想在每根K线对应位置显示水平标记,可以给plot加参数 style=plot.style_circles 或者 style=plot.style_linebr。
场景2:仅画一条固定不动的水平线,取指标首次加载时的前2根K线收盘价
用 var 关键词定义变量,仅在第一根K线计算时赋值一次,后续不再更新:
//@version=5 indicator('FRG 1', overlay=true) var float fixed_close = na if barstate.isfirst fixed_close := close[2] plot(fixed_close, title="固定历史收盘价", color=color.new(color.red, 0), linewidth=2)
补充说明
hline() 仅适合画固定阈值类参考线,比如0轴、固定的涨跌阈值等,所有需要动态取值、随K线变动的画线需求,都用 plot() 函数实现即可。
内容的提问来源于stack exchange,提问作者Dirbaz
相关产品推荐
相关产品推荐

