MFI 활용 전략

MFI(Money Flow Index)는 RSI와 유사하지만 거래량까지 고려하여 시장 흐름을 파악할 수 있습니다. MFI를 활용한 매매 방법은 다음과 같습니다.

  • MFI 값이 20 아래로 내려간 경우 과매도 상태로 볼 수 있으며 이때 매수 포지션을 고려해볼 수 있습니다. 반대로 80 이상인 경우 과매수 상태로 볼 수 있으며 매도를 고려해 볼 수 있습니다.
    만약 MFI와 가격 흐름이 일치 하지 않는 경우 가격 흐름이 바뀔 가능성이 있으므로 매매 결정을 뒤로 미룰 수 있습니다.

  • 볼린저밴드와 같이 사용
    상승추세에서 종가가 볼린저밴드의 중심선 아래에서 상승하면서 MFI 값이 20 아래에서 20을 상향 돌파하는 경우 매수 포지션을 고려해볼 수 있습니다.
    반대로 하락 추세에서 종가가 볼린저밴드의 중심선 위에서 하락하면서 MFI가 80 초과 후 80을 하향 돌파하는 경우 매도를 고려할 수 있습니다.

MFI와 볼린저밴드를 활용한 매매 예제
MFI 와 볼린저 밴드를 활용한 매매 예

MFI를 이용한 매매는 하나의 지표에만 의존하기 보다는 다른 기술적 분석 지표와 함께 사용하는 것이 좋습니다. 또한, MFI 값이 다른 지표와 결합하여 참고하더라도 100% 정확한 예측을 보장할 수 없으므로 항상 적극적인 자세로 관심을 가지고 시장을 관찰하고 투자해야 합니다.

 

MFI 란

MFI(Money Flow Index) 보조지표는 기존 MFI 지표를 보완하고자 개발된 지표로 상승/하락 트렌드와 형성되는 과열과 침체 상태를 확인하는 데 유용합니다.

이런 트렌드와 과열, 침체 상태를 확인하여 매매 포지션을 잡는데 힌트를 얻을 수 있지만 주가와 거래량 정보를 기반으로 계산되기 때문에 거래량이 낮은 종목에서는 신뢰성이 낮아질 수 있습니다.

MFI 지표는 시장의 현금 흐름을 파악하는 데 유용하지만 다른 모든 지표와 동일하게 이것만으로 매매 결정을 내리는 것은 위험하기 때문에 다른 지표와 결합하고 리스크 관리를 위해 노력해야합니다.

 

MFI 와 비슷한 유형의 지표

  • OBV(On Balance Volume)
    OBV 지표는 거래량과 가격 정보를 이용하여 시장의 현금 흐름을 파악하는 보조 지표입니다. MFI와 마찬가지로, 주식 시장에서 주로 사용됩니다.

  • CMF(Chaikin Money Flow)
    CMF 지표는 OBV 지표를 보완하여, 시장의 현금 흐름에 대한 보다 정확한 분석을 제공합니다. CMF 지표는 거래량, 가격, 그리고 시장의 광범위한 분포도를 모두 고려합니다.

  • PVT(Price Volume Trend)
    PVT 지표는 주가와 거래량의 관계를 분석하여, 시장의 현금 흐름을 파악하는 보조 지표입니다. PVT는 OBV와 비슷한 원리를 사용하지만, 가격 변동이 매우 큰 시장에서 더욱 정확하게 동작합니다.

  • VPT(Volume Price Trend)
    VPT 지표는 가격 변화와 거래량의 상관관계를 파악하여, 시장의 현금 흐름을 분석하는 보조 지표입니다. VPT는 주식 시장뿐만 아니라, 다른 시장에서도 사용할 수 있습니다.

MFI 를 구하는 Python 함수

def money_flow_index(high, low, close, volume, period=14):
    typical_price = (high + low + close) / 3
    money_flow = typical_price * volume
    
    positive_flow = []
    negative_flow = []
    
    for i in range(1, len(typical_price)):
        if typical_price[i] > typical_price[i-1]:
            positive_flow.append(money_flow[i-1])
            negative_flow.append(0)
        elif typical_price[i] < typical_price[i-1]:
            positive_flow.append(0)
            negative_flow.append(money_flow[i-1])
        else:
            positive_flow.append(0)
            negative_flow.append(0)
    
    positive_flow = np.array(positive_flow)
    negative_flow = np.array(negative_flow)
    
    positive_money_flow = np.sum(positive_flow)
    negative_money_flow = np.sum(negative_flow)
    
    money_ratio = positive_money_flow / negative_money_flow
    
    mfi = 100 - (100 / (1 + money_ratio))
    
    return mfi


import numpy as np

# 임의의 데이터 생성
high = np.array([110, 112, 115, 110, 111, 115, 116, 117, 119, 121, 118, 115, 116, 118])
low = np.array([105, 107, 109, 105, 106, 109, 110, 111, 112, 116, 114, 112, 113, 115])
close = np.array([108, 109, 110, 106, 110, 114, 115, 115, 118, 120, 116, 113, 115, 117])
volume = np.array([1000, 2000, 3000, 2500, 3500, 4000, 5000, 4500, 6000, 8000, 7000, 6000, 5000, 5500])

# MFI 계산
mfi = money_flow_index(high, low, close, volume)

print("MFI:", mfi)

# 결과 출력
MFI: 51.02181096165505

+ Recent posts