怎么计算高平均价与低平均价是否在前20日收盘价的区间百分比

请问在DolphinDB database中,我想计算某2列的当前值,与另一列的前面20个数做比较,然后算出是否在它的区间的百分比,有什么函数能用吗?
举例来说,如下图所示:
image.png
比如6月17日这行数据的前面20行数据的close值(即图中标1这列),若其中有75%的数据是在upAvgPrice(图中标2)和upAvgPrice(图中标3)这两个值的区间中,那么signal(图中标4)的值我会设为true,否则设为false。

阅读 2.2k
1 个回答

这是一个滑动窗口的计算问题。我们使用高阶函数moving来解决问题。对于每一个窗口的处理,写一个自定义函数rangeTest来处理,返回true或false。

def rangeTest(close, downlimit, uplimit){
    size = close.size() - 1
    return between(close.subarray(0, size), downlimit.last() : uplimit.last()).sum() >= size*0.75
}

update t set signal = moving(rangeTest, [close, downAvgPrice, upAvgPrice], 21)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进