我正在使用 Pyalgotrade(通常与 ta-lib 指标结合使用),但我缺少一个在数据系列中查找局部最大值和最小值的函数。
我知道 min 和 max 函数,但这不是我想要的。例如。MIN(low, count=5) 会给我 5 个柱中的最低值,但这看起来并不超出 5 个值。我正在寻找一个函数,该函数在一定时期内返回“局部低点”的值,即该值低于该天前后两天的值。
例子
Series [2,3,2,1,3,4,5,6,6]
MIN(5) -> returns 3, but the lowest value is on the left border of the observed window
and the day before, the value was even lower!
whatiamlookingfor() -> should return 1,
because it is the last local low over a +/-2 days period
我希望我的意思很清楚。是否有任何我可能忽略的功能。
编辑
为了在数据系列中找到一个低点,我想出了这样的东西......
def min_peak(series, interval):
reference = -1
left = reference - interval
while -reference < len(series):
if min(series[left:]) == min(series[reference:]):
return min(series[left:])
reference -= 1
left -= 1
...但我对这个解决方案不太满意,因为我认为向后解析系列不是很有效。我认为本机运行的内置内容可能会更快。
亲切的问候,
啤酒