如何用python获取美股财报日历
自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获取美股财报日历相关推荐
- 使用python获取美股行情数据
使用python获取美股GME一月数据,包括开盘价.收盘价.最高价.最低价.成交量等 工具包:pandas_datareader 环境安装 pip install pandas_datareader ...
- 用python做通讯录包括姓名地址qq_我是如何用Python获取整个学校女生电话和QQ?技术撩妹...
前言: 这个没什么技术难度,懂爬虫的人和程序员都可以用学的语言写出来 只是很多安全问题的存在,的确影响着我们的生活, 希望大家可以认识到一些网站的后台密码的规则与自己的安全性 简单的说,就是是程序员的 ...
- 如何用python获取通达信数据_Python读取通达信本地数据
一.介绍 python获取股票数据的方法很多,其中 Tushare 财经数据接口包很好用,当然,也可以通过通达信本地的数据获取,这样更为方便. 日线数据存在这路径下 D:\通达信\vipdoc\sh\ ...
- 如何用python获取文献_[python]eutilities获取文献题录
之前这篇文章(路人乙小明:用entrez eutilities来查pubmed文献)提过如何利用entrez eutilities查找文献.当时在最后面获取论文摘要和题录的部分直接用了text的模式. ...
- 如何用Python获取基金行情并分析年度表现优异基金,解锁赚钱秘密?
本文转载自公众号:数人之道 若需要本文所有源代码文件及数据可视化结果文件,请扫描下方二维码关注『数人之道』公众号,回复 2021基金 获取. 昨天是 2022 年工作日的第一天,同时也是国内证券市场的 ...
- python实时股票数据折线图_如何用python获取实时的股票数据?
您需要具备以下指示(以Python为例) 1.相关模块及应用原因 requests模块:用于想接口发送请求使用 multiprocessing模块:因为股票数量大单个循环发送请求效率太低,建议进行并发 ...
- 如何用python获取和保存B站历史播放记录
为什么要保存 B 站视频的播放记录呢? 因为 B 站的历史记录,最多保存 3 个月,超过 3 个月自动清除.所以我专门写一个脚本,将历史记录导出,保存在数据库中,一来是是以备以后需要时能够找到,二来也 ...
- python美国股票数据api_5分钟学会用Python获取美股股票数据
在以前几篇对股票数据做分析和预测的文章后,很多读者对如何获取股票数据很有兴趣.下面就介绍下美股的历史数据获取api来回馈读者. 美股的历史数据获取api 众所周知,Yahoo财经废掉了他们的历史数据a ...
- python读取文件最后几行_如何用python获取文件的最后一行,文件可能会比较大
展开全部 #!/usr/bin/env python import os import sys def get_last_n_lines(logfile, n): blk_size_max = 409 ...
最新文章
- 在Javascript中使用面向对象的编程
- java 程序运行时注入方法_Spring入门(九):运行时值注入
- DreamWeaver下如何应用CSS样式
- 神策游戏解决方案:赋能游戏产业精品化研运升级
- C/C++extern关键字
- c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数
- 我们学的技术会过时吗?甚至被淘汰?
- 嵌入式linux+io+优化,嵌入式Linux系统内存优化使用方法研究
- 天池csv转成grt代码里的luna的csv,pandas库来操作csv文件(pd.DataFrame,pd.concat,pd.Series,to_csv等)实现
- 计算机网络-交换机配置
- Linux系统编程(28)——线程间同步
- RTSP-传送ACC音频文件
- 黑马java idea (据说是完整的)网盘
- Docker——Dockerfile构建镜像
- EtherCAT主站SOEM源码解析----ecx_siiPDO()
- 海桂嘉积中学2021高考成绩查询,圆梦行动 “我想做记者,我想学计算机” 屯昌文武山村“高考姐妹花”的美好心愿...
- 2018 年的第一次福利
- Android 高德地图 自定义Location小蓝点
- 火山视窗opencv计算机视觉入门
- MIKE 21 教程 1.3 网格搭建界面介绍之网格生成 (Mesh Generator 工具)
热门文章
- 怎样实现随机抽题php,ppt VBA 实现随机抽题
- WinRAR显示离购买许可只剩xx天
- Python画海绵宝宝、小猪佩奇、皮卡丘
- VS2010 学习C++动态链接库的创建与使用(带实例代码)
- 雄迈发布首款视频处理器芯片XM350AI,在安防人工智能领域取得多项第一
- 论文阅读笔记《Fine-tuning Deep Neural Networks in Continuous Learning Scenarios》
- 机组配对算法matlab,基于MATLAB的风力发电机组控制算法的研究 - 北极星风力发电网...
- 关于Qt5.14,设置QTextEdit添加背景图问题
- halcon第一讲:基本操作
- IDEA插件离线下载安装