使用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
7會員
19內容數
一個專為金融專業設計的專題。介紹量化交易的基本概念和使用Python進行量化交易策略開發的方法。專題涵蓋金融市場運作、技術分析,實例和代碼提供,幫助理解和應用不同的交易策略和指標。此外,介紹了回測工具的使用和風險管理技巧。本專題為對量化交易有興趣的讀者提供了全面的學習指南。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Parkson Dow的沙龍 的其他內容
本來模組化這件事;打算在我們完成股票池工作之後再來談的。沒想到這幾天,已經有一些朋友反應;大概因為端午節的關係,提前磕了太多粽子,導致有點消化不良。所以左思右想之後,決定提前先上一下模組化的部分。目的在於簡化工作。我們討論系列文章的目的,或許跟大家介紹許多一般比較少用的Python套件、、
首先。先跟大家說一個令人振奮的消息。在這一篇文章當中。我們終於即將完成K線圖形顯示程式。這個未來會常常使用的小工具完工啦!就說興不興奮,高不高興。這段時間總算沒有白費;我們真的給鼓搗出了一些東西,這下子應該不只可以面對家鄉的父老了;都有一種榮歸故里的感覺。
嗨又見面了!接下來就繼續下去我們的程式互動之旅之旅.相信應該沒有人會以為我們用一個簡單的input,就交代了想要的互動功能.在這一篇當中將帶領大家,真正的體會,炫酷又好玩的Jupyter notebook互動功能.將程式介面提升到一個讓自己愛不釋手的檔次。
 大家好。很高興在這個新的部落格上面。有機會能再跟大家一起討論交易的兩三事。未來我們將在這個新的地方上面;與大家一步一步地,建立起屬於我們自己個性化的量化交易平臺;敬請期待。
本來模組化這件事;打算在我們完成股票池工作之後再來談的。沒想到這幾天,已經有一些朋友反應;大概因為端午節的關係,提前磕了太多粽子,導致有點消化不良。所以左思右想之後,決定提前先上一下模組化的部分。目的在於簡化工作。我們討論系列文章的目的,或許跟大家介紹許多一般比較少用的Python套件、、
首先。先跟大家說一個令人振奮的消息。在這一篇文章當中。我們終於即將完成K線圖形顯示程式。這個未來會常常使用的小工具完工啦!就說興不興奮,高不高興。這段時間總算沒有白費;我們真的給鼓搗出了一些東西,這下子應該不只可以面對家鄉的父老了;都有一種榮歸故里的感覺。
嗨又見面了!接下來就繼續下去我們的程式互動之旅之旅.相信應該沒有人會以為我們用一個簡單的input,就交代了想要的互動功能.在這一篇當中將帶領大家,真正的體會,炫酷又好玩的Jupyter notebook互動功能.將程式介面提升到一個讓自己愛不釋手的檔次。
 大家好。很高興在這個新的部落格上面。有機會能再跟大家一起討論交易的兩三事。未來我們將在這個新的地方上面;與大家一步一步地,建立起屬於我們自己個性化的量化交易平臺;敬請期待。
你可能也想看
Google News 追蹤
Thumbnail
本策略採用ATR指標,主要在台指期夜盤勢進行操作,當多方強勢時,站上ATR軌道上原則積極買進操作,當跌破ATR下緣時則停損停利出場,當中包含的移動停利與停損的概念,是非常棒的交易策略。 此策略主要是針對看盤的經驗,將策略轉化為程式進行自動化交易
Thumbnail
這篇文章探討了股票技術分析的基本概念,包括K線圖和移動平均線的定義和用途,以及型態學的應用。此外,文章也介紹了葛蘭碧八大法則的相關內容,並討論了其歷史和潛在侷限性。最後,文章提醒投資者要理解技術分析工具的原理,不依賴單一指標做出投資決策。
Thumbnail
對於剛接觸Python程式的使用者來說,要一口氣學會爬蟲可能相對困難,但若想即時且輕鬆獲得台股相關數據,你可以利用證交所所提供的API進行數據蒐集。只需要簡單幾行程式碼,就能輕鬆抓到台股上千支股票的每日資訊,是不是棒呆了!!
Thumbnail
本文章介紹了股市中常用的技術指標,如相對強弱指標(RSI)、隨機指標(KD)、移動平均線(MA)、動力指標(MTM)、指數平滑異同移動平均線(MACD)、寶塔線。透過這些指標,讓投資者能夠更好地瞭解股票的買賣力道、價格趨勢以及逆勢操作的時機。
Thumbnail
TradingView 是一個供交易者、投資人、教育者和市場愛好者交流、分享想法並討論市場的平臺,提供專業級的交易工具和即時的市場數據。它不僅僅是一個圖表軟件,更是一個強大的社群。本文介紹了 TradingView 的優勢和功能,以及如何使用它來提升投資決策。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
本文為技術分析進階,適合有技術分析基礎者閱讀,不建議未學過基礎技術分析者閱讀
Thumbnail
MACD指標是一個非常流行的技術指標,可用來分析股價的趨勢和動量。它的選股原則、優點和缺點都需要深入了解,才能充分利用它提供的訊號。如果您是投資人,建議使用MACD指標時搭配其他指標使用,以提高分析的精度和可靠性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
本策略採用ATR指標,主要在台指期夜盤勢進行操作,當多方強勢時,站上ATR軌道上原則積極買進操作,當跌破ATR下緣時則停損停利出場,當中包含的移動停利與停損的概念,是非常棒的交易策略。 此策略主要是針對看盤的經驗,將策略轉化為程式進行自動化交易
Thumbnail
這篇文章探討了股票技術分析的基本概念,包括K線圖和移動平均線的定義和用途,以及型態學的應用。此外,文章也介紹了葛蘭碧八大法則的相關內容,並討論了其歷史和潛在侷限性。最後,文章提醒投資者要理解技術分析工具的原理,不依賴單一指標做出投資決策。
Thumbnail
對於剛接觸Python程式的使用者來說,要一口氣學會爬蟲可能相對困難,但若想即時且輕鬆獲得台股相關數據,你可以利用證交所所提供的API進行數據蒐集。只需要簡單幾行程式碼,就能輕鬆抓到台股上千支股票的每日資訊,是不是棒呆了!!
Thumbnail
本文章介紹了股市中常用的技術指標,如相對強弱指標(RSI)、隨機指標(KD)、移動平均線(MA)、動力指標(MTM)、指數平滑異同移動平均線(MACD)、寶塔線。透過這些指標,讓投資者能夠更好地瞭解股票的買賣力道、價格趨勢以及逆勢操作的時機。
Thumbnail
TradingView 是一個供交易者、投資人、教育者和市場愛好者交流、分享想法並討論市場的平臺,提供專業級的交易工具和即時的市場數據。它不僅僅是一個圖表軟件,更是一個強大的社群。本文介紹了 TradingView 的優勢和功能,以及如何使用它來提升投資決策。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
本文為技術分析進階,適合有技術分析基礎者閱讀,不建議未學過基礎技術分析者閱讀
Thumbnail
MACD指標是一個非常流行的技術指標,可用來分析股價的趨勢和動量。它的選股原則、優點和缺點都需要深入了解,才能充分利用它提供的訊號。如果您是投資人,建議使用MACD指標時搭配其他指標使用,以提高分析的精度和可靠性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。