NBLOG_20230707使用TA_lib(pandas_TA) 打造一個交易策略實用工具(2TA_lib輕探之馬克快來幫幫手)


NBLOG_20230707使用TA_lib(pandas_TA) 打造一個交易策略實用工具(2TA_lib輕探之馬克快來幫幫手)



在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;所謂一圖勝千言,相信沒有比圖形來呈現這些訊號更好的方式。所以有請我們的馬克兄;出來幫我們解決這個問題。正所謂遇事不決找馬克。那么就先來看看。馬克插手後的結果。
  




看到了馬克兄,他在我們的圖形上精確的標示出所尋獲的吞噬K線產生的位置。在這些位置上標誌的明顯的三角上升符號。這樣是不是看起來更明顯了?更讓大家容易知道在什麼時候發生了這些特殊的K線形態圖形。但要在展示原始碼之前,看起來必須要先對這些標示的符號,做一些簡單的解說。大家都知道mplfinance套件是延伸自matplotlib。所以其實標註的這些特殊符號,也都是在matplotlib裡面就已經被定義與規範的。有興趣的朋友可以在以下文章當中,了解它的詳細使用方法。

 


上面這張圖片。顯示了,如果我們想要在圖片上標示這些特殊符號,應該要如何輸入對應的代碼。比如;2當需要上升三角形符號,必須要在程式當中輸入。’^’ 現在可以一起來看一看今天的主角它的原始碼。

import yfinance as yf
import talib
import mplfinance as mpf
import pandas as pd
%matplotlib notebook

# 下載AAPL股票的資料
symbol = "AAPL"
data = yf.download(symbol, start="2023-01-01", end="2023-06-30")

# 計算吞噬K線組合
engulfing = talib.CDLENGULFING(data['Open'], data['High'], data['Low'], data['Close'])

# 找出吞噬K線組合的日期
engulfing_dates = data.index[engulfing != 0]

# 在吞噬K線組合的日期上標示三角箭頭
data['Arrow'] = pd.Series(index=data.index, dtype='float64')
data.loc[engulfing_dates, 'Arrow'] = data.loc[engulfing_dates, 'Low'] - 2
apd = mpf.make_addplot(data['Arrow'], type='scatter', markersize=60, marker='^', panel=0)

# 繪製K線圖和成交量
mpf.plot(data, type='candle', volume=True, title=symbol, ylabel='Price', addplot=apd)

data['Arrow'] = pd.Series(index=data.index, dtype='float64')
在這裡,我們在下載存放股票資料的data數據框中增加新的一列;命名為箭頭[Arrow]。這裡存放了等一下要顯示三角箭頭符號的價格數據。

data.loc[engulfing_dates, 'Arrow'] = data.loc[engulfing_dates, 'Low'] – 2
這裡修正了要標示三角符號的位置。是位於當天最低價減兩個價位。讓它緊貼著當日最低價,但又有一個合適的距離;以免與最低價重疊。純粹為了顯示美觀。大家可以嘗試去改變這個數字。

apd = mpf.make_addplot(data['Arrow'], type='scatter', markersize=60, marker='^', panel=0) 用於創建一個附加圖表,以便添加到主圖表中。該函數 mpf.make_addplot() 用於創建附加圖表。
type='scatter' 指定圖表類型應為散點圖。
markersize=60 指定散點圖中標記的大小。
marker='^' 指定標記形狀應為向上的三角形。
panel=0 指定附加圖表應添加到主圖表的主面板(面板編號 0)中。
現在我們大家應該都能夠熟悉,這些代碼的意義了吧?到這裡,大家已經能夠非常容易地把產生K線特殊形態的位置順利的標示出來。不過我們應該都很明顯的可以看到;事實上,K線的吞噬圖形,它也包含了向上做多的與向下放空的形態。但是在目前,不論篩選出的是多是空的圖形形態;都是向上的三角箭頭符號。我們可以更改這一行的一個數據。來解決這個問題。
engulfing_dates = data.index[engulfing != 0]
我們把它改成。
engulfing_dates = data.index[engulfing ==100]
現在我們再去執行看看,應該就會發現標示只有做多的吞噬圖形;而其標示的也是對應做多向上的三角箭頭符號。至於做空的吞噬符號,它便不再顯示出來了。


 
那些做空的吞噬圖形,我們怎麼處理呢?這個是在下一篇文章當中想去解決的問題。今天先談到這裡,讓我們期待下次再相見。祝大家交易順利。早安,午安晚安。
對了,讓我插個花做個廣告吧。自從我們的極限交易法課程,又從新開始授課之後;這段時間下來,發現這幾年我的這條上課之路,變得異常坎坷。班車亂了套,食宿費用飛漲。所以最終還是決定調整一下上課的收費價格;請大家見諒!我的上課收費自從這個課程開始以來;就一直固定,從未調整過。此次存屬不得已而為之。面對著課程的第一次價格調整。決定以兩階段來實施。自8月份開始。將先行調整在原收費價格上加收5000元。這個價格應該會維持到今年的中秋節之前。也就是說,在中秋後的第二次價格調整;應該是往後一段長時間的穩定收費。感謝大家的注意以及了解。特別是長時間以來對極限交易法關注與喜愛的朋友。這是一個一對一教授人工交易方式的課程。這也是我整個交易生涯下來,唯一能提供給大家最好的解決交易的方式。協助您在市場上,透過這個方法可以獲得具邏輯性的極致進出場價位。學習之後。花時間實務交易下來,就會像騎腳踏車一般,終生不忘的最佳直覺交易技巧。調整價格之前,歡迎您把握時間,來函洽詢預約上課。





留言

熱門文章