mavgTopN
New in version 2.00.4.
语法
mavgTopN(X, S, window, top, [ascending=true], [tiesMethod=’oldest’])
参数说明和窗口计算规则请参考: mTopN 系列
详情
在给定长度(以元素个数衡量)的滑动窗口内,根据 ascending 指定的排序方式将 X 按照 S 进行稳定排序后,取前 top 个元素计算平均值。
例子
$ X = 1..7
$ S = 0.3 0.5 0.1 0.1 0.5 0.2 0.4
$ mavgTopN(X, S, 4, 2)
[1,1.5,2,3.5,3.5,3.5,5]
$ X = NULL 1 2 3 4 NULL 5
$ S = 3 5 1 1 5 2 4
$ mavgTopN(X, S, 4, 2)
[,1,2,2.5,2.5,2.5,3]
$ X = matrix(1..5, 6..10)
$ S = 2022.01.01 2022.02.03 2022.01.23 2022.04.06 2021.12.29
$ mavgTopN(X, S, 3, 2)
#0 |
#1 |
---|---|
1 |
6 |
1.5 |
6.5 |
2 |
7 |
2.5 |
7.5 |
4 |
9 |
$ X = matrix(1..5, 6..10)
$ S = matrix(2022.01.01 2022.02.03 2022.01.23 NULL 2021.12.29,NULL 2022.02.03 2022.01.23 2022.04.06 NULL)
$ mavgTopN(X, S, 3, 2)
#0 |
#1 |
---|---|
1 |
|
1.5 |
7 |
2 |
7.5 |
2.5 |
7.5 |
4 |
8.5 |
给定的行情数据表包含四个列:股票代码(code)、交易日期(date)、收盘价(close)和交易量(volume)。
$ t = table(take(`IBM`APPL, 20) as code, 2020.01.01 + 1..20 as date, rand(100,20) + 20 as volume, rand(10,20) + 100.0 as close)
code |
date |
volume |
close |
---|---|---|---|
IBM |
2020.01.02 |
114 |
107 |
APPL |
2020.01.03 |
66 |
106 |
IBM |
2020.01.04 |
36 |
106 |
APPL |
2020.01.05 |
52 |
101 |
IBM |
2020.01.06 |
28 |
100 |
APPL |
2020.01.07 |
55 |
108 |
IBM |
2020.01.08 |
54 |
106 |
APPL |
2020.01.09 |
103 |
106 |
IBM |
2020.01.10 |
94 |
104 |
APPL |
2020.01.11 |
82 |
102 |
IBM |
2020.01.12 |
98 |
103 |
APPL |
2020.01.13 |
118 |
101 |
IBM |
2020.01.14 |
61 |
105 |
APPL |
2020.01.15 |
43 |
105 |
IBM |
2020.01.16 |
41 |
104 |
APPL |
2020.01.17 |
111 |
106 |
IBM |
2020.01.18 |
119 |
103 |
APPL |
2020.01.19 |
24 |
107 |
IBM |
2020.01.20 |
22 |
109 |
APPL |
2020.01.21 |
26 |
103 |
对每支股票,在一个长度为5的窗口内,计算交易量最大的3条记录的平均收盘价。
$ select code, date, mavgTopN(close, volume, 5, 3, false) from t context by code
code |
date |
mavgTopN_close |
---|---|---|
APPL |
2020.01.03 |
106 |
APPL |
2020.01.05 |
103.5 |
APPL |
2020.01.07 |
105 |
APPL |
2020.01.09 |
106.6667 |
APPL |
2020.01.11 |
104.6667 |
APPL |
2020.01.13 |
103 |
APPL |
2020.01.15 |
103 |
APPL |
2020.01.17 |
104.3333 |
APPL |
2020.01.19 |
103 |
APPL |
2020.01.21 |
104 |
IBM |
2020.01.02 |
107 |
IBM |
2020.01.04 |
106.5 |
IBM |
2020.01.06 |
104.3333 |
IBM |
2020.01.08 |
106.3333 |
IBM |
2020.01.10 |
105.6667 |
IBM |
2020.01.12 |
104.3333 |
IBM |
2020.01.14 |
104 |
IBM |
2020.01.16 |
104 |
IBM |
2020.01.18 |
103.3333 |
IBM |
2020.01.20 |
103.6667 |
相关函数:mavg