mcorrTopN

语法

mcorrTopN(X, Y, S, window, top, [ascending=true], [tiesMethod='oldest'])

参数说明和窗口计算规则请参考:mTopN

详情

在给定长度(以元素个数衡量)的滑动窗口内,根据 ascending 指定的排序方式将 XY 按照 S 进行稳定排序后,取前 top 个元素,然后计算 YX 的相关性。

返回值

计算结果为 DOUBLE 类型,形式同输入参数。

例子

以 IBM 股票为例,构造连续 6 个交易日的指数收益率、个股收益率和成交量数据:

symbol = take(`IBM, 6)
tradeDate = 2024.01.02 2024.01.03 2024.01.04 2024.01.05 2024.01.08 2024.01.09
indexRet = [0.6, 1.1, -0.2, 0.9, 1.3, 0.4]
stockRet = [0.9, 1.6, 0.4, 0.2, 0.2, 0.4]
tradeVolume = [520, 860, 610, 940, 650, 880]

stockDaily = table(symbol, tradeDate, indexRet, stockRet, tradeVolume)
stockDaily;

输出结果:

symbol tradeDate indexRet stockRet tradeVolume
IBM 2024.01.02 0.6 0.9 520
IBM 2024.01.03 1.1 1.6 860
IBM 2024.01.04 -0.2 0.4 610
IBM 2024.01.05 0.9 0.2 940
IBM 2024.01.08 1.3 0.2 650
IBM 2024.01.09 0.4 0.4 880

在最近 4 个交易日内,选取成交量最高的前 2 个交易日,计算指数收益率(indexRet)和个股收益率(stockRet)的相关性:

mcorrTopN(X=indexRet, Y=stockRet, S=tradeVolume, window=4, top=2, ascending=false)
// output: [ , 1, 1, 1, 1, -1]
  • tradeVolume 用于筛选成交最活跃的交易日;

  • 对 2024.01.09 的数据而言,最近 4 日窗口中成交量最高的两个交易日对应样本为 (0.9, 0.2) 和 (0.4, 0.4),它们的相关系数为 -1。

相关函数:mcorr