TA-Lib 可分为 10 个子板块:
* Overlap Studies(重叠指标)
* Momentum Indicators(动量指标)
* Volume Indicators(交易量指标)
* Cycle Indicators(周期指标)
* Price Transform(价格变换)
* Volatility Indicators(波动率指标)
* Pattern Recognition(模式识别)
* Statistic Functions(统计函数)
* Math Transform(数学变换)
* Math Operators(数学运算)
![](https://img.alicdn.com/tfs/TB1pFE6rAL0gK0jSZFAXXcA9pXa-553-183.png)
![](https://data-analysis.cn-shanghai.log.aliyuncs.com/logstores/article-logs/track_ua.gif?APIVersion=0.6.0&title=%E7%A7%BB%E6%A4%8D%20Python%20%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93%20TA-Lib%20%E5%BA%93%E5%88%B0%E5%87%BD%E6%95%B0%E8%AE%A1%E7%AE%97&author=%E5%80%9A%E8%B4%A4&src=article)
本文介绍通过 Funcraft 的模板将 Python 量化交易库 TA-lib 移植到[函数计算](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fstatistics.functioncompute.com%2F%3Ftitle%3D%25E7%25A7%25BB%25E6%25A4%258D%2520Python%2520%25E9%2587%258F%25E5%258C%2596%25E4%25BA%25A4%25E6%2598%2593%2520TA-Lib%2520%25E5%25BA%2593%25E5%2588%25B0%25E5%2587%25BD%25E6%2595%25B0%25E8%25AE%25A1%25E7%25AE%2597%26amp%3Bauthor%3D%25E5%2580%259A%25E8%25B4%25A4%26amp%3Burl%3Dhttp%253A%252F%252Ffc.console.aliyun.com%252F%253Ffctraceid%253DYXV0aG9yJTNEJUU1JTgwJTlBJUU4JUI0JUE0JTI2dGl0bGUlM0QlRTclQTclQkIlRTYlQTQlOEQlMjBQeXRob24lMjAlRTklODclOEYlRTUlOEMlOTYlRTQlQkElQTQlRTYlOTglOTMlMjBUQS1MaWIlMjAlRTUlQkElOTMlRTUlODglQjAlRTUlODclQkQlRTYlOTUlQjAlRTglQUUlQTElRTclQUUlOTc%253D)。
依赖工具
----
本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也同样适用。在开始本例之前请确保如下工具已经正确的安装,更新到最新版本,并进行正确的配置。
* [Docker](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fwww.docker.com%2F)
* [Funcraft](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2Ffuncraft)
对于 MacOS 用户可以使用 [homebrew](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fbrew.sh%2F) 进行安装:
```
brew cask install docker
brew tap vangie/formula
brew install fun
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
Windows 和 Linux 用户安装请参考:
[https://github.com/aliyun/fun/blob/master/docs/usage/installation.md](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Faliyun%2Ffun%2Fblob%2Fmaster%2Fdocs%2Fusage%2Finstallation.md)
安装好后,记得先执行 `fun config` 初始化一下配置。
初始化
---
使用 fun init 命令可以快捷地将本模板项目初始化到本地。
```
fun init vangie/ta-lib-example
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
安装依赖
----
```
$ fun install
using template: template.yml
start installing function dependencies without docker
building ta-lib-example/ta-lib-example
Funfile exist, Fun will use container to build forcely
Step 1/5 : FROM registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-python3.6:build-1.7.7
---> 373f5819463b
Step 2/5 : COPY ta-lib-0.4.0-src.tar.gz /tmp
---> Using cache
---> 64f9f85112b4
Step 3/5 : RUN cd /tmp; tar -xzf ta-lib-0.4.0-src.tar.gz
---> Using cache
---> 9f2d3f836de9
Step 4/5 : RUN cd /tmp/ta-lib/ ; ./configure --prefix=/code/.fun/root/usr ; make ; make install
---> Using cache
---> 7725836973d4
Step 5/5 : RUN TA_LIBRARY_PATH=/code/.fun/root/usr/lib TA_INCLUDE_PATH=/code/.fun/root/usr/include fun-install pip install TA-Lib
---> Using cache
---> a338e71895b7
sha256:a338e71895b74a0be98278f35da38c48545f04a54e19ec9e689bab976265350b
Successfully built a338e71895b7
Successfully tagged fun-cache-d4ac1d89-5b75-4429-933a-2260e2f7fbec:latest
copying function artifact to /Users/vangie/Workspace/ta-lib-example/{{ projectName }}
Install Success
Tips for next step
======================
* Invoke Event Function: fun local invoke
* Invoke Http Function: fun local start
* Build Http Function: fun build
* Deploy Resources: fun deploy
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
本地调用
----
```
$ fun local invoke
using template: template.yml
Missing invokeName argument, Fun will use the first function ta-lib-example/ta-lib-example as invokeName
skip pulling image aliyunfc/runtime-python3.6:1.7.7...
FunctionCompute python3 runtime inited.
FC Invoke Start RequestId: dc1495b2-13ec-4ecf-a2dc-a0026d82651a
FC Invoke End RequestId: dc1495b2-13ec-4ecf-a2dc-a0026d82651a
[
"HT_DCPERIOD",
"HT_DCPHASE",
"HT_PHASOR",
"HT_SINE",
"HT_TRENDMODE"
]
RequestId: dc1495b2-13ec-4ecf-a2dc-a0026d82651a Billed Duration: 350 ms Memory Size: 1998 MB Max Memory Used: 34 MB
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
部署
--
```
$ fun deploy
using template: template.yml
using region: cn-shanghai
using accountId: ***********4733
using accessKeyId: ***********EUz3
using timeout: 600
Waiting for service ta-lib-example to be deployed...
Waiting for function ta-lib-example to be deployed...
Waiting for packaging function ta-lib-example code...
The function ta-lib-example has been packaged. A total of 39 files files were compressed and the final size was 3.23 MB
function ta-lib-example deploy success
service ta-lib-example deploy success
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
执行
--
```
$ fun invoke
using template: template.yml
Missing invokeName argument, Fun will use the first function ta-lib-example/ta-lib-example as invokeName
========= FC invoke Logs begin =========
FC Invoke Start RequestId: 83e23eba-02b4-4380-bbca-daec6856bf4a
FC Invoke End RequestId: 83e23eba-02b4-4380-bbca-daec6856bf4a
Duration: 213.86 ms, Billed Duration: 300 ms, Memory Size: 128 MB, Max Memory Used: 43.50 MB
========= FC invoke Logs end =========
FC Invoke Result:
[
"HT_DCPERIOD",
"HT_DCPHASE",
"HT_PHASOR",
"HT_SINE",
"HT_TRENDMODE"
]
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
[原文链接](https://link.zhihu.com/?target=https%3A//yq.aliyun.com/articles/739645%3Futm_content%3Dg_1000094672)
本文为阿里云内容,未经允许不得转载。
分享到:
相关推荐
Python是一种广泛使用的高级编程语言,尤其在服务器端和科学计算领域有着广泛的运用。然而,Python标准解释器默认是为x86或x64架构设计的,因此在嵌入式设备,如搭载ARM架构的Linux系统上运行时,需要进行移植工作。...
5. **sqlite3.dll**:SQLite是一个轻量级的数据库引擎,被集成到Python中作为标准库的一部分。这个DLL文件让你可以在Python程序中直接操作数据库。 6. **vcruntime140.dll** 和 **vcruntime140_1.dll**:这两个是...
TA-Lib是一个广泛使用的开源技术分析库,它提供了大量的技术指标和函数,如移动平均线、相对强弱指数(RSI)、MACD等,这些在金融市场上用于识别股票趋势、支撑和阻力位以及交易信号。通过将TA-Lib集成到容器中,...
3. **移植uC-LIB**:将uC-LIB库中的函数映射到STM32的内存空间,并根据具体需求调整配置。 4. **配置RTOS任务**:定义并创建运行在uC/OS-III上的任务,每个任务可能使用uC-LIB提供的功能。 5. **调试与优化**:...
Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了...
STM32 Cryp-Lib是专门针对STM32微控制器系列设计的一款加密库,它集成了多种加密算法,为开发者提供了强大的安全功能,确保在STM32芯片上进行的数据保护和安全通信。这个库主要用于STM32工程项目的加密,确保代码、...
基于stm32f429,把Python移植到cortex-M4 平台,在非操作系统平台运行python源码,python基于官方3.6.5版本移植。
alsa-lib-1.2.2 移植库,适用于嵌入式linux下alsa的开发,配合alsa工具库,进行音频的采集和播放。
Python在云基础设施、DevOps、网络爬虫、数据分析、机器学习等领域有广泛的应用,包括Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等...
每个模块都来自以下来源之一(因此每个模块都有其自己的许可条款): 从头开始专门为MicroPython编写从CPython移植从其他Python实现移植而来,例如PyPy 某些模块实际上尚未实现并且是虚拟的注意,micropython-lib的...
Funcat 的核心理念就是将这些公式的语法移植到 Python,使得熟悉这类公式语法的用户能够无缝过渡到 Python 开发环境,无需再学习新的编程语言或函数库。 Funcat 库的主要特性包括: 1. **兼容性**:Funcat 兼容了...
“分布式”和“云原生”(cloud native)标签则表明python3-wrapper-vcx库可能是为处理分布式计算和云环境设计的。云原生意味着它遵循了云架构的原则,如容器化、微服务、持续交付和声明式API,以实现可移植性、弹性...
Python库是开发者在编程时经常会使用到的重要工具,它们提供了丰富的功能,可以帮助程序员高效地完成各种任务。在本文中,我们将深入探讨标题为"Python库 | west-0.6.0rc2-py3-none-any.whl"的资源,以及其在Python...
6. 兼容性与移植性:STM8-TOUCH-LIB应与ST的标准开发环境如STM8CubeIDE兼容,同时库的结构和API设计应有利于在不同STM8L系列MCU间的移植。 总的来说,STM8-TOUCH-LIB为开发者提供了一个便捷的平台,使他们能够在STM...
本文档提供了基于QCC51XX平台的Sony LDAC算法移植指引,旨在帮助开发者将LDAC解码器库移植到ADK6.4.0+QCC5121平台上。LDAC(Low Latency Audio Codec)是一种低延迟音频编解码算法,广泛应用于蓝牙音频传输中。 在...
7. **将扩展模块移植到 Python 3**:由于 Python 2 和 Python 3 在语法和API上有显著差异,开发者需要了解移植策略和工具,以确保扩展模块在 Python 3 下正常工作。这部分内容将涵盖迁移过程中的常见挑战和解决方案...
Python库是开发者在编程时经常会用到的工具,它们提供了丰富的功能,可以帮助程序员快速实现特定任务,提高开发效率。在本例中,我们关注的是名为`python3_albow-2.87-py3-none-any.whl`的Python库。这个库是专为...
**Python库 - frida-15.0.0-py3.8-win-amd64.egg** 在Python编程环境中,库(Library)是至关重要的组成部分,它们提供了丰富的功能,帮助开发者实现各种复杂的任务。本资源是`frida-15.0.0-py3.8-win-amd64.egg`,...
alsa-lib alsa-utils移植到arm的脚本
python3-utils库很可能是一个针对Python 3的通用工具集合,包含了一系列实用函数或类,旨在简化常见的编程任务。虽然具体的函数和功能没有在描述中给出,但我们可以推测它可能包含字符串处理、数据类型转换、文件...