AkShare 概览

优质
小牛编辑
138浏览
2023-12-01

风险提示:AkShare 项目所采集的数据皆来自公开的数据源,不涉及任何个人隐私数据和非公开数据。 同时本项目提供的数据接口及相关数据仅用于学术研究,任何个人、机构及团体使用本项目的数据接口及相关数据请注意商业风险。

引用

如果您想在文章或者项目中引用 AkShare, 请使用如下 bibtex 格式:

@misc{akshare2019,
    author = {Albert King},
    title = {AkShare},
    year = {2019},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://github.com/jindaxiang/akshare}},
}

AkShare 的介绍

首先要特别感谢 FuShare, TuShare 在代码和项目开发上对本项目提供的借鉴和学习的机会!

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

AkShare 的特点是获取的是相对权威的财经数据网站公布的原始数据, 通过利用原始数据进行各数据源之间的交叉验证, 进而再加工, 从而得出科学的结论.

AkShare 后续会基于学术论文和金融工程研究报告来添加更多数据接口和衍生指标并提供相应的计算代码, 敬请关注.

AkShare 的特色

AkShare 主要改进如下:

  1. 代码语法符合 PEP8 规范, 数据接口的命名统一;

  2. 最佳支持 Python 3.7.5 及其以上版本;

  3. 提供最佳的文档支持, 每个数据接口提供丰富的说明和示例, 只需要复制粘贴就可以下载数据;

  4. 持续维护由于目标网页变化而导致的部分数据接口运行异常问题;

  5. 持续更新财经数据接口, 同时优化源代码;

  6. 目前进行数据采集的网站一览:

    6.1 增加奇货可查网站提供的奇货可查指数数据;

    6.2 增加智道智科网站提供的私募指数数据;

    6.3 增加99期货网提供的大宗商品库存数据;

    6.4 增加商品期权提供的商品期货数据;

    6.5 增加英为财情网站-全球指数提供的全球股指与期货指数数据;

    6.6 增加英为财情网站-全球债券提供的全球政府债券行情与收益率数据;

    6.7 增加中国外汇交易中心暨全国银行间同业拆借中心网站提供的中国银行间债券行情和外汇数据;

    6.8 增加英为财情网站-商品提供的全球商品历史数据;

    6.9 增加金十数据网站提供的全球宏观经济数据接口-中国宏观;

    6.10 增加金十数据网站提供的全球宏观经济数据接口-美国宏观;

    6.11 增加金十数据网站提供的全球宏观经济数据接口-欧洲、机构宏观;

    6.12 增加交易法门网站提供的交易法门-仓单有效期数据;

    6.13 增加和讯网网站提供的股票-企业社会责任数据;

    6.14 增加和讯网提供的美国-中概股行情及历史数据;

    6.15 增加交易法门网站提供的期货相关数据接口;

    6.16 增加新浪财经-期货提供的期货实时行情数据;

    6.17 增加新浪财经-港股提供的实时行情数据和历史行情数据(包括前复权和后复权因子);

    6.18 增加新浪财经-美股提供的实时行情数据和历史行情数据(包括前复权因子);

    6.19 增加上海证券交易所-期权提供的当日期权行情数据;

    6.20 增加金十数据网站提供的数字货币行情数据;

    6.21 增加腾讯财经网站提供的A+H股数据;

    6.22 增加新浪财经-A股提供的A股数据;

    6.23 增加新浪财经-科创板提供的科创板数据;

    6.24 增加银保监分局本级行政处罚提供的银保监分局本级行政处罚;

    6.25 增加Realized Library提供的Oxford-Man Institute of Quantitative Finance; https://dachxiu.chicagobooth.edu/

    6.26 增加FF Factors提供的多因子模型数据

    6.27 增加腾讯财经提供的历史分笔行情数据(近2年)

    6.28 增加金十数据提供的多品种实时数据接口和基于 websocket 的数据接口(基础版本);

    6.29 增加微信公众号: Python大咖谈提供的专题教程-Pandas专题-连载;

    6.30 增加timeanddate网站提供的日出和日落数据接口;

    6.31 增加河北省空气质量预报信息发布系统网站提供的河北省空气质量数据接口;

    6.32 增加南华期货网站提供的商品指数历史走势-收益率指数、价格指数、波动率指数接口;

    6.33 增加Economic Policy Uncertainty网站提供的经济政策不确定性(EPU)指数数据接口;

    6.34 增加新浪微博提供的微博指数数据;

    6.35 增加百度提供的百度指数数据;

    6.36 增加谷歌提供的谷歌趋势数据;

    6.37 增加申万指数提供的申万指数数据;

    6.38 增加真气网提供的空气质量数据;

    6.39 增加财富网站提供的财富企业500强排行榜数据;

    6.40 增加中国证券投资基金业协会提供的私募基金数据;

    6.41 增加微信公众号: Python大咖谈专题教程-Anaconda专题-连载;

    6.42 增加猫眼电影提供的实时票房数据;

    6.43 增加北京市碳排放权电子交易平台提供的碳排放行情数据;

    6.44 新增Expatistan网站提供的世界各大城市生活成本数据;

    6.45 新增国家金融与发展实验室网站提供的宏观杠杆率数据;

    6.46 新增IT桔子网站提供的千里马、独角兽、倒闭公司数据;

    6.47 新增东方财富网站提供的机构调研数据;

    6.48 新增东方财富网站提供的股权质押数据;

    6.49 新增东方财富网站提供的商誉专题数据;

    6.50 新增东方财富网站提供的股票账户统计数据;

    6.51 新增交易法门网站提供的商品期货数据数据;

    6.52 新增百度疫情网站提供的新型冠状病毒-疫情数据;

    6.53 新增丁香园网站提供的新型冠状病毒-疫情数据;

    6.54 新增网易网站提供的新型冠状病毒-疫情数据;

    6.55 新增百度迁徙网站提供的人口迁徙数据;

    6.56 新增新浪网站提供的沪深债券数据;

    6.57 新增新浪网站提供的沪深可转债数据;

    6.58 新增商业特许经营信息管理网站提供的特许经营数据;

    6.59 新增慈善中国网站提供的慈善数据;

    6.60 新增Currencyscoop网站提供的货币数据;

    6.61 新增东方财富网站提供的公募基金数据;

    6.62 新增东方财富网站提供的LPR历史数据;

    6.63 新增东方财富网站提供的千股千评数据;

    6.64 新增东方财富网站提供的沪深港通数据;

    6.65 新增东方财富网站提供的两市停复牌数据;

    6.66 新增新浪网站提供的外盘期货历史行情数据;

    6.67 新增金十数据网站提供的恐慌指数数据;

    6.68 新增东方财富网站提供的中国油价数据;

    6.69 新增东方财富网站提供的现货与股票数据;

    6.70 新增中国期货市场监控中心提供的期货指数数据;

    6.71 新增CSSE开源项目提供的全球疫情数据;

    6.72 新增宽客在线提供的阿尔戈斯全网监控数据;

    6.73 新增百度地图慧眼提供的城内出行强度数据;

    6.74 新增东方财富网提供的打新收益率数据;

    6.75 新增东方财富网提供的年报季报数据;

    6.76 新增FutureSharks提供的年报季报数据;

  7. 提供完善的接口文档, 提高 AkShare 的易用性.

思维导图

AkShare 的初衷

AkShare 主要目的是服务于财经研究, 解决在财经研究中数据获取困难的问题.

私募基金曲线

上图是利用 AkShareget_zdzk_fund_index 接口获取的智道智科发布的股票策略指数和管理期货策略指数. 可以看出股票策略的波动性大于管理期货策略, 而且从 2015 年至今, 管理期货策略能获得较稳定的收益.

传统的 CTA 策略以趋势为主, 但是自从 2017 年以来, 无论是长线还是短线的趋势策略都受制于商品波动率的降低, 面临了多多少少的回撤, 同时市场也逐渐趋于机构化理性化, 因此在传统 CTA 策略的基础上加入基本面的因素显得迫在眉睫. 近几年各券商的研报陆续提出了许多依赖于趋势行情以外的有效信号, 它们的表现都与趋势策略有着很低的甚至负的相关性, 这样通过多种不同类型的信号对冲得到的策略, 就有机会在市场上取得非常棒的夏普率和稳定的收益.

上图调用 AkShare 进行绘制的代码如下

import akshare as ak
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'  # Linux 请注意字体设置问题
plt.rcParams['axes.unicode_minus'] = False

stock_df = ak.zdzk_fund_index(30, plot=False)  # 股票策略数据
futures_df = ak.zdzk_fund_index(32, plot=False)  # 管理期货策略数据

fig = plt.figure(111, figsize=(20, 10), dpi=300)
adjust_stock_df = stock_df["20150102":] / stock_df["20150102"] * 1000
adjust_stock_df.plot(linewidth=4)
adjust_futures_df = futures_df["20150102":] / futures_df["20150102"] * 1000
adjust_futures_df.plot(linewidth=4)
plt.title("智道智科股票策略和管理期货策略指数")
plt.legend()
plt.show()