欢迎来到RankFan的Blogs

扩大
缩小

python如何下载金融数据

用python下载金融数据,现在我用的有yfinance; Tushare; akshare; Investpy

但是可以下载到数据的有 Tushare; akshareTushare下载一些数据需要积分。
有些package 有时会因为TimeOut 不能获取对应数据,可以获得数据的 TushareJQdata, 想要获得更多数据需要购买相应套餐。


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 注册;每日的数据下载数量与积分有关,捐赠可以获得更多积分。

数据积分权限如下:

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还是有一定情怀!

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 所包含的数据内容还是很多的,

Investpy

investing.com可以手动下载一些数据,或者进行爬虫。

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

个人调用数据对服务器的接口产生一定压力,过多的数据购买相关套餐比较合适,基本是按年进行购买。

可以申请使用,个人用户试用是每天50w条, 基金数据从调用开始,试用两周。 【申请使用 click this

Windpy

通过wind获取数据,可以使用Python脚本,或者直接在Excel中使用,感觉用Excel下载数据获取会更快一点,如何获取这种权限?可能只有学校图书馆电脑(装wind),金融公司会有。

也有使用数据库去连接Wind,我知道的有使用 oracle 数据库, 可以使用Python进行连接(cx_Oracle)。
使用 oracle 关键是要懂得 相关是sql的用法,需要根据数据字典取数,我认为掌握基本的sql知识即可完成取数任务。更多可以 click this


保存基金代码、股票代码数据可能遇到的问题,大概有 知乎:pandas数据处理-股票代码补全0(3种方法)

posted on 2021-09-26 17:22  RankFan  阅读(729)  评论(0编辑  收藏  举报

导航