NBLOG_20230731使用TA_lib(pandas_TA) 打造一個交易策略實用工具(4TA_lib輕探之抽到機會卡退回上一步)
NBLOG_20230731使用TA_lib(pandas_TA) 打造一個交易策略實用工具(4TA_lib輕探之抽到機會卡退回上一步)
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。沒想到這個隱藏的禍因。最終還是在最近结出了果來。至於發生了什麼事呢?就讓我接續的上期文章的進展。一步步的道來。
在上一期的文章,我們順利的解決了顯示吞噬的K線形態,並採用紅色與綠色來分別顯示多頭與空頭的形態。所以就想在此處先來做一個小的總結。把上次的程式碼做一個模組化。所以有了以下的模組化程式碼。
import yfinance as yf
import talib
import mplfinance as mpf
import pandas as pd
def plot_candlestick_with_pattern(symbol, pattern):
# 下載股票資料
data = yf.download(symbol, start="2023-01-01", end="2023-07-28")
# 計算 K線形態。
pattern_result = getattr(talib, pattern)(data['Open'], data['High'], data['Low'], data['Close'])
# 將形態結果加入資料表
data['Pattern'] = pattern_result
# 找出符合形態的日期
pattern_dates = data.index[pattern_result != 0]
# 在符合形態的日期上標示箭頭
data['UpArrow'] = pd.Series(index=data.index, dtype='float64')
data['DownArrow'] = pd.Series(index=data.index, dtype='float64')
for date in pattern_dates:
if pattern_result[date] == 100:
data.loc[date, 'UpArrow'] = data.loc[date, 'Low'] - 2
elif pattern_result[date] == -100:
data.loc[date, 'DownArrow'] = data.loc[date, 'High'] + 2
# 繪製K線圖和成交量
up_apd = mpf.make_addplot(data['UpArrow'], type='scatter', markersize=60, marker='^', panel=0, color='red')
down_apd = mpf.make_addplot(data['DownArrow'], type='scatter', markersize=60, marker='v', panel=0, color='green')
mpf.plot(data, type='candle', volume=True, title=symbol, ylabel='Price', addplot=[up_apd, down_apd])
# 輸出報表
data.to_csv('report.csv')
如此這般之後。咱們的執行程序碼就可以縮減為以下幾行
symbol = "TSLA"
pattern = "CDLENGULFING"
plot_candlestick_with_pattern(symbol, pattern)
嗯、感覺就是一個熟悉的老配方,藥效不變。在總結的執行程序碼當中,我們加入了型態pattern的這一個變數。聰明如你的朋友們,應該在這裡就可以看出來我的企圖心。希望透過這個變數的活用變通性。一次就能掌握其他的K線形態;一統江湖、千秋萬載。而結果就是無情的被啪啪打臉!在這個點上,產生了這篇文章與上一篇文章之間的嚴重拖更。讓我們繼續說下去。
初步的想法;就是在吞噬獲得成功之後,接著把幾個自己認為獲胜率比較高的?K線形態一起給它掛上去。首先就想嘗試把晨星Morning Star先掛上去試試看;沒想到這一次就出事了。這個早晨之星,足足讓我從早上等到黃昏。然後一等就是整個星期甚至大有等來地老天荒的可能。最終在理智線與生命線斷開二擇一的考慮下,先跳開休息冷靜幾天,再看它如何。
在這思索問題解答的某一天。一處偶遇路旁一棵菩提樹。由於酷暑難耐。於是便到菩提樹蔭下休息。在休息經過七七四十九分鐘之後。為了湊得整數,以求功德圓滿。於是又呆坐了11分鐘湊足一個小時。沒想到這個堅定執行愚蠢行為的決心,最終還是感動了天地。這是繼上一次臥冰求鯉之後另一個成功的案例。此時心中忽然一片澄明。發現自己簡直就是一個超級宇宙大白癡。晨星的形態本來就是屬於多頭的。我要是能夠用綠色向下箭頭標出來才有鬼。沒想到這一周的時間,竟然就卡在這個幼稚的問題上面。真是讓人哭笑不得。
冷靜下來總結;發現到目前我們的進度,也並不是完全一無所得。除了晨星夜星這些一開始就選邊站的形態之外。還是有一些形態跟吞噬一樣,可以分多空以顏色來區分的。比如說我們熟悉的母子HARAMI形態。
# 使用範例
symbol = "NVDA"
pattern = "CDLHARAMI"
plot_candlestick_with_pattern(symbol, pattern)
看來它也不是完全一無是處的,對吧?所以這一個多星期的卡關,以及隨後好幾日的自閉;感覺就像玩大富翁抽機會卡,結果抽到了一張退回上一步的卡片。感覺就是一個難過到好像吞進了一隻蒼蠅。除了無奈又能如何?結論就是咱們的紅綠燈大概衹能先閃到一邊了。為了繼續完成我們的統治銀河系的野心,將大多數的K線形態搜索功能集中在一個工具裡面,被迫必須退回一個中性的區域。衹能使用標誌位置來滿足我們的需求。但是也相對的給了我們擴張形態範圍的能力。TaLib提供的所有k線形態變式。有興趣的朋友可以參考以下的網址。
這裡是包含的所有TaLib所能夠辨識的K線形態,以及調用函數的範例。形態的中文翻譯部分,應該是對岸的某位有心網友,用心翻譯來的。請大家用力的給他鼓鼓掌。不然原先形態上面所使用的那些小日子過得不錯的使用文字。要努力的記起來,還不衹是一個吃力可以形容。
好吧。已經交代了這次拖更的原因。從下一篇文章開始。我們就要來開始拓展其他的K線形態辨識工作。當大家看到這篇文章的時候,應該已經邁入了8月份了。如果錯過了前幾篇文章的公告。在此容我再提醒一次。自8月份開始。我們的極限交易法小班制課程。將調整收費至每人5萬。這是一個完全人工機械化交易的方法的課程。跟程式化交易無關。所以完全不需要任何程式交易方面的經驗或知識。當然,如果你已經事先讀過我的背離交易方面的著作;會讓學習起來更有效率。這期文章就到此結束。祝您交易獲利。萬事順利。跟您道早安,午安晚安。我們下期見。
留言
張貼留言