移植 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(數學運算)
本文介紹通過 Funcraft 的模板將 Python 量化交易庫 TA-lib 移植到[函數計算](https://statistics.functioncompute.com/?title=移植 Python 量化交易 TA-Lib 庫到函數計算&author=倚賢&url=http://fc.console.aliyun.com/?fctraceid=YXV0aG9yJTNEJUU1JTgwJTlBJUU4JUI0JUE0JTI2dGl0bGUlM0QlRTclQTclQkIlRTYlQTQlOEQlMjBQeXRob24lMjAlRTklODclOEYlRTUlOEMlOTYlRTQlQkElQTQlRTYlOTglOTMlMjBUQS1MaWIlMjAlRTUlQkElOTMlRTUlODglQjAlRTUlODclQkQlRTYlOTUlQjAlRTglQUUlQTElRTclQUUlOTc=)。
依賴工具
本項目是在 MacOS 下開發的,涉及到的工具是平臺無關的,對于 Linux 和 Windows 桌面系統應該也同樣適用。在開始本例之前請確保如下工具已經正確的安裝,更新到最新版本,并進行正確的配置。
- Docker
- Funcraft
對于 MacOS 用戶可以使用 homebrew 進行安裝:
brew cask install docker brew tap vangie/formula brew install funWindows 和 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 dockerbuilding 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 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 invoke using 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-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: 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 MBfunction ta-lib-example deploy success service ta-lib-example deploy success執行
$ fun invoke using 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-daec6856bf4a FC 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、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的技術圈。”
總結
以上是生活随笔為你收集整理的移植 Python 量化交易 TA-Lib 库到函数计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零开始入门 K8s | Kuberne
- 下一篇: 云原生应用万节点分钟级分发协同实践