自7月份开始,美股迎来二季度财报季,包含微软,特斯拉,AMD在内的行业翘楚纷纷公布了二季度财报,而且都超过市场预期。美股财报是美股投资者非常关注的数据资讯,本文将介绍如何用python获取财报日历。

什么是财报季节?

财报季节((earnings season))是上市公司发布其季度收入的时间段。财报季一般从每个季度的最后一个月(3月,6月,9月和12月)后的一两个星期开始。因此大多数上市公司在1月,4月,7月和10月中旬发布财报。

为什么关注财报?

对于美股投资者来说,财报非常重要,很多成熟型投资者会根据财报判断公司的内在价值,并调整投资组合。所以财报季也是市场交投非常活跃的时间段。对于分析师和媒体来说,公司财报从侧面反映了经济运行状况,每当重量级公司(例如苹果,特斯拉,美国铝业)公布财报后,都会登上金融媒体当天的头条。

很多财经媒体会密切追踪财报数据,并提供“财报日历(earnings calendar)”,与“财经日历”相似。下图是雅虎财经提供的“财报日历”,记录了股票ID,名称,预期每股收益和实际每股收益,以及惊喜百分比,即实际EPS超过预期EPS的百分比。通常情况下,投资者并不太关注实际EPS,而是关注实际EPS超过预期的程度,这代表了一种未来盈利的预期。

用python获取财报日历

我们使用三方库'yahoo_earnings_calendar'爬取数据,免去自己写爬虫的麻烦。

先在终端运行以下指令:

pip install yahoo_earnings_calendar

引入需要的库:

import datetime as dtimport yfinance
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.style as style
import seaborn as sns
from yahoo_earnings_calendar import YahooEarningsCalendar%matplotlib inline
style.use("fivethirtyeight")

获取指定日期的财报日历

# 选择日期
report_date = dt.datetime(2020, 7, 27)yec = YahooEarningsCalendar()earnings = yec.earnings_on(report_date)
earnings_df = pd.DataFrame.from_records(earnings)earnings_df

部分字段解释:

  • startdatetime: 财报电话会议时间,意义不大
  • startdatetimetype: 财报公布时间
    • TNS/TAS: 公布时间未知
    • BMO:盘前公布
    • AMC:盘后公布
  • epsestimate: 预期每股收益
  • epsactual: 实际每股收益

获取一段时间的财报日历

# 获取7月份已经公布的所有财报日历
date_from = dt.datetime(2020, 7, 1)
date_to = dt.datetime(2020, 7, 27)earnings = yec.earnings_between(date_from, date_to)
earnings_df = pd.DataFrame.from_records(earnings)earnings_df.head()

不妨让我们看看7月份已经公布的财报中,实际每股收益超预期排名前10的股票有哪些?

surprise_top10 = (earnings_df.loc[~earnings_df.epsactual.isnull()].sort_values("epssurprisepct", ascending=False).head(10))fig, ax = plt.subplots(figsize=(12, 7))
ax = sns.barplot("ticker", "epssurprisepct", data=surprise_top10, ax=ax)
ax.axhline(0, color="black", alpha=0.5)
ax.set_title("EPS Surprise Pct Top 10", loc="left", fontdict={"fontsize": 20})

排名第一的是大名鼎鼎的特斯拉(TSLA),截止到今年二季度,特斯拉已经连续四个季度盈利,二季度EPS更是达到2.18美元。不得不感慨,特斯拉在新能源汽车领域的霸主地位越发强大。

获取股票的历史财报日历

# 需要提供股票ID,这里获取特斯拉的财报历史
symbol = "TSLA"
earnings = yec.get_earnings_of(symbol)
earnings_df = pd.DataFrame.from_records(earnings)earnings_df.head(10)

结果不仅包括上市以来所有财报日历的数据,还包括未来四个季度的预期公布时间。我们把每次财报公布的时间点,绘制在价格曲线图上,观察财报是否对后续行情产生影响?

# 从雅虎财经获取历史数据
tsla = yfinance.Ticker("TSLA")
hist = tsla.history(period="max")# 选择一部分样本
date_from = dt.date(2017, 1, 1)
date_to = dt.date(2020, 7, 1)# 清洗数据
hist = hist[date_from:]
surprise = (earnings_df.assign(publish_date=lambda x: pd.to_datetime(x.startdatetime).dt.date).query("publish_date.between(@date_from, @date_to)").filter(["publish_date", "epssurprisepct"]).sort_values("publish_date", ascending=True).reset_index(drop=True))# 可视化
ax = hist.Close.plot(figsize=(12, 7))
text_ypos = np.linspace(200, 1400, len(surprise))for i, row in surprise.iterrows():if row["epssurprisepct"] > 0:color = "red"else:color = "green"ax.axvline(row["publish_date"], color=color, linewidth=0.8, linestyle="--")ax.annotate(f"{row['epssurprisepct']:.1f}%", (row["publish_date"], text_ypos[i]), ha="center")ax.set_ylim(0, 1600)
ax.axhline(color="black", alpha=0.5)
ax.set_xlabel("")
ax.set_ylabel("Surprise Percent")
ax.set_title("Does Earnings Surprise affect TSLA prices?", loc="left")

结论

本文介绍了什么是美股财报日历,以及如何使用python获取相关数据,包括3个方面:1. 获取单天的财报日历;2. 获取过去一段时间的财报日历;3. 获取单个股票的历史财报日历。

研究人员可以怎么利用这个数据呢?以下是一些简单的建议:

1. 写一个脚本,定时获取最新的财报日历,推送给投资美股的用户。

2. 根据每股收益是否超过预期,挑选基本面最好和最差的股票,构建投资组合。

3. 深入研究财报数据是否对股票价格走势产生深远影响。

【关于我们】

蜂鸟数据:开源金融数据库,聚合主流金融市场10000+时间序列,为广大金融从业者提供高质量的免费数据。我们的优势:1. 同时提供股票,外汇,商品期货的实时报价和历史数据;2. 提供高度统一的API接口,您可以把数据整合到自己的程序中,感兴趣可查看我们的API文档。

这是属于大数据的时代,蜂鸟数据的使命:用数据创造财富。如果您有建设性意见,欢迎给我们留言。

如何用python获取美股财报日历相关推荐

  1. 使用python获取美股行情数据

    使用python获取美股GME一月数据,包括开盘价.收盘价.最高价.最低价.成交量等 工具包:pandas_datareader 环境安装 pip install pandas_datareader ...

  2. 用python做通讯录包括姓名地址qq_我是如何用Python获取整个学校女生电话和QQ?技术撩妹...

    前言: 这个没什么技术难度,懂爬虫的人和程序员都可以用学的语言写出来 只是很多安全问题的存在,的确影响着我们的生活, 希望大家可以认识到一些网站的后台密码的规则与自己的安全性 简单的说,就是是程序员的 ...

  3. 如何用python获取通达信数据_Python读取通达信本地数据

    一.介绍 python获取股票数据的方法很多,其中 Tushare 财经数据接口包很好用,当然,也可以通过通达信本地的数据获取,这样更为方便. 日线数据存在这路径下 D:\通达信\vipdoc\sh\ ...

  4. 如何用python获取文献_[python]eutilities获取文献题录

    之前这篇文章(路人乙小明:用entrez eutilities来查pubmed文献)提过如何利用entrez eutilities查找文献.当时在最后面获取论文摘要和题录的部分直接用了text的模式. ...

  5. 如何用Python获取基金行情并分析年度表现优异基金,解锁赚钱秘密?

    本文转载自公众号:数人之道 若需要本文所有源代码文件及数据可视化结果文件,请扫描下方二维码关注『数人之道』公众号,回复 2021基金 获取. 昨天是 2022 年工作日的第一天,同时也是国内证券市场的 ...

  6. python实时股票数据折线图_如何用python获取实时的股票数据?

    您需要具备以下指示(以Python为例) 1.相关模块及应用原因 requests模块:用于想接口发送请求使用 multiprocessing模块:因为股票数量大单个循环发送请求效率太低,建议进行并发 ...

  7. 如何用python获取和保存B站历史播放记录

    为什么要保存 B 站视频的播放记录呢? 因为 B 站的历史记录,最多保存 3 个月,超过 3 个月自动清除.所以我专门写一个脚本,将历史记录导出,保存在数据库中,一来是是以备以后需要时能够找到,二来也 ...

  8. python美国股票数据api_5分钟学会用Python获取美股股票数据

    在以前几篇对股票数据做分析和预测的文章后,很多读者对如何获取股票数据很有兴趣.下面就介绍下美股的历史数据获取api来回馈读者. 美股的历史数据获取api 众所周知,Yahoo财经废掉了他们的历史数据a ...

  9. python读取文件最后几行_如何用python获取文件的最后一行,文件可能会比较大

    展开全部 #!/usr/bin/env python import os import sys def get_last_n_lines(logfile, n): blk_size_max = 409 ...

最新文章

  1. 在Javascript中使用面向对象的编程
  2. java 程序运行时注入方法_Spring入门(九):运行时值注入
  3. DreamWeaver下如何应用CSS样式
  4. 神策游戏解决方案:赋能游戏产业精品化研运升级
  5. C/C++extern关键字
  6. c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数
  7. 我们学的技术会过时吗?甚至被淘汰?
  8. 嵌入式linux+io+优化,嵌入式Linux系统内存优化使用方法研究
  9. 天池csv转成grt代码里的luna的csv,pandas库来操作csv文件(pd.DataFrame,pd.concat,pd.Series,to_csv等)实现
  10. 计算机网络-交换机配置
  11. Linux系统编程(28)——线程间同步
  12. RTSP-传送ACC音频文件
  13. 黑马java idea (据说是完整的)网盘
  14. Docker——Dockerfile构建镜像
  15. EtherCAT主站SOEM源码解析----ecx_siiPDO()
  16. 海桂嘉积中学2021高考成绩查询,圆梦行动 “我想做记者,我想学计算机” 屯昌文武山村“高考姐妹花”的美好心愿...
  17. 2018 年的第一次福利
  18. Android 高德地图 自定义Location小蓝点
  19. 火山视窗opencv计算机视觉入门
  20. MIKE 21 教程 1.3 网格搭建界面介绍之网格生成 (Mesh Generator 工具)

热门文章

  1. 怎样实现随机抽题php,ppt VBA 实现随机抽题
  2. WinRAR显示离购买许可只剩xx天
  3. Python画海绵宝宝、小猪佩奇、皮卡丘
  4. VS2010 学习C++动态链接库的创建与使用(带实例代码)
  5. 雄迈发布首款视频处理器芯片XM350AI,在安防人工智能领域取得多项第一
  6. 论文阅读笔记《Fine-tuning Deep Neural Networks in Continuous Learning Scenarios》
  7. 机组配对算法matlab,基于MATLAB的风力发电机组控制算法的研究 - 北极星风力发电网...
  8. 关于Qt5.14,设置QTextEdit添加背景图问题
  9. halcon第一讲:基本操作
  10. IDEA插件离线下载安装