通过yfinance访问金融数据—获取数据

这篇具有很好参考价值的文章主要介绍了通过yfinance访问金融数据—获取数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

yfinance介绍

 yfinance是一个Python开源工具,使用Yahoo公开api访问金融数据,地址finance.Yahoo.com从2021.11.1开始停止对国内的访问服务,使用需要在国外或者使用代理请求。

三大模块:

yf.Ticker

 几乎所有的方法都在Ticker模块中。
例如:将 yfinance 导入为 yf 并为特定代码(股票)创建一个代码对象:

import yfinance as yf  
aapl= yf.Ticker("aapl")
aapl

通过yfinance访问金融数据—获取数据

 现在可以用这个aapl股票代码对象——在其上调用各种方法。要获取历史数据,可以使用 history() 方法。

history() 方法参数:

  • period:要下载的数据周期(使用周期参数或使用start和end),有效周期为:“1d”、“5d”、“1mo”、“3mo”、“6mo”、“1y”、“2y”、“5y”、“10y”、“ytd”、“max”(最高点)。
  • interval:数据间隔(1m 数据仅适用于最近 7 天的数据,最近 60 天的数据间隔 <1d),有效间隔为:“1m”、“2m”、“5m”、“15m”、“30m”、“60m”、“90m”、“1h”、“1d”、“5d”、“1wk”、“1mo”、“3mo”
  • start:格式为 (yyyy-mm-dd) 或日期时间。•end: 格式为 (yyyy-mm-dd) 或日期时间。
  • prepost:在结果中包涵 Pre 和 Post 常规市场数据(默认为 False)- 通常不需要将其从 False 更改。*
  • auto_adjust:自动调整所有 OHLC(开盘价/最高价/最低价/收盘价)(默认为 True)。
  • actions:下载股票分红和股票分割事件 (默认为True)。
    我们只需更改period(或者start和end)和间隔参数。
    例如,要获取 Apple 在 02/06/2020 和 07/06/2020(英国格式)之间的 1 分钟历史数据,我们只需使用我们创建并运行的股票代码对象:
aapl_historical = aapl.history(start="2023-02-05", end="2023-02-11", interval="1m")
aapl_historical

通过yfinance访问金融数据—获取数据
查询公司分红和拆股信息:

aapl.actions

通过yfinance访问金融数据—获取数据
获得公司财报

aapl.financials
yf.download

一次下载多个股票的历史数据

  • 采用与股票代码上的history()方法大致相同的参数,其他参数如下:
  • group_by:按列或股票代码分组(‘column/ticker’,默认为’column’)。
  • threads:使用线程进行大规模下载(True/False/Integer。
  • proxy:如果要使用代理服务器下载数据的代理 URL(可选,默认为 None)。
    例如,要一次性获取 Amazon、Apple 和 Google 的数据,我们可以运行:
data = yf.download("AMZN AAPL GOOG", start="2017-01-01", end="2017-04-30")   
data

通过yfinance访问金融数据—获取数据

如果我们想按股票代码而不是开盘价/最高价/最低价/收盘价进行分组,我们可以这样做:

data = yf.download("AMZN AAPL GOOG", start="2017-01-01",end="2017-04-30", group_by='tickers')

通过yfinance访问金融数据—获取数据

用 yfinance 库下载期权数据
 简而言之,期权是赋予交易者权利但没有义务在特定日期或之前以特定价格购买(看涨)或出售(看跌)他们所代表的标的资产的合约。
option_chain()方法
 它将参数作为输入: date:(YYYY-MM-DD),到期日。如果 None 返回所有期权数据。并且有 opt.calls 和 opt.puts 方法。
如何获得到期日期;

 aapl.options   

通过yfinance访问金融数据—获取数据

获取对话数据:

 opt = aapl.option_chain(date='2020-07-24')   
 opt.calls   

通过yfinance访问金融数据—获取数据

如何获得看跌期权数据:

 opt.puts  

通过yfinance访问金融数据—获取数据

最后, opts 本身会返回一个包含调用和将数据放在一起的代码对象。

pandas_datareader

 pandas库提供了专门从财经网站获取金融数据的API接口,可作为量化交易股票数据获取的另一种途径,该接口在urllib3库基础上实现了以客户端身份访问网站的股票数据。需要注意的是目前模块已经迁徙到pandas-datareader包中,因此导入模块时需要由import pandas.io.data as web更改为import pandas_datareader.data as web
DataReader方法介绍
 查看Pandas的操作文档可以发现,第一个参数为股票代码,苹果公司的代码为"AAPL",国内股市采用的输入方式“股票代码”+“对应股市”,上证股票在股票代码后面加上“.SS”,深圳股票在股票代码后面加上“.SZ”。DataReader可从多个金融网站获取到股票数据,如“Yahoo! Finance” 、“Google Finance”等,这里以Yahoo为例。第三、四个参数为股票数据的起始时间断。返回的数据格式为DataFrame.

!pip3 install pandas_datareader --upgrade
import pandas_datareader as web 
#载入数据,雅虎网中的601318.ss股票,从2020-01-01到2020-03-18的数据
start_date='2020-01-01'
end_date='2020-03-18'
data=web.data.DataReader('601318.ss','yahoo',start_date,end_date)
data.head()

通过yfinance访问金融数据—获取数据

参考:yfinance介绍 pandas_datareader

实例

pip install yfinance
import yfinance as yf
import pandas as pd
DOW_30_TICKER = [
    "AXP",
    "AMGN",
    "AAPL",
    "BA",
    "CAT",
    "CSCO",
    "CVX",
    "GS",
    "HD",
    "HON",
    "IBM",
    "INTC",
    "JNJ",
    "KO",
    "JPM",
    "MCD",
    "MMM",
    "MRK",
    "MSFT",
    "NKE",
    "PG",
    "TRV",
    "UNH",
    "CRM",
    "VZ",
    "V",
    "WBA",
    "WMT",
    "DIS",
    "DOW",
]
class YahooDownloader:
  #通过雅虎金融API接口提供获取日常股票数据
   def __init__(self,start_date:str,end_date:str,ticker_list:list):#构造函数,用来实例化对象
     self.start_date=start_date
     self.end_date=end_date 
     self.ticker_list=ticker_list
   def fetch_data(self,proxy=None):
     #抓取数据,返回pd.DataFrame 7 columns:A date,open,high,low,close,volume and tick symbol
     data_df=pd.DataFrame()
     for tic in self.ticker_list:
       temp_df=yf.download(tic,start=self.start_date,end=self.end_date,proxy=proxy)
       temp_df['tic']=tic
       data_df=data_df.append(temp_df)
     print("刚下载的数据:")
     print(data_df.head(5))
     data_df = data_df.reset_index() #会将原来的索引index作为新的一列,使日期作为新的一列
     print("使日期作为新的一列:")
     print(data_df.head(5))

     try:
     #修改列名
       data_df.columns=["date","open","high","low","close","adjcp","volumn","tic",]
       #使用调整后的收盘价去代替收盘价
       data_df["close"]=data_df["adjcp"]
        #删除调整后的收盘价那一列
       data_df=data_df.drop(labels="adjcp",axis=1)
     except NotImplementedError:
       print("the features are not supported currently")
  
     #创建一周中的天数(星期一是0,星期天是6):Pandas.Series.dt.dayofweek
     data_df['day']=data_df['date'].dt.dayofweek
     #时间字符串转换为年月日方法,可以容易过滤
     data_df['date']=data_df.date.apply(lambda x:x.strftime("%Y-%m-%d"))
     #去除读入的数据中(DataFrame)含有NaN的行。
     data_df=data_df.dropna()
     data_df=data_df.reset_index(drop=True)#重置索引
     print("处理后的数据:")
     print(data_df.head(5))
     print("Shape of DataFrame: ", data_df.shape)
     # print("Display DataFrame: ", data_df.head())
     data_df = data_df.sort_values(by=["date", "tic"]).reset_index(drop=True)
     return data_df
  


df = YahooDownloader(start_date = TRAIN_START_DATE,
                     end_date = TRADE_END_DATE,
                     ticker_list = DOW_30_TICKER).fetch_data()



结果显示:
通过yfinance访问金融数据—获取数据文章来源地址https://www.toymoban.com/news/detail-472736.html

到了这里,关于通过yfinance访问金融数据—获取数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python金融数据分析和可视化--03利用Akshare获取股票数据

    AKShare 是基于 Python 的财经数据接口库,目的是实现对股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具,主要用于学术研究目的。 AKShare 的特点是获取的是相对权威

    2024年02月05日
    浏览(45)
  • 金融数据获取:当爬虫遇上要鼠标滚轮滚动才会刷新数据的网页(保姆级教程)

    目录 1. 谁这么会给我整活儿 2. Selenium模拟网页浏览器爬取 2.1 安装和准备工作 2.2.1 高度判断 2.2.2 顶部距离判断 3: 爬取内容 4: 完整代码,结果展示         什么,新浪的股票历史数据已经不直接提供了!          笔者前几日需要找一些澳洲市场的数据,奈何API没到

    2024年02月10日
    浏览(53)
  • 通过curl访问k8s集群获取证书或token的方式

    K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。 1. Authentication(认证) 2. Authorization(授权) 3. Admission Control(准入控制) 客户端(kubectl或curl等)要想访问K8s集群API Server,一般需要证书、Token或者用户名+密码。如果

    2024年01月24日
    浏览(50)
  • 微信小程序之获取定位数据以及通过坐标获取详细地址数据

     博主介绍: 本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮

    2024年02月06日
    浏览(68)
  • C# 通过 HttpWebRequest发送数据以及服务器通过Request请求获取数据

    C#中HttpWebRequest的用法详解 可参考: C#中HttpWebRequest的用法详解 C# HttpWebRequest详解 C# 服务器通过Request获取参数 可参考: C# WebService 接口 通过Request请求获取json参数 1、后台程序发送HTTP请求的Class,服务器端也要添加该类 2、服务端返回HTTP请求的数据class,客户端也要有 1、后台

    2024年02月06日
    浏览(59)
  • 使用Python访问Zookeeper获取数据

    Python如何获取zookeeper中的数据,本文将简单介绍Python访问zookeeper中设置了权限的目录信息。 1、环境准备 1.1 安装Python环境 1)安装依赖包 2)下载安装包并解压: 3)进入解压后的文件夹,并进行编译安装: 4)安装完成后验证: 1.2 安装Zookeeper环境 1)解压安装包 2)修改配置

    2024年02月07日
    浏览(37)
  • 如何通过IP访问MySQL数据库

    1.1 改表法 如果不从远程登陆,可以用 localhost 。这个时候只要在 localhost 的那台电脑,登入 mysql 后,更改 \\\"mysql\\\" 数据库中 \\\"user\\\" 表里的 \\\"host\\\" 字段,把 \\\"localhost\\\" 改称 \\\"%\\\" ,即可。 1.2 授权法 例如,你想用户 myuser 使用密码 mypassword 通过 IP 地址连接到 MySQL 服务器,使用: 如果你

    2024年02月06日
    浏览(45)
  • pymongo通过oplog获取数据(mongodb)

    使用 MongoDB 的 oplog(操作日志)进行数据同步是高级的用法,主要用于复制和故障恢复。需要确保源 MongoDB 实例是副本集的一部分,因为只有副本集才会维护 oplog。 以下是简化的步骤,描述如何使用 oplog 进行数据同步: 设置 MongoDB 副本集 如果还没有设置 MongoDB 为副本集,你

    2024年02月11日
    浏览(36)
  • 【EXCEL】通过url获取网页表格数据

    目录 0.环境 1.背景 2.具体操作 windows + excel2021 之前我用python的flask框架的爬虫爬取过豆瓣网的电影信息,没想到excel可以直接通过url去获取网页表格内的信息,比如下图这是电影信息界面 即将上映电影 (douban.com) 通过excel操作,将电影信息爬取到表格内,如下图 1)点击菜单栏

    2024年02月16日
    浏览(40)
  • ROS: 如何通过网页访问机器人内部数据?

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/Igm51siCI-4FUtumMWwW-w ROS 作为一个非常优秀的机器人开发框架,内部各个功能逻辑被划分成各个节点(进程),而各个节点之间数据指令访问非常频繁,形式比如发布订阅主题、

    2024年01月23日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包