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

  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。


raw-image


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



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

raw-image
raw-image

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

raw-image


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


import yfinance as yfimport talibimport mplfinance as mpfimport 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'] - 2apd = 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]現在我們再去執行看看,應該就會發現標示只有做多的吞噬圖形;而其標示的也是對應做多向上的三角箭頭符號。至於做空的吞噬符號,它便不再顯示出來了。

raw-image



 那些做空的吞噬圖形,我們怎麼處理呢?這個是在下一篇文章當中想去解決的問題。今天先談到這裡,讓我們期待下次再相見。祝大家交易順利。早安,午安晚安。





Parkson Dow
Parkson Dow
留言0
查看全部
發表第一個留言支持創作者!