12 KiB
风险模型 / 风险矩阵
TSRM_RiskMatrix
声明:class
风险矩阵计算框架
fFactorRet
声明:field
因子收益率(%)
可见性:public
类型:array
fSpecificRet
声明:field
特异性收益率(%)
可见性:public
类型:array
fConstName
声明:field
国家因子名称 国家因子
可见性:public
类型:string
fIndustry
声明:field
行业因子名称
可见性:public
类型:array
fStyle
声明:field
风格因子名称
可见性:public
类型:array
fEvalStockValue
声明:field
计算股票市值的字符串表达式
可见性:public
类型:string
fEvalIndustry
声明:field
获取行业名称的字符串表达式
可见性:public
类型:string
fEvalStyle
声明:field
获取风格因子值的字符串表达式
可见性:public
类型:string
ffr_Cov_Half
声明:field
计算因子收益率协方差的加权半衰期 504
可见性:public
类型:integer
ffr_Cov_Lag
声明:field
因子收益率协方差 newey-west 调整的滞后期 2
可见性:public
类型:integer
ffr_IF_Eigen
声明:field
是否进行 eigenfactor 调整 False
可见性:public
类型:bool
fsr_Half
声明:field
计算特质收益率方差的加权半衰期 84
可见性:public
类型:integer
fsr_NW_Lag
声明:field
特质收益率方差的 newey-west 调整的滞后期 5
可见性:public
类型:integer
fsr_IF_Struct
声明:field
是否进行结构化调整 True
可见性:public
类型:bool
fsr_SH_q
声明:field
特质收益率方差的贝叶斯收缩的经验系数 q 1
可见性:public
类型:real
ffr_Data_Len
声明:field
计算因子收益率协方差矩阵时需要的数据长度 252
可见性:public
类型:integer
fsr_Data_Len
声明:field
计算特质收益率方差的数据长度 252
可见性:public
类型:integer
fIfGrid
声明:field
是否启用网格 True
可见性:public
类型:bool
fIfLimitGridN
声明:field
是否限制网格个数 True
可见性:public
类型:bool
fGridN
声明:field
网格数 3
可见性:public
类型:integer
ffrCov
声明:field
因子收益率协方差矩阵,含调整过程
可见性:public
类型:array
fFinalFRCov
声明:field
最终的因子收益率协方差矩阵
可见性:public
类型:array
main(begt, endt, index_id)
声明:function
一般来说,用户直接调用该函数就可以计算因子收益率协方差矩阵和特质收益率方差
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
begt |
datetime | 开始日,日期类型,获取因子收益率和特质收益率的开始日期 |
endt |
datetime | 截止日,日期类型,获取因子收益率和特质收益率的截止日期 |
index_id |
string | 指数代码,字符串,获取对应指数成分的因子收益率和特质收益率 |
calFRCov()
声明:function
计算每一期因子收益率的协方差和各种调整后的协方差
可见性:public
calSRVar()
声明:function
计算每一期股票特质收益率的方差
可见性:public
getStockValue(endt, stockarr)
声明:function
计算股票列表在截止日的流通市值
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
endt |
datetime | 截止日,日期类型 |
stockarr |
array | 一维数组,股票列表 |
getFRSR(begt, endt, index_id)
声明:function
获取因子收益率和股票特质收益率数据,根据所给参数, 使用内置算法计算因子收益率和特
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
begt |
datetime | 开始日,日期类型,获取因子收益率和特质收益率的开始日期 |
endt |
datetime | 截止日,日期类型,获取因子收益率和特质收益率的截止日期 |
index_id |
string | 指数代码,字符串,获取对应指数成分的因子收益率和特质收益率 |
neweyWest1(data, q, tao, ifvar, cov_var)
声明:function
协方差矩阵或方差的 NeweyWest 调整
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 二维表,需要计算协方差矩阵的原始数据,列数代表变量个数,行数代表样本长度 |
q |
integer | Integer, Newey West 调整的最大滞后期数 |
tao |
integer | Integer,协方差的指数加权的半衰期 |
ifvar |
boolean | Bool,是否方差调整,真表示做方差调整,假表示做协方差调整 |
cov_var |
array | 二维表,Newey West 调整前的协方差矩阵 |
neweyWest2(data, q, tao, vol_q, vol_tao, ifvar, cov_var)
声明:function
协方差矩阵或方差的 NeweyWest 调整,与 NeweyWest1 的差别主要是:
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 二维表,需要计算协方差矩阵的原始数据,列数代表变量个数,行数代表样本长度 |
q |
integer | Integer,相关系数的 Newey West 调整的最大滞后期数 |
tao |
integer | Integer, 相关系数的指数加权的半衰期 |
vol_q |
integer | 方差的 Newey West 调整的最大滞后期数 |
vol_tao |
integer | 方差的指数加权的半衰期 |
ifvar |
boolean | Bool,是否方差调整,真表示做方差调整,假表示做协方差调整 |
cov_var |
array | 二维表,Newey West 调整前的协方差矩阵 |
eigenFactor(cov, t, m_times, a, rand_data)
声明:function
因子收益率协方差矩阵的 eigenfactor 调整
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
cov |
array | 因子收益率协方差矩阵 |
t |
integer | Integer,模拟产生的数据长度 |
m_times |
integer | Integer,模拟次数 |
a |
real | Real,放缩经验系数 |
rand_data |
array | Array,模拟随机数据,用于测试算法的正确性,因为无法指定随机数生成的一致性, 只能通过传递确定的数据当作随机数据计算,用户不需要使用该参数 |
volR_B(f, sigma, weights)
声明:function
计算波动率状态调整所需的 Bias 数据
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
f |
array | 一维数组,当期收益率 |
sigma |
array | 一维数组,期初预测标准差 |
weights |
array | 一维数组,权重 |
volatility_Regime(cov_var, b, tao)
声明:function
对协方差矩阵或方差执行波动率状态调整
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
cov_var |
array | 二维表,协方差矩阵 |
b |
array | 一维数组,Bias 统计量序列 |
tao |
integer | Integer,半衰期 |
structureAdjustment(var, ret, factor, e_0, industry, styles)
声明:function
股票特质收益率方差的结构化调整
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
var |
array | 股票特质收益率方差向量或方差矩阵 |
ret |
array | 二维数组,股票特质收益率 |
factor |
array | 二维数组,因子值 |
e_0 |
real | Real,调整系数 |
industry |
array | 一维数组,行业名称 |
styles |
array | 一维数组,风格因子名称 |
bayesian_Shrinkage(var, capital, n_group, q)
声明:function
股票特质收益率方差的贝叶斯收缩调整
可见性:public
| 参数 | 类型 | 说明 |
|---|---|---|
var |
array | 股票特质收益率方差估计结果 |
capital |
array | 一维数组,市值 |
n_group |
integer | Integer,分组数 |
q |
real | Real,经验系数 |
tsrm_StockSWIndustryNameLv1()
声明:function
使用 mf_industry 接口获取行业名称
可见性:public
tsrm_StockSWIndustryIDLv1()
声明:function
利用 TSRM_StockSWIndustryNameLv1 获取新申万一级行业分类标准下的行业名称,返回对应
可见性:public
示例
范例01:调用示例
BegT := 20210104T;
EndT := 20210106T;
IndexID := "SH000300";
mfm := new TSRM_RiskMatrix();
mfm.FFR_IF_Eigen := false; //不进行特征值调整
mfm.FSR_IF_Struct := false; //不进行结构化调整
mfm.Main(BegT,EndT,IndexID);
return
array('因子协方差矩阵':mfm.FFinalFRCov,'特质收益方差':mfm.FFinalFSRVar);
范例02:利用样例数据计算风险矩阵 (运行时间大概是 3 到 5 分钟)
FactorRet := TSRM_Sample_Data(1); //获取因子收益样例数据
SpecificRet := TSRM_Sample_Data(2); //获取特质收益样例数据
mfm := new TSRM_RiskMatrix();
mfm.FFactorRet := FactorRet;
mfm.FSpecificRet := SpecificRet;
mfm.FFR_IF_Eigen := false; //不进行特征值调整
mfm.FSR_IF_Struct := false; //不进行结构化调整
mfm.Main();
return
array('因子协方差矩阵':mfm.FFinalFRCov,'特质收益率方差':mfm.FFinalFSRVar);