移植 Python 量化交易 TA-Lib 库到函数计算

本文涉及的产品
简介: 移植 Python 量化交易 TA-Lib 库到函数计算

TA-Lib全称“Technical Analysis Library”, 即技术分析库,是 Python 金融量化的高级库,涵盖了 150 多种股票、期货交易软件中常用的技术分析指标,如 MACD、RSI、KDJ、动量指标、布林带等等。

TA-Lib 可分为 10 个子板块:

Overlap Studies(重叠指标)
Momentum Indicators(动量指标)
Volume Indicators(交易量指标)
Cycle Indicators(周期指标)
Price Transform(价格变换)
Volatility Indicators(波动率指标)
Pattern Recognition(模式识别)
Statistic Functions(统计函数)
Math Transform(数学变换)
Math Operators(数学运算)
screenshot

本文介绍通过 Funcraft 的模板将 Python 量化交易库 TA-lib 移植到函数计算。

依赖工具

本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也同样适用。在开始本例之前请确保如下工具已经正确的安装,更新到最新版本,并进行正确的配置。

Docker
Funcraft
对于 MacOS 用户可以使用 homebrew 进行安装:

brew cask install dockerbrew tap vangie/formulabrew install fun
安装好后,记得先执行 fun config 初始化一下配置。

初始化

使用 fun init 命令可以快捷地将本模板项目初始化到本地。

fun init vangie/ta-lib-example
安装依赖

$ fun installusing template: template.ymlstart installing function dependencies without dockerbuilding ta-lib-example/ta-lib-exampleFunfile exist, Fun will use container to build forcelyStep 1/5 : FROM registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-python3.6:build-1.7.7 ---> 373f5819463bStep 2/5 : COPY ta-lib-0.4.0-src.tar.gz /tmp ---> Using cache ---> 64f9f85112b4Step 3/5 : RUN cd /tmp; tar -xzf ta-lib-0.4.0-src.tar.gz ---> Using cache ---> 9f2d3f836de9Step 4/5 : RUN cd /tmp/ta-lib/ ; ./configure --prefix=/code/.fun/root/usr ; make ; make install ---> Using cache ---> 7725836973d4Step 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 ---> a338e71895b7sha256:a338e71895b74a0be98278f35da38c48545f04a54e19ec9e689bab976265350bSuccessfully built a338e71895b7Successfully tagged fun-cache-d4ac1d89-5b75-4429-933a-2260e2f7fbec:latestcopying function artifact to /Users/vangie/Workspace/ta-lib-example/{{ projectName }}Install SuccessTips for next step====================== Invoke Event Function: fun local invoke Invoke Http Function: fun local start Build Http Function: fun build Deploy Resources: fun deploy
本地调用

$ fun local invokeusing template: template.ymlMissing invokeName argument, Fun will use the first function ta-lib-example/ta-lib-example as invokeNameskip pulling image aliyunfc/runtime-python3.6:1.7.7...FunctionCompute python3 runtime inited.FC Invoke Start RequestId: dc1495b2-13ec-4ecf-a2dc-a0026d82651aFC 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
部署

$ fun deployusing template: template.ymlusing region: cn-shanghaiusing accountId: 4733using accessKeyId: EUz3using timeout: 600Waiting 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 successservice ta-lib-example deploy success
执行

$ fun invokeusing template: template.ymlMissing 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-daec6856bf4aFC Invoke End RequestId: 83e23eba-02b4-4380-bbca-daec6856bf4aDuration: 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"

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6天前
|
Python
使用Python的openpyxl库
【5月更文挑战第17天】使用Python的openpyxl库
26 2
|
19小时前
|
数据采集 Web App开发 测试技术
玩转Python的fake-useragent库
玩转Python的fake-useragent库
|
1天前
|
数据采集 数据可视化 数据处理
利用Python和Pandas库实现高效的数据处理与分析
在大数据和人工智能时代,数据处理与分析已成为不可或缺的一环。Python作为一门强大的编程语言,结合Pandas库,为数据科学家和开发者提供了高效、灵活的数据处理工具。本文将介绍Pandas库的基本功能、优势,并通过实际案例展示如何使用Pandas进行数据清洗、转换、聚合等操作,以及如何利用Pandas进行数据可视化,旨在帮助读者深入理解并掌握Pandas在数据处理与分析中的应用。
|
2天前
|
架构师 数据挖掘 Python
最全pandas库(Python),2024年最新阿里云架构师面试
最全pandas库(Python),2024年最新阿里云架构师面试
最全pandas库(Python),2024年最新阿里云架构师面试
|
2天前
|
机器学习/深度学习 算法 前端开发
2024年8个可以提高数据科学工作效率并节省宝贵时间的Python库,2024年最新记得把每一次面试当做经验积累
2024年8个可以提高数据科学工作效率并节省宝贵时间的Python库,2024年最新记得把每一次面试当做经验积累
2024年8个可以提高数据科学工作效率并节省宝贵时间的Python库,2024年最新记得把每一次面试当做经验积累
|
2天前
|
数据可视化 前端开发 JavaScript
盘点12个Python数据可视化库,通吃任何领域
盘点12个Python数据可视化库,通吃任何领域
|
5天前
|
网络协议 数据处理 调度
深入探索Python异步编程:asyncio库的应用与实践
在现代软件开发中,异步编程已成为处理并发和I/O密集型任务的重要策略。本文将带您深入探索Python的asyncio库,解析其背后的设计原理,并通过实例展示如何在实际项目中应用asyncio实现高效的异步编程。我们不仅会探讨asyncio的基本用法,还会分析其性能优势,并探讨其与其他并发模型的比较。此外,文章还将涵盖asyncio在Web开发、网络编程和数据处理等场景中的应用案例,帮助您更好地理解并掌握这一强大的异步编程工具。
|
5天前
|
程序员 Python
tesseract库的安装与使用及在python中使用,Python程序员秋招三面蚂蚁金服
tesseract库的安装与使用及在python中使用,Python程序员秋招三面蚂蚁金服
|
5天前
|
Python
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
|
6天前
|
数据可视化 Python
Python----matplotlib库
Python----matplotlib库
12 1