写在前面
下面这篇文章整理了常用的python量化分析库,并详细介绍了它们的应用场景以及官方文档链接。通过应用这些量化分析库,可以避免重复造轮子,从而可以为相关工作或者研究者提供极大的便捷。为了便于查找相关的应用库,建议收藏。
1
时间序列分析
tslearn
tslearn是一个开源的时间序列机器学习python工具包,其中包括了一些基本的时间序列预测或者分类模型,如多层感知机,SVR,KNN以及基本的数据预处理工具和数据集的生成与加载模块。
文档链接:https://tslearn.readthedocs.io/en/latest/
tsfresh
tsfresh是一个开源的时间序列特征提取python工具包,它会自动计算出大量的时间序列特征。此外,该工具包还包含了一些方法,用于评估回归或分类任务中这些特征的解释能力和重要性。
tsfresh中丰富的函数库可以便于研究者直接获取时间序列的特征信息,而避免了重复造轮子的步骤。其中目前提供的可获取到的特征信息包括基本的时间序列特征,如相关系数、统计特征等,也包括时间序列的熵的计算方法(近似熵、排列熵等)、时间序列异常检测方法以及时间序列平稳性检测等。具体如下表所示:
文档链接:https://tsfresh.readthedocs.io/en/latest/
pyts
pyts是一个开源的时间序列分类Python工具包。提供预处理工具及若干种时间序列分类算法。其中的主要功能包括:
基本的时间序列可视化功能
时间序列特征提取方法,包括ShapeletTransform, BagOfPatterns, BOSS, WEASEL, ROCKET方法
时间序列分类算法包括KNeighborsClassifier, SAX-VSM, BOSSVS, LearningShapelets算法
时间序列图像化的方法包括Recurrence Plot, Gramian Angular Field, Markov Transition Field
时间序列分解算法包括Singular Spectrum Analysis
以及自带的时间序列数据集
文档链接:https://pyts.readthedocs.io/en/stable/
Statsmodels
statmodels是一个Python模块,它提供了一些类和函数,用于评估许多不同的统计模型,以及进行统计测试和统计数据探索。每个估计量都有一个结果统计量的列表。结果与现有的统计包进行过充分的测试,以确保它们是正确的。
文档链接:https://www.statsmodels.org/stable/index.html
2
量化回测
alphalens
alphalens是一个Python量化分析库,它是全球最大量化网站quantopian开发维护的量化三件套之一,用于股票因子(alpha)的性能分析。alphalens与zipline以及pyfolio常常一同使用,其中,pyfolio提供财务组合的性能和风险分析,zipline用于量化策略回测。alphalens的主要功能包括对一个alpha因子进行统计和绘图,包括:因子收益分析、因子信息系数分析、换手率分析以及分组分析。
文档链接:https://github.com/quantopian/alphalens
pyfolio
pyfolio是一个Python库,用于金融投资组合的性能和风险分析。它可以很好地与Zipline回测库一起工作。
文档链接:https://github.com/quantopian/pyfolio/
pyfinance
pyfinance是为投资管理和证券收益分析而构建的Python分析包,主要是对面向定量金融的现有包进行补充,如pyfolio和pandas-datareader等。pyfinance包含六个模块,它们分别是:
datasets.py :金融数据下载,基于request进行数据爬虫;
general.py:通用财务计算,例如主动份额计算,收益分配近似值和跟踪误差优化;
ols.py:回归分析,支持pandas滚动窗口回归;
options.py:期权衍生品计算和策略分析;
returns.py:通过CAPM框架对财务时间序列进行统计分析,旨在模拟FactSet Research Systems和Zephyr等软件的功能,并提高了速度和灵活性;
utils.py:基础架构。
文档链接:https://github.com/bsolomon1124/pyfinance
zipline
zipline是美国著名的量化策略平台quantopian开发和维护的量化交易库,并且quantopian量化平台的回测引擎也是基于zipline的,除此之外,像国内比较有名的三大矿聚宽(JointQuant)、米筐(RiceQuant)、优矿的回测引擎也是基于此。另外,由于quantopian平台多年的使用,zipline的专业性是可以保证的,并且zipline在github中的代码也在保持不断更新和改进。
zipline是一种事件驱动(event-driven)的回测框架,有完整的文档和社区,如果你是对国外美股交易感兴趣,那么zipline将比较合适;但是对于国内像A股的数据则无法支持,只能通过本地化的数据进行回测。
文档链接:https://www.zipline.io/beginner-tutorial
Gitbook出品的中文教程:https://rainx.gitbooks.io/-zipline/content/
pyalgotrade
pyalgotrade同样也是一个事件驱动的回测框架,虽然不如zipline的名气大,但是同样也具有完善的社区和详细的文档。据说pyalgotrade的运行速度和灵活度要比zipline强,但是缺点是不支持pandas。
文档链接:
http://gbeced.github.io/pyalgotrade/docs/v0.20/html/tutorial.html
backtrader
backtrader是一个功能强大的量化策略回测平台,近些年来也一直在保持着github上代码的更新。backtrader允许你专注于编写可重用的交易策略、指标和分析工具,而不是花时间构建基础设施。
文档链接:https://www.backtrader.com/docu/
Catalyst
近些年由于虚拟货币的交易需求,所以也有很多针对于虚拟货币交易的量化回测平台。Catalyst是一个底层基于zipline的算法交易框架,目前比较成熟,并且可以支持策略的回测与实盘( 目前支持四家交易所 Binance, Bitfinex, Bittrex, Poloniex) 。
文档链接:https://enigma.co/catalyst/
vn.py
vn.py是国内由陈晓优团队开发量化交易框架,它目前在github上star和fork的数量已经超过了zipline,目前是全球开源量化框架的首位,这确实也是一件值得骄傲的事情。另外,vn.py主要侧重于实盘交易,同样支持通过历史数据进行回测,包括数据的可视化、收益结果、参数调优等,除此之外,它还具备一些常用的CTA策略、SpreadTrading价差交易、行情录制等功能,并且它还具备完善的社区以及教程。新手在使用时,可以通过它的GUI环境VN Station进行使用,同时也可以基于它的策略模版进行自定义的策略开发。关于文档链接:https://www.vnpy.com/docs/cn/index.html
3
数据获取
Tushare
Tushare库拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据。其SDK开发包支持语言,同时提供HTTP Restful接口,最大程度方便不同人群的使用。并且,它提供多种数据储存方式,如Oracle、MySQL,MongoDB、HDF5、CSV等,为数据获取提供了性能保证。
文档链接:https://waditu.com/
AkShare
AkShare 是基于 Python 的财经数据接口库, 目的是实现对股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具, 主要用于学术研究目的。AkShare 的特点是获取的是相对权威的财经数据网站公布的原始数据, 通过利用原始数据进行各数据源之间的交叉验证, 进而再加工, 从而得出科学的结论。
文档链接:https://www.akshare.xyz/zh_CN/latest/introduction.html
pandas-datareader
pandas-datareader库可以用于将来自各种来源包括Google财经,Yahoo Finance,FRED,OECD,Fama / French,世界银行,Eurostat的数据转换为Pandas中的DataFrame数据结构。
文档链接:https://pandas-datareader.readthedocs.io/en/latest/
【书籍推荐】本书先从量化交易的基本概念讲起,然后讲解Python的基本语法及常见库的使用,在每章节的学习中都以金融量化为实例,并在后结合实战项目来进行学习和巩固,读者不但可以系统地学习Python编程的相关知识,而且还能学习到Python在量化交易场景下的应用。本书内容通俗易懂,案例丰富,适合零基础并对Python量化感兴趣的读者,以及想学习量化交易实战项目的Python初学者。此外,本书也适合作为相关培训机构的培训教材。
上期分享和阅读活动中,阅读和分享榜首的分别是以下两位,可在后台私信我地址,将分别包邮送出一本《Python量化金融编程从入门到精通》:
了解更多人工智能与
量化金融知识
<-请扫码关注
让我知道你在看