相对市场波动率

过去 N 日, 股票相对市场指数的收益波动率, 相对收益波动率越大, 股票相对全市场越容易走出不同走势。

计算方法:
相对市场波动率 =(股票涨幅 - 市场涨幅)的 N 日标准差 * sqrt(N 日)

以代码 600000 的股票数据为例,计算其 250 日相对沪深 300 的波动率。

代码示例:


A

1

600000

2

2024-01-01

3

2024-12-31

4

=call("adjustprice.splx", "", call("loadkday.splx", A1, A2,A3) )

5

=call("loadkindex.splx",399300,A2,A3)

6

250

7

=A4.derive((close-close[-1])/close[-1]:pctChg).keys(tdate)

8

=A5.derive((close-close[-1])/close[-1]:pctChg).keys(tdate)

9

=join(A7:c1;A8:c2)

10

=A9.new(c1.code,c1.tdate,c1.pctChg-c2.pctChg:r_change).sort(tdate)

11

=A10.new(code,tdate,sqrt(var@s(r_change[1-A6:0]))*sqrt(A6):RMV)

A1-A5 读取股票数据和沪深 300 数据

A6 输入时间周期

A7-A8 计算 600000 股票涨跌幅和市场涨跌幅

A9 将两份数据按照日期关联

A10 计算相对涨跌幅,并按日期排序

A11 计算 250 日相对市场波动率

..

为了使用方便,可以封装成脚本供调用。

脚本代码:


A

1

=data1.derive((close-close[-1])/close[-1]:pctChg).keys(tdate)

2

=data2.derive((close-close[-1])/close[-1]:pctChg).keys(tdate)

3

=join(A1:c1;A2:c2)

4

=A3.new(c1.code,c1.tdate,(c1.pctChg - c2.pctChg):r_change).sort(tdate)

5

=A4.new(code,tdate,sqrt(var@s(r_change[1-n:0]))*sqrt(n):RMV)

脚本名保存为 rmv.splx。

脚本参数:

data1

序表,某支股票的日线数据

data2

序表,指数数据

n

数字,时间周期

返回数据集结构:

code

股票代码

tdate

日期

RMV

相对市场波动率

例如,调用脚本计算浦发银行 2024 年相对沪深 300 的波动率,n 取 250。


A

B

计算出源数据

6

=call("rmv.splx",A4,A5,250)

调用脚本

运行效果:

..