https://zhuanlan.zhihu.com/p/26983703
工欲善其事,必先利其器,本文精心整理了各大编程语言常用的量化分析工具,会用其中几个就应该可以在私募找到一份不错的量化工作,如果不想安装,推荐 BigQuant 一站式的Python+机器学习+量化投资平台,打开浏览器就可以开发算法策略。
欢迎大家补充~~~
编程语言
- 1.Python
- 2.R
- 3.Matlab
- 4.Julia
- 5.Java
- 6.JavaScript
- 7.Scala
- 8.Ruby
- 9.Frameworks
Python
-
numpy
介绍:一个用python实现的科学计算包。包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。 -
scipy
介绍:SciPy是一款方便、易于使用、专为科学和工程设计的Python工具包。它包括统计、优化、线性代数、傅里叶变换、信号和图像处理、常微分方程求解等等。 -
pandas
介绍:Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。 -
quantdsl
介绍: quantdsl包是Quant DSL语法在Python中的一个实现。Quant DSL 是财务定量分析领域专用语言,也是对衍生工具进行建模的功能编程语言。Quant DSL封装了金融和交易中使用的模型(比如市场动态模型、最小二乘法、蒙特卡罗方法、货币的时间价值)。 -
statistics
介绍:python内建的统计库,该库提供用于计算数值数据的数学统计的功能。 -
PyQL
介绍: PyQL构建在Cython之上,并在QuantLib之上创建一个很浅的Pythonic层,是对QuantLib的一个包装,并利用Cython更好的性能。 -
pyfin
介绍:针对于中国市场的Pandas定量投资金融工具包 -
vollib
介绍:Vollib是用于计算期权价格、隐含波动率的纪念日工具包。能够非常快速和准确的技术来获得期权的隐含波动率。 -
QuantPy
介绍:python量化金融框架。目前还是一个alpha版本,可以从雅虎网站获取每日收益的投资组合类。计算夏普比率和有效边界,并实现投资组合优化。 -
Finance-Python
介绍:纯python实现的金融计算库,目标是提供进行量化交易必要的工具,包括但不限于:定价分析工具、技术分析指标。其中部分实现参考了quantlib。 -
ffn
介绍:ffn是一个专门为从事量化金融工作的人们提供金融数据分析功能的python包。 它位于重量级包(Pandas,Numpy,Scipy等)的基础上,并提供了广泛的功能模块,包括性能测量、图形可视化和数据转换。 -
pynance
介绍:PyNance是用于从股票和衍生品市场检索、分析和可视化数据的开源软件。 比较特别的是它能够用于生成机器学习算法的特征和标签的工具。 -
tia
介绍:TIA是针对彭博数据库设置的,它提供bloomberg数据访问、更简便的pdf文档生成、回溯测试功能、技术分析功能、收益率分析和几个常用的Windows utils的工具包。
交易和回测
- BigQuant
介绍:人工智能量化交易平台,拥有丰富的金融数据,可直接使用90%的主流机器学习/ 深度学习Python包。
-
TA-Lib
介绍:TA-Lib的简称是Technical Analysis Library,主要功能是计算价格的技术分析指标。 是技术分析者和量化人员在策略开发中常用的量化分析包。 -
easytrader
介绍:提供券银河/银河客户端/广发/湘财证券/雪球的基金、股票自动程序化交易以及自动打新,支持跟踪 joinquant /ricequant 模拟交易 和 实盘雪球组合, 量化交易组件。作者如果我说是90后,你敢信? -
vnpy
介绍:vn.py - 基于python的开源交易平台开发框架,在github上是一个比较火的项目,目前对接的交易接口特别丰富,无论是股票接口还是期货接口。
- 实盘易
介绍:实盘易(ShiPanE)Python SDK,通达信自动化交易 API 及量化平台。 - easyquotation
介绍:实时获取新浪 / Leverfun 的免费股票以及 level2 十档行情 / 集思路的分级基金行情, 很小,但非常实用。
-
pyalgotrade-cn
介绍:Pyalgotrade-cn 在原版的基础上加入了A股历史行情回测,并整合了tushare提供实时行情。以便大家对自己的策略进行回测和模拟测试。这个项目提供了比特币的交易接口。 -
pyktrader 基于pyctp接口,并采用vnpy的eventEngine,使用tkinter作为GUI的python交易平台
-
trade
介绍:trade是金融应用的一个包。 它主要是用于分析主题投资和事件驱动策略。 主题代表可以交易的任何东西,而事件则代表影响一个或多个主题的任何内容,如证券交易所政策或股票分割。它是针对与金融市场有关的任何一种主题和事件进行开发的投资工具包。 -
zipline
介绍:一个事件驱动股票策略量化回测框架,由Quantopian开源,目前国内的很多Python编程语言的在线量化回测平台都是以zipline为模板开发应用的。 -
QuantSoftware Toolkit
介绍:QSToolKit(QSTK)是一个基于Python的开源软件框架,旨在支持组合构建和管理。 为金融学生、计算机学生和具有编程经验的量化分析师建立QSToolKit。支持建模分析、回测分析和实盘交易。 -
quantitative
介绍:quantitative是一个事件驱动和多功能的反向测试库。 用户可以用定量测试他们的交易模型。由于仍在开发中,谨慎使用。 -
analyzer
介绍:用于实时金融数据收集、分析和开发交易策略的一个金融分析包。 -
bt
介绍:bt是用于测试定量交易策略的Python的灵活的backtesting框架。 bt建立在ffn之上,封装了很多机器学习、信号处理和统计函数。bt的目的是建好轮子,让量化人员把重点放在策略开发上。 -
rqalpha 介绍:一款量化回测平台。
-
quantconnect 介绍:国外一款在线的量化回测平台。
-
backtrader
介绍:一个功能丰富的Python测试和交易框架。backtrader能够让策略研究员专注于编写可重用的交易策略、指标和分析器,而不是花时间构建基础设施。理念类似bt. -
pythalesians
介绍:网上对这个量化分析包的介绍资料并不多。 -
pybacktest
介绍:在Python 结合Pandas包的矢量化测试框架,旨在帮助宽客回测更容易、 紧凑、简单、快速。 -
pyalgotrade
介绍:PyAlgoTrade是一个事件驱动的算法交易Python库。 尽管设计初衷是回溯测试,但现在已经可以实盘交易,并且包含比特币的交易。pyalgotrade-cn是国内版针对中国市场的开源量化包。 -
tradingWithPython
介绍:从名字就可以看出,这是一个使用Python 来进行交易的一个量化分析包,使用它可以完成一系列金融量化教程的学习。 -
algobroker
介绍:这是一个算法交易执行引擎。 -
pysentosa
介绍:pysentosa是一个针对sentosa自动化交易系统的Python接口,作者Wu Fuheng -
finmarketpy
介绍:finmarketpy是一个基于Python的库,帮助你能够使用简单易用的API分析金融数据以及回测交易策略。 -
volatility-trading 基于Euan Sinclair的波动率交易的波动率估计器
- quant 在这里收集了一些量化金融和算法交易的资料,大多数基于Quantopian、Zipline、Pandas的ipython notebook。
风险分析
-
pyfolio
介绍:组合投资和风险分析的库,是与zipline配合使用的一个组合风险分析工具。BigQuant平台可直接使用,已安装完成。 -
qrisk
介绍:和pyfolio一样,也是配合zipline使用的,主要用来分析因子风险。 -
finance
介绍:财务风险计算库,该项目的目的是提供易于使用的python代码进行财务风险计算。 -
qfrm
介绍:定量金融风险管理,用于度量、管理和可视化投资组合风险的极好的OOP工具。 -
visualize-wealth
介绍:投资组合构建与定量分析 -
VisualPortfolio
介绍:用于可视化分析投资组合的工具
时序分析
-
ARCH
介绍:专门针对金融时间序列数据进行ARCH模型建模 -
statsmodels
介绍:Python的统计建模和计量经济学工具包,包括一些描述统计、统计模型估计和推断 -
dynts
介绍:对于时间序列分析和操作的库 -
PyFlux
介绍:同样为时间序列模型库
交易日历
-
tradingcalendar
介绍:证券交易所交易日历的模块,配合zipline使用 -
bizdays
介绍:工作日计算和建议实用程序
数据源
-
findatapy
介绍:通过Bloomberg,Quandl,Yahoo的交易数据 -
googlefinance
介绍:通过Google金融api获得的实时股票数据 -
yahoo-finance
介绍:从Yahoo获得股票数据 -
pandas-datareader
介绍:从多个不同渠道(包括yahoo)获得的交易数据,配合Pandas包使用 -
pandas-finance
介绍:获取和分析金融数据的api -
yfinanceapi
介绍:金融数据获取api -
ystockquote
介绍:yahoo金融的股票数据 -
wallstreet
介绍:实时股票数据
Wallstreet是一个用于监控和分析实时股票和期权数据的Python库。 数据由Google财经API提供,是一个提供特别简单的获取美股数据API的开源库。 -
stock_extractor
介绍:该库提供了两个数据源,一个是Yahoo Finance,一个是http://Barchart.com
-
Stockex
介绍:用以获取yahoo金融数据的库 -
finsymbols
介绍:能够获取来自AMEX、NYSE、NASDAQ等几大交易所的行情数据。 -
FRB
介绍:FRED® API的客户端 -
inquisitor
介绍:http://Econdb.com是经济数据的汇总网站。inquisitor这个Python模块提供了一个围绕http://Econdb.com的API的包装器,可以快速批量获取http://Econdb.com数据。 -
chinesestockapi
介绍:获取中国股票数据的python API -
exchange
介绍:获得当前汇率数据的API -
ticks
介绍:通过命令行获得交易Tick数据的库 -
pybbg
介绍:Bloomberg的python接口,方便其用户快速获取数据 -
ccy
介绍:一个用于货币的python模块。该模块编译一个货币对象字典,包含有用的财务分析信息。但并不是所有的货币都被支持,处于持续增加中。 -
tushare
介绍:获取历史以及实时的中国股票数据,简单好用,但数据质量堪忧,而且不太稳定 -
jsm
介绍:获取日本股票数据的一个API库 -
cn_stock_src
介绍:获取中国股票数据的库,比较小众 -
coinmarketcap
介绍:用于获取coinmarketcap数据的Python API -
after-hours
介绍:获得给定股票的历史数据和小时股票价格 -
bronto-python
介绍:brontoAPI集成,bronto-python是一个python数据查询客户端
Excel集成
-
xlwings
介绍:处理excel文件的库 -
openpyxl
介绍:处理xlsx后缀格式文件的库 -
xlrd
介绍:处理excel的库 -
xlsxwriter
介绍:将数据写入到xlsx的库 -
xlwt
介绍:创建可兼容的excel的库 -
ExcelPython
介绍:处理excel的python库 -
pyxll
介绍:处理excel的库
R
-
xts
介绍:xts是对时间序列数据(zoo)的一种扩展实现,目标是为了统一时间序列的操作接口。实际上,xts类型继承了zoo类型,丰富了时间序列数据处理的函数,API定义更贴近使用者,更实用,更简单! -
data.table
介绍:data.table继承于data.frame。它提供了一个快速通道,让我们能更加快速的读取文件,对数据进行筛选、分组、排序、联表,而且其语法灵活、简介。由于data.table是一个data.frame所以它几乎兼容所有的函数。 -
TSdbi
介绍:提供了一个时间序列数据库的接口 -
tseries
介绍:时间序列分析和金融数据分析出来的包 -
its
介绍:不规则时间序列数据分析的包 -
zoo
介绍:zoo是一个R语言类库,zoo类库中定义了一个名为zoo的S3类型对象,用于描述规则的和不规则的有序的时间序列数据。zoo对象是一个独立的对象,包括索引、日期、时间,只依赖于基础的R环境,zooreg对象继承了zoo对象,只能用于规则的的时间序列数据。 -
tis
介绍:专门针对带时间戳数据的分析的包 -
tfplot
介绍:数据操作和快速的时间序列可视化的包 -
tframe
介绍:时间序列数据操作包
数据包
-
IBrokers
介绍:提供本地R访问Interactive Brokers Trader的一个接口。 -
Rblpapi
介绍:Bloomberg的基于R语言的数据接口 -
Quandl
介绍:获得金融数据的R包 -
Rbitcoin
介绍:统一市场API接口(包括bitstamp、kraken、btce、bitmarket)。 -
GetTDData
介绍:直接从Tesouro Direto网站下载并汇总巴西政府发行债券的数据。 -
GetHFData
介绍:从Bovespa ftp站点直接下载并汇总的高频交易数据
金融工具包
-
RQuantLib
介绍:RQuantLib将GNU R与QuantLib连接起来。 -
quantmod
介绍:定量金融建模框架。 -
Rmetrics
介绍:数字金融教学和培训的首要开源软件解决方案- fAsianOptions - EBM和亚洲期权估值
- fAssets - 金融资产建模与分析
- fBasics - 市场和基本统计分析
- fBonds - 债券和利率市场建模
- fExoticOptions - 异式期权
- fOptions -资产定价与评估
- fPortfolio - 组合选择和组合优化的模块
-
portfolio
介绍:权益资产(股票)分析的一个包 -
portfolioSim
介绍:模拟股票投资组合策略构建的框架 -
stockPortfolio
介绍:建立股票模型并分析股票投资组合 -
financial 介绍:货币时间价值、现金流分析等财务功能
-
sde 介绍:价格随机微分方程的模拟与推理
-
termstrc
介绍:零息票收益率曲线估计 -
YieldCurve
介绍:收益率曲线的建模和估计 -
SmithWilsonYieldCurve - 介绍:通过Smith-Wilson方法从LIBOR和SWAP汇率表中构建收益率曲线
-
ycinterextra
介绍:收益率曲线或零息票据的内插和外推 -
opefimor
介绍:优化价格和金融模型估计 -
maRketSim
介绍:金融市场模拟仿真的一个R包 -
AmericanCallOpt
介绍:美国看涨期权定价的一个包 -
VarSwapPrice
介绍:权益指数定价的方差互换 -
RND - 风险分析
-
LSMonteCarlo
介绍:美国期权定价与最小二乘法蒙特卡罗方法 -
OptHedging
介绍:看跌期权的定价和套期保值策略的估计 -
tvm
介绍:货币功能的时间价值 -
OptionPricing
介绍:有效模拟期权定价 -
derivmkts
介绍:金融衍生品市场的R语言包 -
FinCal
介绍:时间序列数据处理和金融分析 -
r-quant
介绍:R语言实现的金融数据分析库
交易
-
TA-Lib
介绍:对金融市场数据进行技术分析,运用非常广泛。 -
backtest
介绍:backtest提供了探索有关金融工具(股票、债券、掉期、期权等)的投资组合构建,能够对多市场标的进行回测的交易包。 -
pa
介绍:股权投资组合的绩效归因包。 -
TTR
介绍:技术交易规则包。 -
QuantTools
介绍:QuantTools全部在一个R包中,旨在增强量化交易策略建模。 它允许您从Yahoo、Google和IQFeed等多个来源下载和整理历史市场数据,并快速编写交易算法,具有强大的事件驱动处理API,包括交易成本和交换通信延迟,并将详细数据无缝转换为R代码。在几行代码中,您将能可视化地看到交易模型如何从bar数据到回测结果图。
风险分析
- PerformanceAnalytics
介绍:用于绩效归因和风险分析的计量经济学工具。
Time Series
-
xts
介绍:通过扩展zoo包来提供对R不同时间数据类型的统一处理,并允许用户定制和扩展,同时简化跨类互操作性。 -
fGarch
介绍:自回归条件异方差建模的一个包,这个包定位比较精专。 -
timeSeries
介绍:如名字所示,金融工程与计算金融环境,管理金融时间序列数据对象。 -
rugarch
介绍:提供ARFIMA、in-mean, external regressors 等各种GARCH模型,数理知识要求比较高,很多函数理解起来很困难。
交易日历
-
timeDate
介绍:timeDate不仅提供日期和时间功能,而且还提供复杂的工作日、周末、节假日和教会假期的日历操作。 -
bizdays
介绍:在许多国家,价格衍生品和固定收益工具的定价涉及到使用工作日。例如,在巴西,绝大多数的金融机构都是按照营业日计数规则定价。bizdays的目的是使日期计算更加简单。
Matlab
- QUANTAXIS
介绍:Matlab上集成的量化工具包
Julia
-
QuantLib.jl
介绍:用Julia实现的Quantlib库。 -
FinancialMarkets.jl
介绍:Julia的量化金融模型库。 -
TALib.jl
介绍:TA-LIB的Julia版本,一个技术分析的量化库。
Java
-
JQuantLib
介绍:纯java写的量化金融库,类似于Python的Quantlib -
finmat.net
介绍:数学金融库:与数学金融相关的算法和方法。 -
quantcomponents
介绍:QuantComponents - 用于量化金融和算法交易的免费Java组件 -
DRIP
介绍:固定收益、资产配置、交易成本分析的库
JavaScript
-
QUANTAXIS_Visualziation
介绍:量化数据的可视化 -
quantfin
介绍:haskell的量化金融库 -
hqfl
介绍:Haskell的量化金融库
Scala
-
QuantScale
介绍:Scala量化金融库 -
IFTTT Stock Data Manipulator
介绍:Scala提供股票数据接口API的库
Ruby
- Jiji
介绍:Ruby的算法交易接口
框架
- QuantLib - QuantLib提供了一整套量化金融的接口
- JQuantLib - Java接口
- RQuantLib - R语言接口
- QuantLibAddin - Excel接口
- QuantLibXL - Excel扩展
- QLNet - .Net接口
- PyQL - Python接口
- QuantLib.jl - Julia接口