如何计算最近X根K线中最高点至今的K线根数?
解决Pine Script中计算最近X根K线最高点到当前K线的根数问题
需求是计算最近X根K线内出现的最高点距离当前K线的根数,以X=10为例,你给出的这段代码无法实现目标:
float h = ta.highest(high, 10) float d = ta.barssince(high == h)
问题出在ta.barssince(high == h)的逻辑上:这个函数返回的是最后一次出现最高点的K线到当前K线的前一根K线的间隔数,而不是到当前K线的实际根数。比如最高点出现在前第3根K线,这段代码会返回2,但我们需要的是3。
修正后的代码
// 定义需要统计的K线数量X X = 10 // 获取最近X根K线的最高价 float highestPrice = ta.highest(high, X) // 计算最高点到当前K线的根数:barssince返回的是到前一根的间隔,加1得到到当前的实际根数 float distanceToCurrent = ta.barssince(high == highestPrice) + 1
逻辑说明
ta.barssince(condition)的返回值是“满足condition的最后一根K线到当前K线的前一根K线之间的K线数量”,所以加1后才是到当前K线的总根数。- 举个例子:如果最高点就在当前K线,
ta.barssince返回0,加1后得到1;如果出现在前第5根K线,返回4,加1后得到5,完全符合需求。
内容的提问来源于stack exchange,提问作者Intetics
相关产品推荐
相关产品推荐

