在Python中使用C TA-Lib函数

2 投票
2 回答
1935 浏览
提问于 2025-04-17 11:09

我在想,有没有人能告诉我,能不能在Python脚本中使用一些在这里找到的TA-LIB函数。我找不到我知道的其他语言中的这些函数……

我看过这篇文章,似乎有一些可能性,但我对文章里的内容理解得不太好,因为我根本不懂C语言。哦,对了,TA-Lib虽然可以在Python上使用,但在Mac上大多数人说安装有问题,根本无法正常运行。

所以,简单来说,我无法让整个应用在swig中工作。我在想,是否可以单独编译这些函数(我甚至不确定这样说是否正确),然后在Python应用中使用它们(希望能得到一些指导)。

2 个回答

0

如果你只需要一个库里的单一功能,使用ctypes会更好。ctypes是Python标准库中的一个模块,它可以让你调用用其他语言写的库,比如C语言。

你只需要在Python控制台上查一下怎么用ctypes把TA-LIB变成Python对象,以及怎么调用你需要的功能。ctypes会自动把整数和字符串转换成C语言能识别的格式,不过对于其他类型的参数,你可能需要做一些额外的标注。

7

我觉得你可以尝试三种简单的方法:

SWIG

TA-Lib自带一个Python的封装,这个封装是通过SWIG生成的。不过这个封装很久没有更新,所以它只能和Python 2.3一起使用。Andy Hawkins写了一些指导,教你怎么让它在更新的Python版本上工作。

Cython

我写了一个TA-Lib的Python封装,它使用Cython来封装TA-Lib里的所有函数,并且我把它发布在了Github上。对我来说,这个封装效果很好,使用了Numpy数组,速度比SWIG接口快2到4倍,更符合Python的风格,而且安装起来更简单(在Mac OS X上可以使用)。

Ctypes

如果你只需要库里的少数几个函数,你可以使用ctypes来调用TA-Lib库里的函数。

撰写回答