msumTopN
Syntax
msumTopN(X, S, window, top, [ascending=true])
Please see Moving TopN Functions (mTopN functions) for the parameters and windowing logic.
Details
After stably sorting S in the specified ascending order, the function calculates the sum of the first top elements of X in the sliding window.
Examples
$ X = 1..7
$ S = 0.3 0.5 0.1 0.1 0.5 0.2 0.4
$ msumTopN(X, S, 4, 2)
[1,3,4,7,7,7,10]
$ X = NULL 1 2 3 4 NULL 5
$ S = 3 5 1 1 5 2 4
$ msumTopN(X, S, 4, 2)
[,1,2,5,5,5,3]
$ X = matrix(1..5, 6..10)
$ S = 2022.01.01 2022.02.03 2022.01.23 2022.04.06 2021.12.29
$ msumTopN(X, S, 3, 2)
#0 |
#1 |
---|---|
1 |
6 |
3 |
13 |
4 |
14 |
5 |
15 |
8 |
18 |
$ 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)
$ msumTopN(X, S, 3, 2)
#0 |
#1 |
---|---|
1 |
6 |
3 |
13 |
4 |
14 |
5 |
15 |
8 |
18 |
A table with columns code, date, close and 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 |
50 |
107 |
APPL |
2020.01.03 |
55 |
100 |
IBM |
2020.01.04 |
75 |
100 |
APPL |
2020.01.05 |
84 |
108 |
IBM |
2020.01.06 |
46 |
103 |
APPL |
2020.01.07 |
100 |
101 |
IBM |
2020.01.08 |
96 |
100 |
APPL |
2020.01.09 |
84 |
102 |
IBM |
2020.01.10 |
60 |
107 |
APPL |
2020.01.11 |
40 |
103 |
IBM |
2020.01.12 |
92 |
105 |
APPL |
2020.01.13 |
61 |
106 |
IBM |
2020.01.14 |
86 |
107 |
APPL |
2020.01.15 |
41 |
102 |
IBM |
2020.01.16 |
85 |
103 |
APPL |
2020.01.17 |
72 |
105 |
IBM |
2020.01.18 |
46 |
108 |
APPL |
2020.01.19 |
25 |
100 |
IBM |
2020.01.20 |
114 |
102 |
APPL |
2020.01.21 |
50 |
104 |
Calculate the sum of the closing prices of the top 3 records with the highest trading volume in the window for each stock.
$ select code, date, msumTopN(close, volume, 5, 3, false) from t context by code
code |
date |
msumTopN_close |
---|---|---|
APPL |
2020.01.03 |
100 |
APPL |
2020.01.05 |
208 |
APPL |
2020.01.07 |
309 |
APPL |
2020.01.09 |
311 |
APPL |
2020.01.11 |
311 |
APPL |
2020.01.13 |
311 |
APPL |
2020.01.15 |
309 |
APPL |
2020.01.17 |
313 |
APPL |
2020.01.19 |
313 |
APPL |
2020.01.21 |
315 |
IBM |
2020.01.02 |
107 |
IBM |
2020.01.04 |
207 |
IBM |
2020.01.06 |
310 |
IBM |
2020.01.08 |
307 |
IBM |
2020.01.10 |
307 |
IBM |
2020.01.12 |
305 |
IBM |
2020.01.14 |
312 |
IBM |
2020.01.16 |
312 |
IBM |
2020.01.18 |
315 |
IBM |
2020.01.20 |
314 |
Related function: msum