使用TA_lib打造一個交易策略實用工具(1TA_lib輕探)[QuantTradingwithPython_5]

更新 發佈閱讀 13 分鐘
投資理財內容聲明


raw-image



使用TA_lib(pandas_TA) 打造一個交易策略實用工具(1TA_lib輕探)

剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。協助每天將1000多隻股票篩選出最具有潛力,未來可以做為進出依據的標的。甚至我們嘗試著,在這一個階段打造出一個方便來開發交易策略的工具。而這一切的一切;能夠協助完成的一個重要Python套件,它就是有名的TA_ Lib。顧名思義,這個TA就是指技術分析。然後這個Lib的一詞,就是它可以幫你召喚來層出不窮,難以數計的技術分析工具。所以才足堪為library。

GitHub - HuaRongSAO/talib-document: talib學習 talib中文翻譯 talib中文文檔 --- GitHub - HuaRongSAO/talib-document: talib学习 talib中文翻譯 talib中文文檔

在這裡,你可以找到介紹它的線上版使用手冊。




Includes 150+ indicators such as ADX, MACD, RSI, Stochastic, Bollinger Bands, etc.

包括 150+ 指標,如 ADX、MACD、RSI、隨機指標、布林带等。

Candlestick pattern recognition

K線形態識別

Open-source API for C/C++, Java, Perl, Python and 100% Managed .NET

适用于C / C++,Java,Perl,Python和100%托管.NET的开源API

包含了150多个指标,包括:ADX, MACD, RSI, Stochastic, Bollinger Bands, 等.

K线形態識別

完全开源,支持 C/C++, Java, Perl, Python and 100% Managed .NET

完全开源,支持 C/C++, Java, Perl, Python and 100% Managed .NET

透過文件上的介紹,我們現在大約知道,TA_lib提供了超過150種以上的技術指標分析工具。然後也包含了好好幾十種。常用的K線形態識別功能。在過往,安裝這個傢伙是一個非常不愉快的經驗。每一個人都有曾經被它整得七葷八素死去活來的經驗。原因是因為它的基底是由C來撰寫。所以必須要去安裝許多關於C以及.net的一些元件。不只是非得安裝,而且還規定你。在一個適當的位置去安裝它。安裝這個傢伙實在是令人視為畏途。這幾年有一個非常好的方式,可以一次就搞定。這簡直是一個嘉惠世人的偉大行為,值得表揚。那就是千萬不要透過pip install去安裝它。為了不要給自己沒事找麻煩。請動動小手,前往以下的連結。Python Extension Packages for Windows - Christoph Gohlke (uci.edu) 然後選擇自己對應的Python版本下載它的whl檔案進行安裝。只要版本選擇沒有出現問題;幾乎是一次就能過關的。接下來我們就能夠好好的來使用它了。

剛才已經稍微介紹過TA_Lib的強大功能。我們也沒有辦法一次把它全部介紹完成。所以按照往例,會在每一篇文章中,當需要用到這些套件的時候,再針對所需要的功能做介紹。目前第一部所要用到的就是建立每日工作的篩選股票池。首先要借用的便是它的K線形態辨識功能。今天就先來例舉一段程式介紹;走起。

import yfinance as yf

import talib

import pandas as pd




# 下载 TSLA 股票数据

data = yf.download("TSLA", start="2023-01-01", end="2023-06-28")




# 计算吞噬的 K 线组合

data['engulfing'] = talib.CDLENGULFING(data['Open'], data['High'], data['Low'], data['Close'])




# 筛选出吞噬的 K 线组合

engulfing = data[data['engulfing'] != 0]




# 输出结果

print(engulfing)

執行結果輸出 :

*********************100%***********************]  1 of 1 completed

                  Open        High         Low       Close   Adj Close  \

Date                                                                     

2023-01-06  103.000000  114.389999  101.809998  113.059998  113.059998   

2023-01-10  121.070000  122.760002  114.919998  118.849998  118.849998   

2023-03-06  198.539993  198.600006  192.300003  193.809998  193.809998   

2023-03-16  180.369995  185.809998  178.839996  184.130005  184.130005   

2023-03-17  184.520004  186.220001  177.330002  180.130005  180.130005   

2023-04-12  190.740005  191.580002  180.309998  180.539993  180.539993   

2023-04-18  187.149994  187.690002  183.580002  184.309998  184.309998   

2023-05-10  172.550003  174.429993  166.679993  168.539993  168.539993   

2023-05-12  176.070007  177.380005  167.229996  167.979996  167.979996   

2023-06-06  216.139999  221.910004  212.529999  221.309998  221.309998   

2023-06-08  224.220001  235.229996  223.009995  234.860001  234.860001   

2023-06-21  275.130005  276.989990  257.779999  259.459991  259.459991   




               Volume  engulfing  

Date                              

2023-01-06  220911100        100  

2023-01-10  167642500       -100  

2023-03-06  128100100       -100  

2023-03-16  121136800        100  

2023-03-17  133197100       -100  

2023-04-12  150256300       -100  

2023-04-18   92067000       -100  

2023-05-10  119840700       -100  

2023-05-12  157577100       -100  

2023-06-06  146911600        100  

2023-06-08  164489700        100  

2023-06-21  211797100       -100  

範例程式說明。

import yfinance as yf

import talib

import pandas as pd

在這段程式當中。我們首先必須宣告使用這3個引入的套件。yFinance是大家熟悉的老朋友了。talib是我們這次的主角。最後,我們還必須要匯入大名鼎鼎的。pandas來協助我們處理數據框的工作。




# 计算吞噬的 K 线组合

data['engulfing'] = talib.CDLENGULFING(data['Open'], data['High'], data['Low'], data['Close'])

這一段敘述就是程式碼裡面的靈魂。說明如何使用talib來幫我們尋找符合吞噬圖形的形態。然後將結果存入得data這個我們原存放股票歷史資料數據框裡面。在這個數據框裡多增加了一列名為吞噬的資料。在talib的規定當中,如果資料當中不符合所需要的條件;那么會在這一列對應的日期欄位當中表示為0。如果尋找到可以做多的吞噬型態,該欄改標示為100。相對的,如果尋找到的是屬於做空的吞噬圖形。則標示為-100。在這裡有一個使用的規則,或者是習慣想跟大家說明一下。在這條敘述當中,為什麼必須要帶入開高低收這4個數據呢?因為當執行型態辨識的時候。它必須要去用到。開高低收數據來運算,所以我們必須要帶入供它使用。相對的,如果在未來,比如我們使用計算MACD之類的話。那么,我們僅需要帶入收盤價便可。因為在MACD的運算當中;其他的價格並不需要用到。這就是talib帶入的其中一項使用規則。是我們必須要去了解的。基本上它跟其他套件引入參數的規定與用法沒有其他不同。

# 筛选出吞噬的 K 线组合

engulfing = data[data['engulfing'] != 0]




# 输出结果

print(engulfing)

所以我們可以在這裡。篩選將該列當中不等於零的結果,存放在吞噬這個變數當中。最終,把這個篩選結果的數據框列印出來。這樣就完成了我們所需要的工作。還是很簡單吧,用不了幾行,那就趕快動手玩起來。

在以下連結的說明文件當中。我們可以找到talib所有的有關型態辨識的名稱。

talib-document/func_groups/pattern_recognition.md at master · HuaRongSAO/talib-document · GitHub

只要把相對的名稱去置換程式當中;就能夠協助我們尋找出需要的對應形態了;非常方便。我記得它也可以使用All的指令。這代表了一次把所有的K線形態。找齊,省得麻煩。有興趣的大家可以試試看。以下我就試著轉幾個一般認為比較值得信賴的形態,提供給大家參考。

函数名:CDL3BLACKCROWS 函数名:CDL3BLACKCROWS

名称:Three Black Crows 三只乌鸦

简介:三日K线模式,连续三根阴线,每日收盘价都下跌且接近最低价, 每日开盘价都在上根K线实体内,预示股价下跌。




函数名:CDL3WHITESOLDIERS 函数名:CDL3WHITESOLDIERS

名称:Three Advancing White Soldiers 三个白兵

简介:三日K线模式,三日K线皆阳, 每日收盘价变高且接近最高价,开盘价在前一日实体上半部,预示股价上升。




函数名:CDLEVENINGSTAR 函数名:CDLEVENINGSTAR

名称:Evening Star 暮星

简介:三日K线模式,与晨星相反,上升趋势中, 第一日阳线,第二日价格振幅较小,第三日阴线,预示顶部反转。




函数名:CDLMORNINGSTAR 函数名:CDLMORNINGSTAR

名称:Morning Star 晨星

简介:三日K线模式,下跌趋势,第一日阴线, 第二日价格振幅较小,第三天阳线,预示底部反转。




函数名:CDLRISEFALL3METHODS 名称:Rising/Falling Three Methods 上升/下降三法

简介: 五日K线模式,以上升三法为例,上涨趋势中, 第一日长阳线,中间三日价格在第一日范围内小幅震荡, 第五日长阳线,收盘价高于第一日收盘价,预示股价上升。

這就是今天對talib所做的一個非常簡單的探索以及介紹。今天就先到這裡假日愉快下期見。

raw-image





留言
avatar-img
Parkson Dow的沙龍
9會員
19內容數
一個專為金融專業設計的專題。介紹量化交易的基本概念和使用Python進行量化交易策略開發的方法。專題涵蓋金融市場運作、技術分析,實例和代碼提供,幫助理解和應用不同的交易策略和指標。此外,介紹了回測工具的使用和風險管理技巧。本專題為對量化交易有興趣的讀者提供了全面的學習指南。
Parkson Dow的沙龍的其他內容
2023/12/19
本期這篇文章。將迎來我們建構股票池工具的收官之作。依照慣例,追劇的每一季結尾,代表著總要對每一季階段性的故事做一個交代。然後也必須要適時的加入一些念想。
Thumbnail
2023/12/19
本期這篇文章。將迎來我們建構股票池工具的收官之作。依照慣例,追劇的每一季結尾,代表著總要對每一季階段性的故事做一個交代。然後也必須要適時的加入一些念想。
Thumbnail
2023/12/18
首先、本來想在這一邊做一個收官,用來結束我們創建股票池工具的階段工作。如此也可以讓我們展開往後的策略設計,以及回測的工作。
Thumbnail
2023/12/18
首先、本來想在這一邊做一個收官,用來結束我們創建股票池工具的階段工作。如此也可以讓我們展開往後的策略設計,以及回測的工作。
Thumbnail
2023/12/18
技術文件   # Pattern Recognition Functions 形態識別    ### CDL2CROWS - Two Crows > 函數名:CDL2CROWS   名稱:Two Crows 兩隻烏鴉   簡介:三日K線模式,第一天長陽,第二天高開收陰,
Thumbnail
2023/12/18
技術文件   # Pattern Recognition Functions 形態識別    ### CDL2CROWS - Two Crows > 函數名:CDL2CROWS   名稱:Two Crows 兩隻烏鴉   簡介:三日K線模式,第一天長陽,第二天高開收陰,
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
Thumbnail
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
Thumbnail
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
Thumbnail
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
Thumbnail
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
Thumbnail
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
Thumbnail
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
Thumbnail
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
Thumbnail
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
Thumbnail
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
Thumbnail
常常我們在財經節目聽到一堆技術指標都可以成功獲利,但真的如此嗎? 這麼簡單的技術指標操作就能獲利,早就人人變成有錢人了! 相信數據會說話,身為軟體工程師就最喜歡用數字來解讀一切了,因此這個篇章將會手把手教你如何使用Python語言來回測你的股票及交易策略。 剛接觸股市時最常聽到的就是KD、RSI、
Thumbnail
常常我們在財經節目聽到一堆技術指標都可以成功獲利,但真的如此嗎? 這麼簡單的技術指標操作就能獲利,早就人人變成有錢人了! 相信數據會說話,身為軟體工程師就最喜歡用數字來解讀一切了,因此這個篇章將會手把手教你如何使用Python語言來回測你的股票及交易策略。 剛接觸股市時最常聽到的就是KD、RSI、
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News