我正在尝试在pine-script中创建一个运行的中值函数。
其目的是计算估计的报价器价值和实际报价器价值之间的中位数误差。
有关此估计的一些历史信息,请参阅Plotting manual levels for daily high,low,close。
对于每个新的估计,中位数误差将随着时间的推移而变化,因为它必须考虑所有历史误差才能找到中位数误差。
要计算中位数,我们必须使用带有percentage=50的percentile_nearest_rank(source, length, percentage)函数。
例如,percentile_nearest_rank(close, 100, 50)将给出最近100个收盘价的中位数。
这将计算向后100条的滑动窗口的中位数。
然而,这不是我要找的。
我想做的是计算固定起始条(固定条数或日期)和当前条之间的中位数。
假设我们每天都有酒吧,我的开始日期是3月5日。
3月6日,我的中位数计算长度为2条:percentile_nearest_rank(close, 2, 50)
3月7日,我的中位数计算长度为3条:percentile_nearest_rank(close, 3, 50)
3月8日,我的中位数计算长度为4条:percentile_nearest_rank(close, 4, 50)
等等。
这意味着每个条形图上的length参数都会增加。
因此,我想知道在pine脚本中是否可以使用percentile_nearest_rank函数,其中的length参数不是固定的,而是在每个条形图上都会发生变化。
如果没有,如果有其他选择,我持开放态度。
发布于 2020-04-30 00:37:28
使用n数据点的窗口大小计算滚动中值将需要这些数据点的升序排序列表。
因为你想使用一个递增的窗口大小,你需要使用一个循环,但是你不能在一个循环中排序(据我所知)。所以我认为这样做是不可能的。
你可以使用累积平均cum(x)/bar_index作为替代,我不知道在收盘价的情况下差异是否显着。
发布于 2020-04-29 13:10:07
length=参数specified in the refman的类型不是序列整数,所以它不能在每个条形图上有所不同。
https://stackoverflow.com/questions/61470275
复制相似问题