pivothigh/pivotlow函数部分K线返回NaN的原因及计算视角咨询
关于pivothigh/pivotlow函数返回NaN的核心原因及逻辑说明
函数的核心判定逻辑
pivothigh() 和 pivotlow() 的本质是标记区间内的极值K线,而非为每根K线返回其范围内的高低点,它们的返回规则十分明确:
- 对于
pivothigh(leftbars, rightbars):仅当当前K线的高点,同时满足「比左侧leftbars根K线的所有高点都更高」且「比右侧rightbars根K线的所有高点都更高」时,才会返回当前K线的高点;其余情况均返回NaN。 - 对于
pivotlow(leftbars, rightbars):仅当当前K线的低点,同时满足「比左侧leftbars根K线的所有低点都更低」且「比右侧rightbars根K线的所有低点都更低」时,才会返回当前K线的低点;其余情况均返回NaN。
多数K线返回NaN的原因
市场中绝大多数K线都无法成为指定区间内的绝对极值——要么左侧存在更高的高点/更低的低点,要么后续右侧会出现更高的高点/更低的低点,只有极少数K线能同时满足左右区间的极值条件,因此大部分K线都会返回NaN。
实现“每根K线显示范围内高低点”的方案
若你需要让每根K线都返回其leftbars/rightbars范围内的最高值或最低值,应使用 ta.highest() 或 ta.lowest() 函数:
ta.highest(leftbars + rightbars + 1):返回当前K线及其左右指定范围内的最高点(注意参数为区间总长度,例如leftbars=2、rightbars=2时,总长度为5)ta.lowest(leftbars + rightbars + 1):返回当前K线及其左右指定范围内的最低点
这类函数会为每根K线返回对应区间的极值,不会返回NaN(仅当区间内数据不足时例外)。
内容的提问来源于stack exchange,提问作者Web1123
相关产品推荐
相关产品推荐

