python ta-lib ImportError: libta_lib.so.0: cannot open shared object file: No such file or directory

转自:http://www.361way.com/python-talib/6133.html

一、Ta-lib概述

Ta-lib是金融软件中应用广泛的专门用来计算技术指标的开源库,涵盖了200多种市场常见的技术指标运算。它支持java,C,C++,Perl,Python等多种语言。比如股票指标中的EMA(指数移动平均值)和WMA(加权移动平均值)就可以使用该库里的MA函数实现。常用的指标MACD、KDJ、RSI等都可以通过该库里的相关函数进行实现。所以在量化交易中一般会用到该库。

Ta-lib的python集成调用可以在  https://pypi.org/project/TA-Lib/  或 https://github.com/mrjbq7/ta-lib 上找到。

二、python ta-lib模块的安装

这里以Linux上安装为例,macos和windows上的可以参看上面的链接。通过 http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz 下载Ta-lib (2007年版的,n年没更新了,不过这种算法类的东西基本不需要什么变动)。下载完成后,通过如下方法编译安装:

  1. $ tar -xzf ta-lib-0.4.0-src.tar.gz
  2. $ cd ta-lib/
  3. $ ./configure --prefix=/usr
  4. $ make
  5. $ make install

按下来使用pip命令安装ta-lib模块,命令如下:

  1. $ pip install TA-Lib

我这里使用的 Anaconda python3、centos7 x64 的环境,在调用talib模块的时候有报错,如下:

python-talib

出现 ImportError: libta_lib.so.0: cannot open shared object file: No such file or directory 这个报错的原因其实很简单。在2007年左右的时候 LINUX发行版很多还是x86的,在后面的版本中其被淘汰了,而ta-lib这个使用C语言开发的库,默认生成的lib so文件默认还是存放在/usr/lib/下的,而在64位系统下,默认找的是/usr/lib64目录下的,通过cp一份到/usr/lib64下就解决该问题了。

  1. cp /usr/lib/libta_lib.* /usr/lib64/

三、使用示例

这里以kdj指标为例,计算最近10天的kdj指标的结果如下:

  1. #!/usr/bin/env python
  2. # coding=utf8
  3. # Copyright (C) 2015 www.361way.com site All rights reserved
  4. # Author :yangbk <itybku@139.com>
  5. import talib as ta
  6. import tushare as ts
  7. import pandas as pd
  8. dw = ts.get_k_data("600600")
  9. dw = dw[300:]
  10. dw.index = range(len(dw))
  11. dw['slowk'], dw['slowd'] = ta.STOCH(dw['high'].values,
  12. dw['low'].values,
  13. dw['close'].values,
  14. fastk_period=9,
  15. slowk_period=3,
  16. slowk_matype=0,
  17. slowd_period=3,
  18. slowd_matype=0)
  19. df = pd.DataFrame(data=dw)
  20. row = df.iloc[-10:].values
  21. print(row)

 

更多函数用法,可以参考:

python TA-lib模块文档:https://mrjbq7.github.io/ta-lib/doc_index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值