金融工程--基于akshare的数据获取

背景

在进行金融工程和量化交易的时候,如何获取准确的数据来为我们模型和后期的判断提供支撑和依据成为了比较关键的一个点。对这个问题有几个方面的要求。第一,获取的数据的准确性,第二,大批量数据获取的接口稳定程度,第三,对于分钟和秒级别频率的实时支持程度。

API接口对比

名称TuShareAKShareEfinanceQstock
是否收费部分接口收费开源开源开源
数据来源新浪、东财新浪、东财东财东财
实时K线VVVV
历史K线不支持分钟K线VVV
基本面数据VVX部分支持
板块数据VVXV
特色数据VVXX
说明文档VVVX

对比四种不同的框架获取K线数据的速度

import tushare as ts
import akshare as ak
import efinance as ef
import qstock as qs
import time

token = '你的token'

def tushare_stock_history():
	pro = ts.pro_api(token)
	return pro.daily(ts_code='000651.SZ')

def akshare_stock_history():
	return ak.stock_zh_a_hist(symbol="000651", period="daily")

def efinance_stock_history():
	return ef.stock.get_quote_history('000651')

def qstock_stock_history():
	return qs.get_data('000651')

def default():
	pass

stockDataSourceDict = {
	"tushare": tushare_stock_history,
	"akshare": akshare_stock_history,
	"efinance": efinance_stock_history,
	"qstock": qstock_stock_history
}

def getStockDataSoucre(source):
	fun = stockDataSourceDict.get(source, default)
	return fun()

# 任务:比较四个框架的日线行情接口返回数据时间
if __name__ == '__main__':
	# 获取开始时间
	start = time.perf_counter()
	getStockDataSoucre("qstock")
	# 结束时间
	end = time.perf_counter()
	runTime = round(end - start, 2)
	print(f"运行时间:{runTime} ,秒")

关于其中的token获取方式需要通过tushare官网获取
在这里插入图片描述
注意目前tushare这个框架对于权限的要求较高,可以理解为会员,详细解释在这里插入图片描述

akshare基本操作

因此主要使用akshare作为主要的数据获取框架和接口。
下面使用akshare实现分钟级别的数据获取:

'''
获取分钟实时数据 以30分钟为例
'''
ak_hist_df = ak.stock_zh_a_hist_min_em(symbol='000651',
									   start_date='2023-05-04 10:30:00',
									   end_date='2023-06-02 15:00:00', period='30')
# print(ak_hist_df)
ef_hist_df = ef.stock.get_quote_history(stock_codes='000651', beg='20230504', end='20230602', klt=30)
print(ef_hist_df)

参考文献

akshare官网文档

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值