相对市场波动率
过去 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) |
调用脚本 |
运行效果: