作者:幻好

来源: 恒生LIGHT云社区

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

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

Fama-French三因子模型简介

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

采集数据源过程

注册恒有数平台

恒有数简介

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

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

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

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

获取所需数据源

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

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

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

  • 1.1.2 交易日历 ( https://udata.hs.net/datas/200/)

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

数据部分程序代码如下:

import hs_udata as hs
import 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

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

总结

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

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

  1. python量化——利用python构建Fama-French三因子模型

    工具介绍 在构建模型之前,首先介绍所需的工具. import pandas as pd import tushare as ts pro = ts.pro_api() import statsmode ...

  2. python量化:如何利用tushare构造FF三因子模型?

    Python量化:如何利用tushare构造FF三因子模型? FF三因子模型介绍 代码实现 从tushare调取数据 利用数据构建因子 总结 笔者是一枚大二菜狗,最近刚上完学院开的python金融量化 ...

  3. 一文教你看懂Fama-French三因子模型

    Fama-French三因子模型概述 Fama-French三因子模型(Fama-French 3-factor model,简称FF3) Fama和French 1992年对美国股票市场决定不同股票 ...

  4. 数据分析---Fama-French三因子模型

    大家好,今天带给大家一篇金融模型方面的python应用文章,在这篇文章中将会给大家介绍pandas和statsmodels.api,此外还会介绍Fama-French三因子模型的理论知识. 目录 Fa ...

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

    作者:幻好 来源: 恒生LIGHT云社区 Fama-French三因子模型 基本概念 Fama和French 1993年指出可以建立一个三因子模型来解释股票 回报率 .模型认为,一个 投资组合 (包括 ...

  6. Python量化交易06——Fama-French三因子模型(Rmt,SMB,HML)

    参考书目:深入浅出Python量化交易实战 本次带来的是著名的获得了诺贝尔奖的三因子模型. 因子模型介绍 Fama和French从可以解释股票收益率的众多因素中提取出了三个重要的影响因子,即市场风险溢 ...

  7. 第四章:经典量化策略集锦(第九篇:Fama-French 三因子模型应用 )

    导语:在CAPM 模型的基础上,再向大家讲述Fama-French 的三因子模型,并构建策略,实 际应用于 A 股市场. 一.策略阐述 Fama-French 三因子模型由来 Fama 和 Frenc ...

  8. python求因子代码_Python量化入门:饱受青睐的三因子模型「附代码及数据」

    代码及数据见文章最后. 主要内容: 一.CAPM的不足与三因子模型的诞生 二.三因子模型的原理 三.Python三因子模型选股实战 一.CAPM的不足与三因子模型的诞生 CAPM模型经历了大量的实证和 ...

  9. python量化策略——Fama-French三因子模型

    介绍:Fama-French三因子模型,是Fama和French 1992年对美国股票市场决定不同股票回报率差异的因素的研究发现,股票的市场的beta值不能解释不同股票回报率的差异,而上市公司的市值. ...

最新文章

  1. Linux_信号与信号量【转】
  2. python pdf-有没有好一点的读取 PDF 的 Python 包?
  3. 计算机基础知识与基本操作文档,计算机基础知识与基本操作——图文混排课件...
  4. 解密亚洲诚信如何做到HTTPS的最佳安全实践
  5. IntelliJ IDEA 修改包名
  6. appcan 微信支付
  7. Cache替换算法:LRU与LFU的区别
  8. 对于Ping的过程,你真的了解吗?
  9. 断言assert使用方法
  10. 云栖专辑 | 阿里开发者们的第8个感悟:在信息大爆炸的时代,保持专注度显得尤为可贵...
  11. CLR via C# 之管中窥豹(一)
  12. 修改 Mac 版 Safari、Chrome、FireFox、Opera 的 User-Agent
  13. 这个 Python 代码自动补全神器搞得我卧槽卧槽的
  14. 无法通过ip地址连接其它电脑的数据库,但是又可以ping通,错的不是配置,而是差了一个步骤
  15. java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据
  16. FPGA入门到精通系列1:数字电路基础知识
  17. 快捷连接 残差_残差网络解决了什么问题
  18. 自强不息系列之Java 实例 - 线程优先级设置
  19. typedef和define
  20. 网络编程I/O模型分析

热门文章

  1. mac下如何运行sh文件
  2. Hadoop及组件的安装
  3. Redis集群原理与容器化部署集群
  4. SSL_1597 石子合并问题
  5. 教师工作量计算系统 课程设计 C语言
  6. 十四五数字经济发展规划出台 数字化转型为企业带来新的发展机遇
  7. qt中调用matlab生成的动态库
  8. 远程桌面怎么记住登录计算机,电脑设置让远程桌面连接自动登录的方法
  9. Keil软件中没有stc系列的芯片如何解决
  10. 计算机网络管理员工作周记,计算机java开发实习周记20篇