python如何下载金融数据
用python下载金融数据,现在我用的有yfinance
; Tushare
; akshare
; Investpy
。
但是可以下载到数据的有 Tushare
; akshare
。Tushare
下载一些数据需要积分。
有些package
有时会因为TimeOut
不能获取对应数据,可以获得数据的 Tushare
, JQdata
, 想要获得更多数据需要购买相应套餐。
Baostock
yfinance
import yfinance as yf
aapl= yf.Ticker("aapl")
aapl_historical = aapl.history(start="2020-06-02", end="2020-06-07", interval="1m")
雅虎金融的数据还是挺多的,不过最近网站不向大陆开放,所以一般是下不了程序,
最近发现可以通过colab run codes,然后下载把数据下载到本地, 对colab了解较少的可以 click Colab 香吗?
Tushare
积分制,没有注册的同学可以点击 Tushare 注册;每日的数据下载数量与积分有关,捐赠可以获得更多积分。
数据积分权限如下:
![](https://img2022.cnblogs.com/blog/2355125/202208/2355125-20220808101800029-1171549131.jpg)
import tushare as ts
token = 'Your Token'
ts.set_token(token)
pro = ts.pro_api()
df = pro.index_basic(market='SW') # 查询信息
SZ_180 = pro.index_daily(ts_code='000010.SH', start_date='20180701', end_date='20190718') # 上证180
HuShen_300 = pro.index_daily(ts_code='000300.SH', start_date='20180701', end_date='20190718') # 沪深300
对于高校的老师和学生,Tushare会赠送一些积分,相比聚宽,Tushare还是有一定情怀!
![](https://img2022.cnblogs.com/blog/2355125/202208/2355125-20220808131009095-1480993202.png)
akshare
import akshare as ak
stock_zh_a_daily_qfq_df = ak.stock_zh_a_daily(symbol="sh000001", start_date="20201103", end_date="20201116", adjust="qfq")
数据字典,这个阅读起来更加舒服, akshare
所包含的数据内容还是很多的,
![](https://img2022.cnblogs.com/blog/2355125/202208/2355125-20220808140227938-1011457766.png)
Investpy
investing.com
可以手动下载一些数据,或者进行爬虫。
- Investpy 文档; 香港 - 指数 , 截图如下:
![](https://img2022.cnblogs.com/blog/2355125/202208/2355125-20220808110048317-72591853.png)
import investpy
df = investpy.get_stock_historical_data(stock='AAPL',
country='United States',
from_date='01/01/2010',
to_date='01/01/2020')
JointQuant
API 文档; 金融数据分析| JoinQuant 量化策略; JQdata
个人用户数据调用会有一定限制,如果数据流量达到就会报错,怎么将已经加载的数据保存下来?使用try: except:
结构保存数据。
try:
for code in tqdm(codes, desc='查询基金净值'):
temp_list.append(Query_Fund_Nav(code, start_date, end_date))
fund_df = pd.concat(temp_list, ignore_index=True)
except:
fund_df = pd.concat(temp_list, ignore_index=True)
fund_df.to_csv('E:\\Data\\fund_nav_except_4k.csv')
查看自己的本地剩余数据流量, 要从 jqdatasdk
里面 import get_query_count
![](https://img2022.cnblogs.com/blog/2355125/202208/2355125-20220808104955700-1108171860.png)
个人调用数据对服务器的接口产生一定压力,过多的数据购买相关套餐比较合适,基本是按年进行购买。
![](https://img2022.cnblogs.com/blog/2355125/202208/2355125-20220808100236538-1652945278.png)
可以申请使用,个人用户试用是每天50w条, 基金数据从调用开始,试用两周。 【申请使用 click this】
Windpy
通过wind获取数据,可以使用Python脚本,或者直接在Excel中使用,感觉用Excel下载数据获取会更快一点,如何获取这种权限?可能只有学校图书馆电脑(装wind),金融公司会有。
也有使用数据库去连接Wind,我知道的有使用 oracle
数据库, 可以使用Python进行连接(cx_Oracle
)。
使用 oracle
关键是要懂得 相关是sql的用法,需要根据数据字典取数,我认为掌握基本的sql知识即可完成取数任务。更多可以 click this
保存基金代码、股票代码数据可能遇到的问题,大概有 知乎:pandas数据处理-股票代码补全0(3种方法)
![](https://img2022.cnblogs.com/blog/2355125/202208/2355125-20220808102511938-271146890.png)