-
更新日志数据目录说明
-
用户注册获取订阅数据
-
访问网站直接下载数据通过SeaDrive下载数据
-
-
行业因子说明风格因子说明国家因子说明
-
功能介绍数据准备工具包安装功能参数配置风险因子数据格式转换接口风险因子体系相关数据计算接口个股风险事件分析
方案介绍
MSG是财富引擎公司开发的一款量化投资研究工具,它可提供因子数据帮助量化投资者对持有资产进行归因,以及对资产的收益/风险进行预测。MSG的因子库基于中国市场特色研发,包含股票、债券与基金,打造适合中国市场的投资研究标准。 用户注册
重要提示: 用户注册,数据权限开通,以及下载流程如图所示:
更新日志
- 对2014-01-02至2014-01-08和2021-07-29至2021-08-05行业因子调整期间的行业因子暴露进行了数据清理。
- 1.支持读取因子暴露和协方差矩阵包含国家因子的因子四元组数据。
- 限制pandas版本小于2.0.0,避免python新版本不兼容问题导致的bug。
- 1.新增factor_return数据,同时增加wiser_fetch_factor_return接口查询factor_return
- 2.load_quad_to_csv方法增加csv_output_path参数允许指定目录。
- 提供中国市场特色的风险因子,日频数据
- 支持Python接口,易于风险研究
- 提供中国市场特色的风险因子,月频数据
- 提供本地端,自动同步化工具。
数据说明
共享文件夹名称 | 备注 | 时间范围 |
---|---|---|
Case_HF25_SRAM_DAILY_TRIAL | 风险因子日频数据 | 2021-07-01 至2022-12-31 |
相关参考
您可以访问清华大学全球证券市场研究院相关网站并下载《中国风险因子白皮书》
用户注册
1. 访问 https://oss.wealthengine.cn/ 主页
2. 点击 “”,进入注册页面
输入邮箱地址,初始密码 (首次登录后,系统会要求修改这个初始密码), 点击注册按钮,完成用户注册。
正式登录查看和使用数据之前,请务必联系我方对接的商务人员,以便我们为您开通相应的数据访问权限。获取订阅数据
我们为您提供以下两种方式获取数据:
访问网站直接下载数据
无需本地安装软件,访问网站即可下载数据,适合实验性研究和产品试用。
1.访问登录https://oss.wealthengine.cn/
登录成功后, 点击左侧菜单,右侧所列出的文件夹即为我们为您提供的数据。
2.选择文件,点击下载按钮进行数据文件的下载
通过SeaDrive下载数据
批量数据自动同步下载客户端
如果您需要批量下载数据,我们为您提供了自动同步数据的客户端,推荐使用 SeaDrive 客户端进行数据同步,它是一款安全、可靠、快速的企业云盘,注重可靠性和性能。支持 Windows, Mac, Linux等多个平台。支持文件同步或者直接挂载到本地访问。
官方网站: https://www.seafile.com/home/
1.SeaDrive挂载盘客户端下载和安装
点击如下链接,下载Seadrive 挂载盘客户端。
🔗下载地址:https://www.seafile.com/download/
如果您使用的是Windows 10或以上版本用户,推荐使用SeaDrive 2.0 或更新的版本。在按照下载页面上的说明下载安装了挂载盘客户端之后,你可以双击桌面上的 SeaDrive 图标来运行挂载盘客户端。程序将会请你选择一个盘符。默认情况下会使用 "S:" 作为挂载盘的盘符。2.登录远程文件服务器
云盘网址:将如下地址填入服务器地址 🔗 https://oss.wealthengine.cn
邮箱/用户名:就是您在 “”页面注册过的邮箱地址(务必使用注册时的邮箱进行登录)
在登录成功之后, Seadriver 会自动从服务器上获取你所订阅资料库文件列表。
SeaDrive 会运行在操作系统后台,显示隐藏菜单中可以看到如下图标,表示SeaDrive正常运行中。双击该图标,挂载盘目录会被自动打开,可以看到资料库和文件列表。
挂载盘里面的文件和目录可能在三种状态:只在云端,完全同步,或者部分同步。
数据结构说明
您所订阅的数据文件是以Parquet格式进行保存的,Parquet是一种开源列式存储文件,其数据集以嵌套结构存储,具有高效的读取能力,可用于快速查询。
Parquet采用了高效的压缩编码,可以极大降低磁盘存储空间,降低存储成本。
更多关于Parquet文件格式的知识,您可以访问 https://parquet.apache.org/
数据文件包括五种数据结构:
因子暴露(characteristic_exposure)
因子暴露数据表包含A股沪深市场所有上市个股的因子暴露数据。因子是能够解释资产收益变动的一组共同特征, 包括对数市值因子、贝塔因子、农林牧渔行业因子等。因子暴露数据反映了资产收益受因子的影响程度,在因子暴露表中每只个股都有对应的因子暴露。 因子暴露数据经过异方差调整,通过 可以将因子暴露还原回异方差调整前的结果。 个股风格因子暴露经过去极值和标准化处理,因子暴露值越大其收益受到因子影响程度越高;异方差调整前,个股行业因子只在其所属行业上暴露为1, 其他行业上暴露为0,个股国家因子暴露均为1。因子暴露数据可供投资者更好地了解资产的风险特征。
字段 | 类型 | 描述 |
---|---|---|
case | string | 案例代码 |
date | string | 日期 |
characteristic | string | 因子代码 |
exposure | float | 因子暴露 |
code | string | 资产代码 |
type | string | 因子类别 |
因子收益率(characteristic_return)
因子收益数据包含全部风险因子的每日收益率。因子收益数据通过构造因子复制模拟投资组合得到。因子收益数据可以帮助投资者了解市场风格的变化,也可以帮助投资者进行归因分析。
字段 | 类型 | 描述 |
---|---|---|
case | string | 案例代码 |
date | string | 日期 |
characteristic | string | 因子代码 |
return | float | 因子收益率 |
type | string | 因子类别 |
因子协方差(characteristic_covariance)
因子协方差矩阵表包含行业因子、风格因子和国家因子的协方差矩阵数据。因子协方差矩阵反映了因子之间的联动关系,若两个因子协方差较低说明他们在市场上的表现相对独立,在这两个因子上的暴露可以分散化投资组合的整体风险。利用因子协方差矩阵和资产的因子暴露也可以得到资产之间的联动关系从而更好地分析管理投资组合。
字段 | 类型 | 描述 |
---|---|---|
case | string | 案例代码 |
date | string | 日期 |
source | string | 待比因子代码 |
target | string | 被比较因子代码 |
cov | float | 因子收益率协方差 |
个股特异性收益波动率(characteristic_idiosyncratic_variance)
个股特异性风险数据包含A股沪深市场所有上市个股的特异性风险。个股特异性风险是不受风险因子影响的个股特有的风险。 由于中国风险因子体系建模时使用了收缩乘子进行异方差调整,因此实际个股的年化特异性波动率等于 ,其中psi为个股特异性风险, scale为个股收缩乘子。
字段 | 类型 | 描述 |
---|---|---|
case | string | 案例代码 |
date | string | 日期 |
code | string | 资产代码 |
var | float | 个股特异性收益方差 |
个股异方差调整参数(characteristic_scale)
个股收缩乘子数据包含A股沪深市场所有上市个股的收缩乘子。收缩乘子是风险因子体系建模时进行异方差调整的权重, 收缩乘子的值等于 。
字段 | 类型 | 描述 |
---|---|---|
case | string | 案例代码 |
date | string | 日期 |
code | string | 资产代码 |
scale | float | 用于异方差性调整 |
注:因子暴露表和因子收益表包含历史上出现过的所有行业,因子协方差表由算法计算得到,其中仅包括算法使用到的行业。在使用数据前应先将选取时间段内每日在因子暴露数据中而不在因子协方差矩阵中行业因子剔除,然后将因子暴露数据中因子全为0的行业剔除,使每日因子暴露与因子协方差矩阵匹配。(推荐使用我们提供的we_factor_quad包进行以上风险因子数据的处理)
行业因子说明
行业因子使用申万一级行业分类,因子数量随时间变化。行业因子名称对照表如下:
序号 | 行业代码 | 行业名称 |
---|---|---|
1 | industry_Agriculture_Forestry_Farming_Fishing | 农林牧渔 |
2 | industry_Mineral | 煤炭 |
3 | industry_Chemical | 基础化工 |
4 | industry_Steel | 钢铁 |
5 | industry_Non_Ferrous_Metal | 有色金属 |
6 | industry_Building_Material | 建筑材料 |
7 | industry_Mechanical_Equipment | 机械设备 |
8 | industry_Electronic | 电子 |
9 | industry_Car | 汽车 |
10 | industry_Transport_Equipment | 交运设备 |
11 | industry_Information_Device | 信息设备 |
12 | industry_Home_appliance | 家用电器 |
13 | industry_Textile_and_Clothing | 纺织服饰 |
14 | industry_Light_manufacturing | 轻工制造 |
15 | industry_Biological | 医药生物 |
16 | industry_Public_Utility | 公用事业 |
17 | industry_Transportation | 交通运输 |
18 | industry_Real_Estate | 房地产 |
19 | industry_Financial | 金融服务 |
20 | industry_Trade_and_Business | 商贸零售 |
21 | industry_Community_Service | 社会服务 |
22 | industry_Information_Service | 信息服务 |
23 | industry_Bank | 银行 |
24 | industry_Non_Bank_Financial | 非银金融 |
25 | industry_Other | 综合 |
26 | industry_Building_Decoration | 建筑装饰 |
27 | industry_Electric_Equipment | 电力设备 |
28 | industry_Military | 国防军工 |
29 | industry_Computer | 计算机 |
30 | industry_Media | 传媒 |
31 | industry_Communication | 通信 |
32 | industry_Petroleum_and_Petrochemical | 石油石化 |
33 | industry_Environment | 环保 |
34 | industry_Beauty_Care | 美容护理 |
35 | industry_Food_and_Beverage | 食品饮料 |
风格因子说明
序号 | 因子代码 | 因子名称 | 因子描述 |
---|---|---|---|
1 | log_market | LOG CAP | 流通市值的自然对数(log(流通市值)) |
2 | beta | BETA | BETA值(股票超额收益率 和 市值加权指数收益率的回归系数) |
3 | log_std | Log Daily STD | log(日度标准差) |
4 | log_st_mean | Log Annualized Traded Value Ratio | log (ewm(换手率)), 半衰期为21个交易日 |
5 | rstr | Relative Strength | 相对强度(长期动量减短期动量,长期动量窗口252天滞后121天、 短期窗口11天,滞后11天) |
6 | reversal_short | Short Term Reversal | 短期反转(最近一个月加权累积对数日收益率) |
7 | gpm | Gross Profit Margin | 销售毛利率(主营业务收入-营业成本)/主营业务收入 |
8 | mbs | Moneyness Asset to Debt | 资产负债充裕性( log( 总资产/总负债) /总资产收益率波动性) |
9 | roe | Return on Equity | 股本收益率 (过去12个月净利润/净资产) |
10 | tagr | Total Asset Growth | 总资产增长率(近5年总资产对斜率回归取截距/平均总资产,取相反数) |
11 | log_bp | Log Book to Price | log BP (log(净资产/总市值)) |
12 | etopff | Predicted Earning to Price Filled | 预期未来一年盈利(以盈利填充)/股价 |
13 | ceg | Capital Expenditure Growth | 资本支出增长率(近五年资本支出对时间回归的斜率除平均资本支出,取相反数) |
14 | dtopff | Predicted Dividend to Price Filled | 预期未来一年平均分红(以过去十二个月分红平均填充)/股价 |
国家因子说明
序号 | 因子代码 | 因子名称 | 因子描述 |
---|---|---|---|
1 | country | 国家因子 | 国家因子代表在整个国家中影响所有股票的共同因子,对于每只个股取值相同 |
功能介绍
我们提供了基于 Python 3.9 开发的 FactorQuad 工具包,当您使用该工具包时,您将获得强大的风险管理和风险分析能力,它将帮助您更好地管理资产风险,用途包括:
- 风险因子数据格式转换
- 风险因子体系相关数据计算
- 个股风险事件分析
在风险因子数据格式转换部分,您可以选择使用 FactorQuad 工具包将获取到的数据转 换为 CSV 格式的文件,以便更加方便地查看和使用这些数据。不过,转换为 CSV 格式的文件 并非必须要做,您也可以直接使用并读取 Parquet 文件,详细请参考第五章的相关内容。 在风险因子体系相关数据计算部分,您可以使用 FactorQuad 工具包来计算资产的系统 性风险和特异性风险。通过风险因子数据的处理结果,可以确定各个因素对资产表现的影响 程度。这些数据可以帮助您了解资产在面对市场风险时的表现,并帮助您制定风险管理策略。 在个股风险事件分析部分,FactorQuad 工具包可以展示风险事件发生前后个股特异性 风险和系统性风险的大小,这有助于您更好地了解个股的表现,识别潜在的风险。 FactorQuad 工具包是一个功能强大的风险管理和分析工具,可以帮助您更好地管理资 产,减少潜在风险,并提高投资表现。
(功能示意图)
数据准备
使用 FactorQuad 工具包进行数据处理或分析之前,您需要完成如下数据准备工作,以下数据可以通过官网https://oss.wealthengine.cn下载或者从SeaDrive中获取,数据文件说明如下: 当您使用SeaDrive下载数据的时候,请手动点击相应的数据文件,使其同步到本地以便使用。
风险因子数据包括:
- 因子暴露(characteristic_exposure)
因子暴露数据20210701至20221231 | characteristic_exposure__HF25_SRAM_DAILY_TRIAL.gzip.parquet |
---|
- 因子收益率(characteristic_return)
因子收益率数据20210701至20221231 | characteristic_return__HF25_SRAM_DAILY.gzip.parquet |
---|
- 因子协方差(characteristic_covariance)
因子协方差20210701至20211231 | characteristic_covariance__HF25_SRAM_DAILY_TRIAL__from20210101to20211231.gzip.parquet |
---|---|
因子协方差20220101至20221231 | characteristic_covariance__HF25_SRAM_DAILY_TRIAL__from20220101to20221231.gzip.parquet |
- 个股特异性收益波动率(characteristic_idiosynscratic_variance)
个股特异性收益波动率数据20210701至20221231 | characteristic_idiosyncratic_variance__HF25_SRAM_DAILY_TRIAL.gzip.parquet |
---|
- 个股异方差调整参数(characteristic_scale)
个股异方差调整参数20210701至20221231 | characteristic_scale__HF25_SRAM_DAILY_TRIAL.gzip.parquet |
---|
其他行情数据
诸如收盘价,无风险利率等,此类数据需要您自行准备。
工具包安装
我们为您提供了基于 Python 3.9 的 FactorQuad 工具包,您只需在 Windows 命令行窗口或者 Linux shell 中运行此命令,即可完成安装。
若您安装了旧版的工具包,请先卸载旧版本的工具包:
pip uninstall we_report==0.0.1.9
pip uninstall we_factor_quad==0.5.0
按照顺序安装新版本的工具包:
pip install we_report==0.1.9
pip install we_factor_quad==0.6.0
注意:目前安装包仅在阿里云镜像进行了同步,请您设置镜像为阿里云 https://mirrors.aliyun.com/pypi/simple
功能参数配置
要使用FactorQuad提供的个股风险事件分析功能,您需要进行相关配置。在完成以上工具包的安装后,浏览至FactorQuad安装路径,您会看到factor_quad_settings.py文件,它通常位于:
C:\Users\user\AppData\Roaming\Python\Python39\site-packages\we_factor_quad
您可以使用任何类型的文本编辑器打开并编辑factor_quad_settings.py文件,相关配置的修改与功能对应参照相关说明。
风险因子数据格式转换接口
factor_quad_settings.py 配置参数说明
参数 | 参数解释 | 参数配置 |
---|---|---|
start_date | 开始时间 | 字符串对象,如'20210701' |
end_date | 结束时间 | 字符串对象,如'20210801' |
quad_from_local | 风险因子数据来源 | 默认为‘1’,读取和解析数据的来源为通过SeaDrive 挂载到本地的网络磁盘路径 “0”,读取和解析的数据来源为用户指定的本地磁盘路径 |
seadrive_local_path | 通过SeaDrive映射的网络磁盘路径 | 如果 quad_from_local 保持默认参数“1”时,此参数将会生效 |
msg_factor_case_name | msg因子系统名 | 风险因子版本名,如“HF25_SRAM_DAILY_TRIAL” |
接口:load_quad_to_csv
说明: 将因子数据的parquet文件转换为CSV文件
输入参数 | 参数解释 |
---|---|
csv_output_path | 指定输出保存为CSV格式文件的本地磁盘路径,默认为当前进程的工作目录(当前进程目录可通过os.getcwd( )查看)。 |
输出 | 输出说明 |
---|---|
None |
接口示例
# 导入we_factor_quad包中的文件格式转方法换
from we_factor_quad.equity_quad import factor_quad_equity
factor_quad_equity.load_quad_to_csv(csv_output_path=None)
风险因子体系相关数据计算接口
风险因子体系相关数据计算部分提供了清洗后的因子四元组和因子收益率数据,支持计算个股特异性风险和个股系统性风险。
factor_quad_settings.py 配置参数说明
参数 | 参数解释 | 参数配置 |
---|---|---|
start_date | 开始时间 | 字符串对象,如'20210701' |
end_date | 结束时间 | 字符串对象,如'20210801' |
quad_from_local | 风险因子数据来源 | 默认为‘1’,读取和解析数据的来源为通过SeaDrive 挂载到本地的网络磁盘路径 “0”,读取和解析的数据来源为用户指定的本地磁盘路径 |
seadrive_local_path | 通过SeaDrive映射的网络磁盘路径 | 如果 quad_from_local 保持默认参数“1”时,此参数将会生效 |
msg_factor_case_name | msg因子系统名 | 风险因子版本名,如“HF25_SRAM_DAILY_TRIAL” |
接口:create_factor_quad
说明:创建一个FactorQuad对象,可用于计算因子体系相关数据
输入参数 | 参数解释 |
---|---|
start_date | 开始时间 |
end_date | 结束时间 |
local_path | 通过SeaDrive 映射的网络磁盘路径 |
factor_system | 因子系统名,如“HF25_SRAM_DAILY_TRIAL” |
from_src | 风险因子数据来源,默认为‘1’,读取和解析数据的来源为通过SeaDrive 挂载到本地的网络磁盘路径 |
输出 | 输出说明 |
---|---|
FactorQuad类对象 | FactorQuad对象包含因子数据的全部内容,可用于计算个股风险。该对象包含如下属性:
|
接口示例
# 导入factor_quad包
from we_factor_quad.equity_quad.factor_quad_equity import FactorQuadEQ
# 导入配置文件参数
from we_factor_quad.factor_quad_settings import settings
start_date = settings.start_date
end_date = settings.end_date
local_path = settings.seadrive_local_path
factor_system = settings.msg_factor_case_name
from_src = settings.quad_from_local
# 获取FactorQuad对象
myquad = FactorQuadEQ.create_factor_quad(factor_system, start_date, end_date, from_src, local_path)
# 获取资产特异性值
myquad.psi_ts
# 获取因子协方差矩阵
myquad.sigma_ts
# 获取资产因子暴露值
myquad.beta_ts
# 获取资产缩放乘子值
myquad.scale_ts
接口:get_ivar
说明: 获取个股特异性风险
输入参数 | 参数解释 |
---|---|
None |
输出 | 输出说明 |
---|---|
ivar | 个股特异性风险的pandas.Series格式对象,索引为日期,股票代码双重索引,列为个股特异性风险 |
接口示例
myquad.get_ivar( )
接口:get_systematic_var
说明: 获取个股系统性风险
输入参数 | 参数解释 |
---|---|
beta_ts | factor_quad获取的因子暴露数据 |
输出 | 输出说明 |
---|---|
sys_var | 个股系统性风险的pandas.DataFrame格式对象,行索引为日期,列索引为股票代码 |
接口示例
beta_ts=myquad.beta_ts
myquad.get_systematic_var(beta_ts)
接口:wiser_fetch_factor_return
说明: 获取因子收益率
输入参数 | 参数解释 |
---|---|
start_date | 开始时间 |
end_date | 结束时间 |
seadrive_localpath | 通过SeaDrive 映射的网络磁盘路径 |
factor_system | 因子系统名,默认为“HF25_SRAM” |
输出 | 输出说明 |
---|---|
factor_return | 因子收益的pandas.DataFrame格式对象,行索引为日期,列索引为因子名称 |
接口示例
# 获取因子收益率
from we_factor_quad.data_api import wiser_fetch_factor_return
# 导入配置文件参数
from we_factor_quad.factor_quad_settings import settings
# 所有因子在给定日期区间内的因子收益率
# factor_return 结果中的因子名称和具体含义,请参考白皮书
start_date = settings.start_date
end_date = settings.end_date
seadrive_localpath = settings.seadrive_local_path
factor_system = settings.msg_factor_case_name
factor_return = wiser_fetch_factor_return(seadrive_localpath, start_date, end_date, factor_system)
# 获取factor_return信息
factor_return.info( )
个股风险事件分析
个股风险事件分析是利用风险因子数据计算资产特异性风险和系统性风险,从而对个股风险事件进行预警。
factor_quad_settings.py 配置参数说明
参数 | 参数解释 | 参数配置 |
---|---|---|
start_date | 开始时间 | 开始时间,'20210701' |
end_date | 结束时间 | 结束时间,'20210801' |
quad_from_local | 风险因子数据来源 | 默认为'1’,读取和解析数据的来源为通过SeaDrive 挂载到本地的网络磁盘路径 '0',读取和解析的数据来源为用户指定的本地磁盘路径 |
seadrive_local_path | 通过SeaDrive 映射的网络磁盘路径 | 如果 quad_from_local 保持默认参数“1”时,此参数将会生效 |
msg_factor_case_name | msg因子系统名 | 风险因子版本名,如'HF25_SRAM_DAILY_TRIAL' |
report_stock_codes | 风险分析个股代码 | 字符串列表,如['000002.SZ'] |
report_stock_names | 风险分析个股名称 | 字符串列表,用于报告中展示股票名,如['万科']。个股名称长度应与个股代码长度相同 |
接口:get_risk_report
说明:生成个股风险事件分析报告,调用该接口需要您在get_px_close api中提供收盘价日行情数据,详情请见行情数据准备章节get_px_close api。
输入参数 | 参数解释 |
---|---|
report_output_path | 指定报告输出的本地磁盘路径,默认为当前进程的工作目录,当前进程目录可通过os.getcwd( )查看。 |
输出 | 输出说明 |
---|---|
None |
接口示例
# 导入we_factor_quad包中的风控报告生成方法
from we_factor_quad.equity_quad.risk_control.stock_risk_control_daily import get_risk_report
from we_factor_quad.factor_quad_settings import StocksOutputReport, settings
# 运行风险事件分析报告程序
get_risk_report(report_output_path=None)
结果分析:
在指定的路径下查看stock_risk_report.xlsx得到完整个股风险事件分析报告。
报告字段说明:
列名 | 含义 |
---|---|
index | 日期 |
0Close | 收盘价 |
1msg_Vol | 资产波动率 |
2msg_iVol | 资产特异性波动率 |
3Forward_3M_Vol | 资产未来三个月波动率 |
4msg_iVol_pct | 资产特异性风险占总风险比重 |
可视化展示:
行情数据准备
为了生成个股风险事件分析报告,您需要提供行情数据,并通过修改data_api中的获取数据函数,以提供报告所需的行情数据。
get_px_close api准备
请您打开we_factor_quad目录中的data_api.py文件, 修改get_px_close函数使之输入开始日期和结束日期,返回个股收盘价数据。
输入参数start和end。start为返回收盘价的开始时间,end为返回数据的结束时间,格式为"年月日"8位字符串。
返回结果为A股日频收盘价数据,格式如下,返回结果行索引为datetime格式日期,列索引为股票代码。
- | 000001.SZ | 600000.SH |
- 2022-12-01 | 13.10 | 7.22 |
- 2022-12-02 | 12.90 | 7.23 |
- 2022-12-05 | 13.53 | 7.36 |
- 2022-12-06 | 13.43 | 7.36 |
您需要修改get_px_close函数内容使之能后获取符合以上格式和内容的收盘价数据。
添加技术支持群
您在使用过程中如果遇到技术问题,微信扫码回复:MSG添加我们的服务小助手。我们将为您提供快捷有效的支持服务。如果您有任何建议或者需求,也可以联系小助手,反馈给我们哦。