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