文档章节

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

阿里巴巴云原生
 阿里巴巴云原生
发布于 2019/12/24 15:07
字数 843
阅读 36
收藏 0

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(数学运算)

1.png

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

依赖工具

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

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

brew cask install docker
brew tap vangie/formula
brew install fun

Windows 和 Linux 用户安装请参考:

https://github.com/aliyun/fun/blob/master/docs/usage/installation.md

安装好后,记得先执行 fun config 初始化一下配置。

初始化

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

fun init vangie/ta-lib-example

安装依赖

$ 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

本地调用

$ 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

部署

$ 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

执行

$ 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"
]

参考阅读

  1. 函数计算
  2. 【手把手教你】股市技术分析利器之TA-Lib(一)

阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

© 著作权归作者所有

阿里巴巴云原生

阿里巴巴云原生

粉丝 63
博文 266
码字总数 863307
作品 0
杭州
私信 提问
加载中

评论(0)

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

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

倚贤
2019/12/23
0
0
投稿006期|如何成功攻克量化交易面试的心路分享

前言 让我们聊聊面试那些事吧。大多数人大学毕业了就得去找工作,那势必要经过面试这个环节;当然也有小部分人由于在职场上出类拔萃当了领导,那势必也要面试应聘者以选拔合适的人组建自己的...

元宵大师
2018/07/23
0
0
基于 C++/Python 的开源量化交易研究框架 - Hikyuu

Hikyuu Quant Framework是一款基于C++/Python的开源量化交易研究框架,用于策略分析及回测。其核心思想基于当前成熟的系统化交易方法,将整个系统化交易抽象为由市场环境判断策略、系统有效条...

fasiondog
2017/04/28
3W
12
PyConChina2016(上海站)

大会详情 开源编程语言Python近年来在互联网、游戏、云计算、大数据、运维、企业软件等领域有非常多的应用。 PyCon大会是Python语言社群全球性的盛会,PyConChina 是由 CPyUG(华蠎用户组)获得...

活动家
2016/09/05
25
0
[问题解决] talib/_ta_lib.c:526:28: fatal error: ta-lib/ta_defs.h: 没有那个文件或目录

获取源码库 sudo wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz 解压进入目录 tar -zxvf ta-lib-0.4.0-src.tar.gz cd ta-lib/ 编译安装 sudo ./configure --pre......

Eappo_Geng
2019/09/30
30
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在PHP中定义一个空对象

用一个新的数组,我这样做: $aVal = array();$aVal[key1][var1] = "something";$aVal[key1][var2] = "something else"; 对象有类似的语法吗 (object)$oVal = "";$oVal->key1->var1 =......

javail
20分钟前
41
0
从centos服务器上导出项目,记录一次做憨批的工作记录

遇到一个客户,说要从他的centos上导出网站和数据库,以前操作centos都是直接putty上shell,装宝塔,然后面板操作就完事儿了.然后遇到这种dos操作linux,还是第一次. 首先xshell,登录上去后,安装一...

老bia同学
23分钟前
35
0
Linuxprobe第五天

shell命令脚本 一个完整的shell脚本 脚本声明 #!/bin/bash 脚本注释 #xusikkwusxshuusnxu 脚本命令 ls pwd 1、接收参数 2、判断参数 3、流程控制 && 若前面成功,则执行后面 || 若前面失败,...

nt狮子男人
28分钟前
35
0
array_map,array_walk和array_filter之间的区别

array_map , array_walk和array_filter之间究竟有什么区别。 我从文档中看到的是,您可以传递一个回调函数来对提供的数组执行操作。 但我似乎没有发现它们之间有任何特别的区别。 他们做同样...

技术盛宴
35分钟前
69
0
MySQL字符串截取的4个函数

1、从左开始截取字符串 left(str, length) 说明: left(被截取字段,截取长度) 例如: select left(content,200) as abstract from my_content_t 从左边(字符串开始位置)截取指定长...

fairy1674
今天
92
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部