python 无法安装talib_【Python量化干货】技术分析必备库1:TALib与Python接口(1)...

技术分析在股票,期货,外汇,数字货币等领域运用非常多,说到技术分析,不得不提技术分析里面非常著名的一个库,TA-Lib,talib的简称是Technical Analysis Library,主要功能是计算股价的技术分析指标,虽然TA-Lib是一个比较老的库(如果看github上的大更新都是7,8年前),但是对于时间序列分析和金融,股市指标等等还是包括的比较全的(包括超过200多种技术指标, 比如我们耳熟能详的:ADX,MACD,RS,Stochas,BollingerBands 等)而且这个技术分析库也经历过时间的考验,属于比较稳定的中规中矩的技术分析库,是入门非常好的着手点:

官网网址:http://ta-lib.org/

c58117c8486b4a47d67370b6d65a3b2d.png

另外,TA-Lib是用C语言编写的开源软件,其中的Free Open—Source Library也可以实现自定义,执行速度也算较快的。

当然,作为一个好的工具,TA-Lib给我们提供的接口也非常多,有C/C++,JAVA,Python,.NET等,因为WindQuant上等在线策略研究类平台目前只能用Python,可能是为了迎合现在“全民量化”的趋势,所以选用了热门的“脚本语言”,所以我们暂时只用Python接口做快速的策略构建和回测,在交易执行阶段或者需要本地运行,性能要求等再通过C/C++本地重构即可。

但是这个库在国内非常小众,几乎找不到任何API用例和文档,在量化平台上通常是直接调且均只能在云端完成,不能本地分析与操作,所以我们将TA-Lib的常见操作与坑进行了总结如下:

1.首先我们看看如何安装TA-Lib并通过Python调用TA-Lib进行计算与分析:

TA-Lib 最开始用的SWIG进行封装,

附:SWIG官网如下:

http://www.swig.org/

SWIG是一种可以将C/C++代码转换为多种脚本语言封装的工具,TA-Lib最初就是用C写并且用SWIG封装的,但弱势也很明显,异常难安装,而且效率并不高,量化交易与分析中,我们时刻需要牢记效率的重要性,于是接下来我们介绍的是通过Cython封装,是SWIG封装效率的2-4倍左右

Windows版本:

首先介绍一种我们认为最快速的解决方法,利用国际上比较主流的量化交易Quantopia在Python的集成科学计算开发环境Anaconda里的repo直接进行安装:

附:Quantopia官网如下:

https://www.quantopian.com/

1.首先我们先安装Anaconda

在官网下载windows版本,地址如下:

https://www.anaconda.com/download/#windows

下载后点击安装,可以一路点击确认,但是到环境变量这里需要注意一下:

d9eddfd41593e734de43358b96e82636.png

一般来说我们只需要勾选第二个选项就可以了。

第二个选项的意思是,允许其他程序,例如用于Visual Studio,Pycharm,PyCharm, Wing IDE, PyDev,和MSI二进制包自动

检测Anaconda作为系统上的主要Python 3.6,第一个选项涉及到环境变量,我们其实没有必要设置,只需要每次打开Aanaconda就可以进行操作

2.在安装好Anaconda后打开Anaconda Prompt:

输入

conda install -c quantopian ta-lib

9082e406318b5b64f322e05c2191ed9d.png

当然,在国内的小伙伴如果因为网络问题导致下载速度缓慢或者无法下载报CondaHTTPError,也可以通过添加国内镜像(我们在很多地方都推荐清华镜像,非常好用)

附:清华镜像官网与教程

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

输入加入清华镜像命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

当然,如果需要挑战一下困难模式也可以手动进行安装ta-lib,编译并再通过pip安装python封包的ta-lib,记住我们是不能直接通过pip进行安装ta-lib的,如果直接这么做会报以下错误:

func.c:256:28: fatal error: ta-lib/ta_libc.h: No such file or directory

compilation terminated.

所以我们先要安装ta-lib后再通过pip安装:

附:ta-lib安装说明地址

https://mrjbq7.github.io/ta-lib/install.html

关键的几步与常见的坑如下:

1.先下载ta-lib-0.4.0-msvc.zip,地址如下:

http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-msvc.zip

2.下载完毕后解压到:

C:\ta-lib    

注意地址一定要正确,set_up.py文件问到这个地址里面去找,不能更改!

3.(64位Python需要手动编译)下载Visual Studio Community 2015,并选中visual C++

在开始菜单中搜索并且打开 VS2015 x64 Native Tools Command Prompt

输入

cd C:\ta-lib\c\make\cdr\win32\msvc

并通过输入以下命令进行编译

nmake

以上操作之后我们就在系统层面安装好了ta-lib,

4.接着就可以进入命令行,直接通过pip进行安装了,输入:

pip install TA-Lib

Mac安装

Mac的安装相比Windows要简单许多,只需要两步就可以完成:

首先通过homebrew安装TA-Lib

输入

brew install ta-lib

第二步输入

pip install TA-Lib

即可搞定

最后,我们可以进入Jupyter Notebook或者jupyterLab等自己最舒服的编辑环境,测试一下,输入:

import numpy as np

import talib

如果没有报错,证明numpy,talib已经没有任何问题了,练练手,创建一个模拟收盘价数据试试SMA,为了大家看得清楚,我们假设某只股票的股价从1块钱开始涨,每天涨1块,涨了30天:

c6f2c04676b7c5fc91d57c0fab9ef7bd.png注意我们这里特意一个一个打入,就是因为TA-Lib坑非常非常多,比如

可能会见到的两个错误:

1:TypeError: Argument ‘real’ has incorrect type (expected numpy.ndarray, got list)

2:Exception: real is not double

第一个报错的原因是TA-Lib处理的是数组,这就是为什么我们最开始需要导入pandas,也就是说时间序列需要以数组array的形式输入到TA-Lib进行相应计算

第二个报错的原因是可能你输入的是real数据,需要转换格式,到double float的数据(这就是为什么我们即使测试的收盘价是1块钱,我们也写成1.0)。

未完待续......

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值