zigzag

语法

zigzag(HL, [change=10], [percent=true], [retrace=false], [lastExtreme=true])

参数

HL 数值向量或者矩阵。请注意,若 HL 为矩阵,则其行数不能少于2行,列数不能超过2列。

change 极值波动的最小阈值。

percent 布尔值,表示 change 是否是一个百分数。

retrace 是一个布尔值,默认为false。

  • true:change 当前值相对于前一次波动的回撤。

  • false:change 当前值相对于两端极值点间的变化。

注意:当 percent*=false 时, *retrace 的 true 值将不生效。

lastExtreme 布尔值,表示有多个连续且值相同的极值点时,是否输出最后一个极值点,默认为 true。

详情

zigzag 主要用于过滤掉 HL 中较小波动的值,只有满足条件的极值点会被输出。

HL 是向量,返回一个与 HL 长度相同的向量;若 HL 是矩阵,返回与 HL 行数相同的向量。

例子

$ t = table(1.1 2.3 4.45 3.67 4.9 as `low, 1.3 2.8 4.9 3.73 6.28 as `high)
$ HL = matrix(t[`low], t[`high])
$ zz = zigzag(HL, change=10, percent=true, retrace=false, lastExtreme=true)
$ zz;

0

1

2

3

4

1.2

4.45

3.73

4.9

$ HL = 1.2 3 3.1 14 14.5 14.7 25.0 17.8 19 10
$ zz = zigzag(HL, change=10, percent=true, retrace=false, lastExtreme=true)
$ zz;

0

1

2

3

4

5

6

7

8

9

1.2

25

10