Pine Script中ta.lowest(12)计算最低价返回值错误问题
问题诱因
你调用ta.lowest()时的参数传递不符合Pine Script的函数定义规则,这是返回值错误的核心原因:
ta.lowest()的标准语法为ta.lowest(source, length)- 第一个参数
source是待统计最低值的序列数据,计算K线最低价时需要传入K线最低价序列low - 第二个参数
length才是统计的周期长度
- 第一个参数
- 你仅传入了单个参数
12,函数会将常量12识别为待统计的源数据,使用默认周期长度1做计算,最终所有K线位置的返回值都是常量12,和你实际运行看到的标签显示结果完全一致。
修正代码
只需要补全ta.lowest()的数据源参数即可,修正后可正确得到最近12根K线的最低价:
order_price = ta.lowest(low, 12) lbl = label.new(bar_index, na) label.set_text( lbl, "order="+str.tostring(order_price)) label.set_color(lbl, color.green) label.set_yloc( lbl, yloc.belowbar) label.set_style(lbl, label.style_label_down)
补充说明:如果需要统计其他维度的12周期最低值,只需要替换第一个
source参数即可,比如统计12周期收盘价最低就传入close,统计12周期最高价的最低值就传入high。
内容的提问来源于stack exchange,提问作者Andrey Kanava
相关产品推荐
相关产品推荐

