CMF(Chaikin Money Flow)
특정기간 동안 자금의 흐름을 측정하는 지표로 잠재적인 추세 파악과 그 강도를 확인하는데 도움이 됩니다.
- Money Flow Mutiplier(MFM) 계산
- $\text{MFM} = \frac{\text{(Close - Low)-(High - Close)}}{\text{High - Low}}$
- 상승추세(변동 증가)에서 종가는 고가 근처이므로 Close-Low 증가 즉, +영역에서 상승 기울기 증가
- 하락추세(변동 증가)에서 종가는 저가 근처이므로 High-Close 증가 즉, -영역에서 하락기울기 증가
- MFV(Money Flow Volume) = MFM × Volume
- CFM 계산
- $\text{CFM} = \frac{\sum^n_{i=1}\text{MFV}}{\sum^n_{i=1}\text{Volume}}$
CFM의 기본개념
- 종가가 해당일의 고가에 가까울수록 매수가 발생한 것으로 간주
- 종가가 해당일의 저가에 가까울수록 매도가 발생한 것으로 간주
- 각각에 거래량을 가중하여 자금의 흐름을 수치화
pandas_ta.cmf(high, low, close, volume, open_=None, length=None, offset=None, **kwargs)
로 계산합니다. length는 MFV를 합하는 기간으로 기본값은 20입니다.
import numpy as np import pandas as pd import matplotlib.pyplot as plt import pandas_ta as ta import FinanceDataReader as fdr import matplotlib.pyplot as plt import mplfinance as mpf st=pd.Timestamp(2024,9, 1) et=pd.Timestamp(2025, 5,7) trgnme="000660" trg=fdr.DataReader(trgnme, st, et)[["Open", "High", "Low", "Close", "Volume"]] cmf=trg.ta.cmf() cmf.tail(3)
CMF_20 Date 2025-04-30 -0.173823 2025-05-02 -0.180693 2025-05-07 -0.114562 dtype: float64
rsi=trg.ta.rsi() adf=[mpf.make_addplot(trg.ta.ema(5), panel=0, color="brown", label="ema5"), mpf.make_addplot(trg.ta.ema(20), panel=0, color="navy", label="ema20"), mpf.make_addplot(cmf, panel=2, color="brown", label="Long"), mpf.make_addplot(rsi, panel=3, color="brown", label="RSI")] f, axs=mpf.plot(trg, type="candle", style="yahoo", volume=True, addplot=adf, returnfig=True, figsize=(12,8)) axs[0].legend(loc="upper left") axs[4].legend(loc="upper left") axs[4].axhline(0, color="orange", ls="dashed") axs[4].axhline(-0.25, color="gray", ls="dashed") axs[4].axhline(0.25, color="gray", ls="dashed") axs[6].legend(loc="upper left") axs[6].axhline(70, color="r", ls="dashed") axs[6].axhline(50, color="g", ls="dashed") axs[6].axhline(30, color="b", ls="dashed") plt.show()
- 가격 상승 → CFM 상승
- 가격 하락 → CFM 하락
- 0선 위: 매수 압력이 매도 압력보다 강하며, 상승 추세 암시
- 0선 아래: 매도 압력이 매수 압력보다 강하며, 하락 추세 암시
- +0.25 이상: 강한 매수 압력을 시사
- -0.25 이하: 강한 매도 압력을 시사
- 0선 교차:
- 아래에서 위로 0선 돌파: 매수 신호로 해석
- 위에서 아래로 0선 돌파: 매도 신호로 해석
- 가격과의 다이버전스:
- 가격은 상승하는데 CFM은 하락하는 경우: 상승 추세 약화 또는 하락 추세로의 전환 가능성을 시사(약세 다이버전스)
- 가격은 하락하는데 CFM은 상승하는 경우: 하락 추세 약화 또는 상승 추세로의 전환 가능성을 시사(강세 다이버전스)
활용
- 추세 확인: 기존 추세의 강도를 확인하는 데 사용할 수 있습니다.
- CFM이 추세 방향과 함께 움직이면 추세가 강하다고 볼 수 있습니다.
- 추세 반전 예측: 가격과 CFM 간의 다이버전스를 통해 추세 반전 가능성을 예측할 수 있습니다.
- 돌파 확인: 지지선이나 저항선 돌파 시 CFM이 함께 상승 또는 하락하면 돌파의 신뢰도를 높일 수 있습니다.
MACD, RSI 등 다른 기술적 지표와 함께 사용하여 분석의 정확도를 높일 수 있습니다. 예를 들어, CFM이 0선 위로 상승하고 RSI가 과매수 상태가 아닌 경우 매수 신호로 해석할 수 있습니다.
주의사항:
댓글
댓글 쓰기