iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
永豐金融APIs

理財達人Mx. Ada系列 第 22

[第22天]理財達人Mx. Ada-MACD 指標

前言

本文說明MACD技術指標。

MACD 指標

MACD指標(Moving Average Convergence & Divergence)為平滑異同移動平均線指標, 股票技術分析,會用這個指標來判斷股價走勢,確定波段漲幅並找到買賣點, 最常用的值為12天、26天、9天,也稱為MACD(12,26,9)。
MACD指標快線:DIF,慢線:MACD兩條線組成,以慢線:MACD移動平均線來作為大趨勢基準,並以快線:DIF移動平均線作為趨勢變化的判定。
快線DIF向上突破慢線MACD →紅柱,買進訊號
快線DIF向下跌破慢線MACD →綠柱,賣出訊號
MACD指標多會使用柱狀圖觀察 (柱線 = 快線DIF–慢線MACD) 當柱線接近0時,即短線買進或賣出訊號。

程式實作

安裝yfinance 函式庫:可下載股票數據

pip install yfinance

安裝matplotlib函式庫:繪圖、圖表呈現及數據

pip install matplotlib

程式

import pandas as pd 
import yfinance as yf
import matplotlib.pyplot as plt
import datetime as dt

# 計算MACD及繪圖
def macd(DF,a,b,c):
  df=DF.copy()
  df['MA Fast']=df['Adj Close'].ewm(span=a, min_periods=a).mean()
  df['MA Slow']=df['Adj Close'].ewm(span=b, min_periods=b).mean()
  df["MACD"]=df['MA Fast']-df['MA Slow']
  df['Signal']=df.MACD.ewm(span=c, min_periods=c).mean()
  df["Histrogram"]=df.MACD-df.Signal
  df=df.dropna()
  df.iloc[:,[4,8,9,10]].plot()
  plt.savefig("MACD.png")
  return df

# 開始時間
start=dt.datetime.today()-dt.timedelta(160)
# 結束時間
end=dt.datetime.today()
# 台股 2603(長榮)及2609(陽明)
clprice=pd.DataFrame(yf.download("2603.TW 2609.TW", start=start, end=end))
clprice=clprice.dropna()
print("clprice:",clprice)
# 計算2603(長榮) macd 及繪圖
macd(clprice.xs('2603.TW', level=1, axis=1), 12,26,9)

程式執行成果

㧓取2603(長榮)及2609(陽明)歷史股價資訊

https://ithelp.ithome.com.tw/upload/images/20211007/20107143DrGtFCBlBT.png

macd趨勢圖

https://ithelp.ithome.com.tw/upload/images/20211007/20107143tliieLFNQm.png

小結

使用yfinance及matplotlib函式庫,進行MACD計算及呈現。


上一篇
[第21天]理財達人Mx. Ada-Telegram Bot-start測試
下一篇
[第23天]理財達人Mx. Ada-KDJ指標
系列文
理財達人Mx. Ada30

尚未有邦友留言

立即登入留言