MACD는 Moving Average Convergence Divergence의 약자로 장단기 이동평균선간의 차이를 이용하여 매매신호를 포착하려는 기법으로 제럴드 아펠(Gerald Appel)에 의해 개발되었다. 오실레이터는 토마스 아스프레이에 의해 추가되었다.
나무위키: https://namu.wiki/w/MACD
MACD 계산 (EMA 12일, 26일 예시)
MACD : 12일 지수이동평균 – 26일 지수이동평균
시그널 : MACD의 9일 지수이동평균 (트레이딩뷰 디폴트 값: 9)
오실레이터 : MACD값 – 시그널값
MACD 구현
pip install pandas ccxt
import pandas as pd
import ccxt
# 예시) 바이낸스 선물 BTCUSDT, 1시간 봉
bnb = ccxt.binance({'options': { 'defaultType': 'future' }})
def MACD(fast_length=12, slow_length=26, signal_length=9):
ohlcv = bnb.fetch_ohlcv(symbol="BTC/USDT", timeframe="1h", limit=500)
df = pd.DataFrame(ohlcv, columns=['time', 'open', 'high', 'low', 'close', 'volume'])
_df = df.copy()
_df['fast'] = _df['close'].ewm(span=fast_length, adjust=False).mean().round(1)
_df['slow'] = _df['close'].ewm(span=slow_length, adjust=False).mean().round(1)
df['MACD'] = _df['fast'] - _df['slow']
df['signal'] = df['MACD'].ewm(span=signal_length, adjust=False).mean().round(1)
df['histogram'] = df['MACD'] - df['signal']
return df
print(MACD(fast_length=12, slow_length=26, signal_length=9)) # 트레이딩뷰 디폴트 값
Check
트레이딩뷰 차트와 비교

