700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【量化】实战获取Fama-French三因子模型的数据源

【量化】实战获取Fama-French三因子模型的数据源

时间:2022-11-07 02:27:50

相关推荐

【量化】实战获取Fama-French三因子模型的数据源

作者:幻好

来源: 恒生LIGHT云社区

本文主要基于恒有数社区获取Fama-French三因子模型所需数据源的过程实践。

原文: 【量化】通过Fama-French三因子模型选股,收益能达到多少?

Fama-French三因子模型简介

Fama-French三因子模型(以下简称“三因子模型”)是法玛和法兰奇在1990年代初提出来的,它认为理想状态下,资产的超额收益由市场收益、规模收益、价值收益三个部分组成。

采集数据源过程

注册恒有数平台

恒有数简介

恒有数金融数据社区( ),源自恒生的金融数据开放和可视化社区,旨在为量化投资爱好者、金融从业人员、高校师生、政府机构和财经媒体等人群提供专业的金融数据服务,满足不同用户丰富多样的数据分析和投资研究需求。

恒有数提供涵盖股票、基金、债券、期权期货、港股等金融数据(数据目录见附录1)。提供在线预览、在线下载和在线调试等功能,简单高效的API接口(接口语言包括HTTP、Python、MATLAB、Java),丰富的接口文档与帮助文档,使得用户可以方便快捷地获取数据。

未来,恒有数还会继续扩充专业数据,完善产品功能,不断提升服务能力。

注册并登录恒有数平台,获取数据接口请求Token,地址: /console/overAllView。

获取所需数据源

根据需求,需要获取以下数据字段:

交易日期:交易日期开盘价:当日股票股票开盘价格最高价:当日股票交易最高价格最低价:当日股票交易最低价格收盘价:股票收盘价格股票代码:股票的代码,上证股票以sh结尾,深证股票以sz结尾涨跌幅:复权之后的真实准确涨跌幅成交量:当日股票成交量成交额:当日股票成交额总市值:当日股票总股价换手率:当日股票换手比例是否交易:本月股票最后一个交易日是否交易是否涨停:本月股票最后一个交易日收盘是否涨停是否跌停:本月股票最后一个交易日收盘是否跌停市盈率TTM:最近12个月市盈率市净率:市净率,股价 / 最近期财报每股净资产

需要获取数据的接口如下:

1.1.2 交易日历 ( /datas/200/) 获取交易日时间 1.2.1 股票日行情( /datas/332/) 获取沪深日行情,包含昨收价、开盘价、最高价、最低价、收盘价、成交量、成交金额等数据; 1.2.3 股票月行情( /datas/334/) 获取沪深月行情,包含月前收盘价、月开盘价、月最高价、月最低价、月收盘价、月成交量、月成交金额等数据; 1.4.27 估值基本信息( /datas/406/) 利用定期报告中披露的财务指标对上市公司做估值分析,主要包括股息率、市净率、市销率、市现率等额指标,支持同时输入多个股票代码;

数据部分程序代码如下:

import hs_udata as hsimport pandas as pd# 获取从开始日期到目前日期的每个月的最后一个交易日def get_trade_dates(token, start_date):hs.set_token(token)trade_date = hs.trading_calendar(secu_market='83',if_trading_day='1',if_month_end='1',start_date=start_date)return trade_date# 获取记录A股上市、退市股票交易代码、股票名称、上市状态等信息;def get_stock_a(token):hs.set_token(token)# 默认取全部,1-上市,2-终止;listed_state = "1"fields = "secu_code,chi_name,hs_code,secu_market,listed_sector"stock_datas = hs.stock_list(listed_state, fields)return stock_datas# 获取 交易日期 股票行情,公司等信息def get_stock_month_trade(token, secu_code, trade_date):hs.set_token(token)# 获取股票交易信息# 获取数据:证劵代码,交易日期,开盘价,最高价,收盘价,涨跌幅,成交数量,成交额,换手率,涨跌停状态,交易状态stock_fields = "prod_code,trading_date,open_price,high_price,close_price,px_change_rate," \"business_amount,business_balance,turnover_ratio,up_down_status,turnover_status"stock_data = hs.stock_quote_daily(en_prod_code=secu_code,trading_date=trade_date,adjust_way=2,fields=stock_fields)# 获取公司估值等信息# 获取数据:证劵代码,交易日期,总市值,总市值(证监会算法),市净率PB(最新财报,LF),市盈率(最新年报,LYR)value_fields = "prod_code,total_market_value,total_market_value_zjh,pb_lf,pe_rate_lyr"value_data = hs.valuation_info(en_prod_code=secu_code,trading_date=trade_date,fields=value_fields)res_data = pd.merge(stock_data, value_data, how='left', on='prod_code')return res_data

执行程序获取到的结果如图所示:

总结

通过恒有数获取股票等金融数据,操作上手十分简单,大大提升了金融数据分析等应用的效率。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。