MACD 지표의 고찰 및 python 코드 작성 (1. 고찰)

마지막 업데이트: 2022년 3월 8일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
ATR 이라는 상대적인 변동성을 측정하는 지표가 있는데,
이 지표가 변동성이 높다고 신호를 띄울 때 MACD를 쓰는 방법이 단점을 보완하는 방법 중 하나이다.
만일 ATR 이 완벽하게 변동성을 예측할 수 있다면 MACD로 큰 수익을 낼 수 있게 될 것이고 만능 지표가 될 것이나,
애초에 예측이란 것은 확률의 문제 일 뿐 완벽한 것이 아니다.
실제로 돌려보면 이것도 손해를 많이 볼 것이다.
하지만, 그냥 MACD를 돌리는 것 보다는 좋은 결과를 얻을 수 있을 것이다.
ATR 에 대한 자세한 내용을 우측의 링크를 클릭: (링크: 공사중)

MACD 지표의 고찰 및 python 코드 작성 (1. 고찰)

MACD는 차트의 종가 기준으로 이동평균을 계산하여 가장 최근의 가격 Trend (Short period EMA) 와 장기적인 가격 Trend 의 차이를 의미하며, 장기적인 관점에서 가격이 변화하는 것 대비 최근의 가격 변화 가 상승 또는 하락을 하고 있는 추세인지 그 추세 를 보여주는 지표이다.

MACD Crossover

보통 MACD Line이 MACD Signal Line을 통과(Crossover) 할 때 매수 또는 매도 추세로 진입 했다고 본다.
MACD Line이 signal line을 아래에서 위 로 뚫고 올라갈땐 골든크로스 라고 하며,
반대로 위에서 아래 로 뚫고 내려갈땐 데드크로스 라고 한다.

골든크로스

데드크로스

MACD 단점

1. 변동성이 약한 횡보장에 약하다

MACD는 후행성 추세지표이기 때문에 가격이 한 방향으로 충분히 이동해 주지 않으면 손해를 보기 쉬운 지표이다.
손해보는 차트를 하나 예를 들어보겠다.
다음의 차트는 최근 나스닥 3분봉 차트 중 일부인데,
매수 신호 중 첫번째 노란동그라미만 아주 약간의 수익을 주고 나머지 빨간 동그라미들은 전부 손해 다.

이처럼 시세가 날듯 말듯 움직이는 횡보 장에서 MACD만으로 거래를 하면 손해가 쌓여 큰 손해로 귀결될 수 있다.

2. 휩소(whipsaw)에 약하다

휩소(whipsaw) 는 번역하면 가늘고 긴 톱인데 줄톱정도라 생각하면 상상하기 편한데,
톱 의 특성상 위로 쓰윽~ 하면 아래로 다시 쑤욱~ 하게 되어 있다.
한 마디로 위로 장대양봉을 뽑고 매수신호를 띄운다음 바로 곤두박질 치는 차트를 말한다.
이런 경우 MACD 신호가 바닥에서 매수 신호를 띄운경우라면 큰 손해를 보지 않고 넘어갈 수 있으나,
만일 매수신호가 장대양봉에서 나온 경우라면 큰 손실을 입을 수 있다.
이번에도 나스닥의 3분봉 차트를 예를 들어 아래에 스샷을 올린다.

참고로 MACD는 짧은 시간봉에선 횡보장에서 엄청터지고,
긴 시간봉에선 휩소에 크게 터질 수 있다.
(그래도 시간봉으로 MACD를 적용 한다면 그나마 횡보장에 덜 터지는 긴 시간봉이 나은것 같다.)

아니 그럼 도데체 MACD라는 지표는 왜 개발되었고 왜 쓰는건가 싶을 것이다.
당연하듯 단점이 있으면 장점이 있고 , 단점 을 보완 할 방법도 있다.
우선 장점에 대해서 알아보자.

MACD 장점

위의 단점에도 불구하고 MACD가 유명하고 많이 언급되는 이유가 있고 이에 대해 알아보려 한다.
MACD는 가격이 한방향으로 추세가 잘 나거나 가격 변동폭이 큰 스윙 을 하는 경우에 빛을 발한다.
이번엔 이더리움의 1시간봉이다.
아래의 그래프를 보면 2,278,000원에 진입해서 2,503,000원에 나온다.
거의 10% 수익 이다!

이렇듯 추세가 잘 나와줘서 큰 시세가 날 경우 MACD는 큰 수익을 안겨다 줄 수 있다.
다만, 중요한 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 점은 그냥 MACD만 돌리게 되면 수익과 손해를 반복하다 결국 그냥 거의 100% 손해 다.

그럼 이런 생각을 해 볼 수 있다 "만약 MACD의 단점을 보완할 무언가가 있으면 수익을 낼 수 있겠네?"
해서 많은 보조지표들이 개발되어 있고 보완 할 수 있는 지표를 소개해 보려한다.

1. 변동성이 약한 횡보장의 단점 보완:

ATR 이라는 상대적인 변동성을 측정하는 지표가 있는데,
이 지표가 변동성이 높다고 신호를 띄울 때 MACD를 쓰는 방법이 단점을 보완하는 방법 중 하나이다.
만일 ATR 이 완벽하게 변동성을 예측할 수 있다면 MACD로 큰 수익을 낼 수 있게 될 것이고 만능 지표가 될 것이나,
애초에 예측이란 것은 확률의 문제 일 뿐 완벽한 것이 아니다.
실제로 돌려보면 이것도 손해를 많이 볼 것이다.
하지만, 그냥 MACD를 돌리는 것 보다는 좋은 결과를 얻을 수 있을 것이다.
ATR 에 대한 자세한 내용을 우측의 링크를 클릭: (링크: 공사중)

2. 휩소(whipsaw)에 약한 점 보완:

시간 봉의 단점이 바로 휩소이다.
설정한 시간동안에 봉이 만들어지는데 그 시간동안의 가격 움직임의 중간 과정을 봉 하나로 표현하기 때문이다.
이를 보완하기 위해서 틱(tick)차트 라는 것이 있는데, 1 틱(tick) 이란 체결된 1개의 거래 를 말한다.
예를들어 10틱 차트가 있다고 가정을 하면 시간과 무관하게 10번의 거래가 체결이 되면 10틱차트의 봉 1개가 만들어진다.
틱차트는 시간과 무관 하고 거래가 체결되어야 가격이 움직이기 때문에 휩소 차트가 거의 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 나오지 않는다.
물론 이 틱차트 조차도 절대로 완전한 해결책이 아니다.
틱차트에 대한 내용은 우측의 링크를 클릭: (링크: 공사중)

변동성이 약한 장에서의 단점을 보완하기 위해 변동성 지표라는 ATR을 MACD와 같이 쓰는 것
휩소를 보완하기 위해 틱 차트를 보는것 들은 단점에 기인한 아이디어 일 뿐이다.
절대로 완벽한 해답이 될 수 없다.
이런식으로 여러 지표들의 장/단점, 보완책, 대책 등을 연구 하고
지표의 Parameter 들을 수정해보거나 식자체를 Customizing 하는 방법등을 사용하여
자신에게 맞는 지표 들로 자신에게 맞는 자신만의 투자스타일 을 찾아 보길 바란다.

다음으로는 MACD를 계산하는 코드를 작성해 보려한다.
python 에서 가장 유명한 data분석 library인 pandas 를 이용한 방법과
python 의 기본 dictionary 를 활용한 방법을 알아보려 한다.
두 가지 방법을 다 알아보는 이유는 여기에도 역시 장단점 이 존재하기 때문이다.
추후 알아보도록 하자.

Technology & Finance

MACD는 보조 지표중에서 장기 및 단기 이동평균선의 차이를 이용하여 매매 시점을 포착하는데 유용하게 사용되는 지표중에 하나 입니다.

차트를 보면 거의 대부분 단기 이동평균선과 장기 이동평균선이 멀어졌다 가까워졌다를 반복하게 되는데 이를 이용하여 코인의 흐름과 추세를 판단하고 두 개의 이동평균선이 교차하는 지점을 이용하여 매수 및 매도의 신호로 활용할 수 있습니다.

MACD(Moving Average Convergence & Divergence, 이동평균 수렴확산지수)는 상당히 기본적인 지표중의 하나로 신뢰도가 높긴 하지만 MACD만으로는 매매 신호의 정확도를 높이기는 어렵습니다. 그래서 다른 보조지표인 RSI 또는 MFI 지표등과 혼합하여 전략을 세우는 것이 좋습니다.

이번 시간에는 업비트API 및 파이썬을 이용하여 MACD 지표값을 구하는 방법에 대해서 살펴 보도록 하겠습니다.

RSI 상대강도지수를 구하는 방법은 아래 링크를 이용하여 이전 포스트에서 확인하실 수 있습니다.

RSI 상대강도지수 구하기 - 파이썬 업비트 비트코인 자동매매

주식과는 마찬가지로 코인 시장에서도 차트를 이용한 매매 기법을 사용하실 수 있습니다. 그 중에서도 RSI(상대강도지수)는 상당히 많이 사용되는 보조지표중에 하나 입니다. 앞으로 업비트 API

MFI 자금흐름지수를 구하는 방법은 아래 포스트에서 확인하실 수 있습니다.

MFI 자금흐름지수 구하기 - 파이썬 업비트 비트코인 자동매매

지난 시간에 업비트API와 파이썬을 사용하여 과매수/과매도 구간을 확인하는데 유용한 지표인 RSI 보조지표를 구하는 방법에 대해서 살펴 보았습니다. 오늘은 가격 상승과 하락 변화량에 대한 상

MACD 보조지표

MACD는 앞서 설명드린바와 같이 장/단기 이동평균선을 이용하여 매매신호를 포착하는데 도움을 주는 보조지표이며 장기 및 단기 그리고 시그널에 사용되는 이동평균선은 아래와 같습니다.

① 장기 이동평균선 : 26일 이동평균선

② 단기 이동평균선 : 12일 이동평균선

③ 시그널 : 9일 이동평균선

관련된 값을 구하는 공식은 아래와 같습니다.

① MACD = 단기이동평균선(12일선) - 장기이동평균선(26일선)

② 오실레이터 = MACD값 - 시그널값

MACD 지표의 일반적인 해석

① MACD > 0 | 단기적으로 상승한 과열 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 구간으로 판단

③ MACD = 0 | 장/단기 이동평균선이 교차 돌파하는 구간으로 골든 크로스 혹은 데드 크로스가 생기는 지점

일반적으로 MACD 값이 0선 위에서 시그널 선을 상향 돌파하면 급등이 나오는 경우가 많고 MACD선이 시그널 선을 돌파하지 못하고 0선 아래로 떨어지게 되면 급락이 자주 출현합니다. 하지만 항상 그런 것은 아니오니 참고하며 실제 매매 로직에 적용하기 전에 가격의 흐름을 모니터링 하시는 것이 좋습니다.

MACD 지표를 활용한 매매신호 포착 방법

MACD 지표는 아래와 같이 활용할 수 있지만 항상 맞지는 않기 때문에 다른 보조지표와 함께 전략을 세워야 하며 실전 매매에서는 오실레이터 값을 이용하는 것이 일반적입니다.

① 오실레이터가 0선 위에서 양봉으로 이어지며 계속해서 값이 증가하다가 양봉이 줄어들기 시작하면 시세하락으로 판단하여 매도

② 오실레이터가 0선 아래에서 음봉으로 계속 값이 내려가다가 음봉이 줄어들기 시작하면 상승 전환으로 판단하여 매수

업비트 API를 이용한 파이썬 코드

MACD 지표 역시 다른 지표들과 마찬가지로 공통 모듈에 작성하고 필요할 때 호출하여 사용하는 것이 편리합니다.

테크앤핀에서 진행하는 비트코인 자동매매 프로젝트에서는 upbit.py 라는 공통 모듈을 만들어서 대부분의 로직을 공통 모듈에 구현하고 전략 마다 짜는 프로그램들에서 공통적으로 사용하도록 하고 있습니다. 공통 모듈 구조를 잡는 방법은 아래 포스트를 참고하시면 도움이 될 것 같습니다.

비트코인 자동매매 - 프로젝트 구조 만들기

이번 시간에는 본격적으로 로직을 만들고 살을 붙이기 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 전에 프로젝트 구조를 만들어 보도록 하겠습니다. 비트코인 자동매매 프로그램을 만드는 것이 얼마나 간단한지는 아래 포

로직 호출

macd_data = upbit.get_macd('KRW-BTC', '30', '200', 10)

MACD 보조지표를 구하고 싶은 곳에서 위와 같이 호출하면 MACD의 데이터를 가져올 수 있습니다. 위의 호출 방법은 비트코인(KRW-BTC)의 30분봉 기준으로 총 10개의 MACD 데이터를 구하는 예시 입니다.

호출 결과

예시와 같이 호출하면 위와 같이 30분봉 기준으로 총 10개의 MACD 값을 가져올 수 있습니다.

업비트에서 MACD 지표를 추가하고 확인하면 값을 비교해 볼 수 있습니다.

값을 비교해보니 소수점 2번째 자리부터 업비트의 값과 API를 조회하여 계산한 값이 조금 다른데 이 부분은 원인을 조금 더 찾아봐야 할 것 같습니다.

하지만 큰 오차는 아니기 때문에 일반적인 추세를 판단하는데 사용하는데는 무리 없을 것이라 생각 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 됩니다. 다음 시간에는 지금까지 알아본 지표를 한 번에 조회하는 방법을 알아보도록 하겠습니다.

Oscillator MACD 시그널

이 시그널 모듈은 오실레이터 MACD의 시장 모델을 기반으로 합니다. 모듈로부터 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 얻은 신호에 기초하여 무역 결정을 내리는 메커니즘은 별도 섹션에 설명되어 있습니다.

시그널 발생 조건

아래에서 모듈이 Expert Advisor에게 시그널을 전달할 때의 조건에 대한 설명을 볼 수 있습니다.

  • 리버스 — 오실레이터가 위쪽으로 회전했음(오실레이터는 분석된 막대에서 상승하고 이전 막대에서 하락함).

MACD - 매수 시그널

  • 메인 선과 시그널 선의 교차 — 메인 라인이 분석된 바의 신호 라인 위 및 이전 신호 라인 아래에 있습니다.

MACD - 매수 시그널

  • 영점 교차 — 메인 라인은 분석된 바에서는 0 레벨 위에 있으며 이전 바에서는 0 레벨 아래에 있습니다.

MACD - 매수 시그널

  • 확산 — 첫 번째 분석된 오실레이터의 바닥은 이전 것보다 높고 해당 가격 바닥은 이전 것보다 낮습니다.

MACD - 매수 시그널

  • 이중 확산 — 오실레이터는 3개의 결과 바닥을 형성하고, 각각은 이전 것보다 높으며, 가격은 3개의 상응하는 바닥을 형성하고, 각각은 이전 것보다 낮습니다.

MACD - 매수 시그널

  • 리버스 — 오실레이터가 아래쪽으로 향했습니다(오실레이터는 분석된 막대에 떨어지며 이전 막대에 상승합니다.

MACD - 매도 시그널

  • 메인선과 시그널 선의 교차 — 메인 라인이 분석된 막대의 시그널 라인 아래 및 이전 막대의 시그널 라인 위에 있습니다.

MACD - 매도 시그널

  • 영점 교차 — 메인 라인은 분석된 막대에서는 영점 이하이고 이전 바에서는 영점 이상입니다.

MACD - 매도 시그널

  • 확산 — 오실레이터의 첫 번째 분석 피크는 이전 피크보다 낮고 해당 가격 피크는 이전 피크보다 높습니다.

MACD - 매도 시그널

  • 이중 확산 — 진동자는 세 개의 피크를 형성했고, 각각은 이전 피크보다 낮습니다. 그리고 가격은 세 개의 상응하는 피크를 형성했으며, 각각은 이전 피크보다 높습니다.

MACD - 매도 시그널

오실레이터의 값은 분석된 막대에서 증가합니다.

오실레이터 값은 분석된 막대에서 떨어집니다.

Expert Advisor의 작동 모드에 따라("모든 틱" 또는 "시가 전용") 분석 막대는 현재 막대(색인 0) 또는 마지막으로 형성된 막대(인덱스 1)입니다.

MACD 이란?

디지털 화폐의 시장 동향은 금융 시장의 법칙을 밀접하게 따릅니다. 둘 다 시장의 수요와 공급 관계와 거시적 및 미시적 환경 영향에 따라 반응하며, 각각의 개별 암호화 자산은 전통적인 금융 시장의 주식과 유사합니다. 각각의 특성과 지원 가치 제안이 있습니다. 따라서 투자자는 사용 가능한 데이터를 기반으로 시장 동향, 뉴스, 기본 및 기술 분석을 평가하여 시장 상황에 대한 보다 정확한 예측을 할 수 있습니다.

이 기사에서는 투자자를 위한 이동 평균 수렴 발산(MACD)의 기본 개념, 특성 및 사용에 대해 간략하게 설명합니다.

MACD이란?

MACD 지표는 빠른 이동 평균(빨간색 선)과 느린 이동 평균(노란색 선)으로 구성됩니다. 빠른 평균과 느린 평균의 차이를 계산하여 투자자가 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 현재 시장 동향을 참조하고 판단할 수 있는 지표로 표시됩니다. MEXC에서 MACD는 두 개의 가는 빨간색과 노란색 선으로 표시됩니다. MACD는 단기 시장의 작은 변동에 민감하지 않기 때문에 단기 시장 정보를 걸러내고 장기 투자의 시장 동향을 정확하게 예측할 수 있습니다.

MEXC에서 메뉴 모음의 「fx」- 「MACD」를 클릭하면 빠른 평균(MACD) 표시를 확인할 수 있습니다.

MACD 이동 평균은 2개의 얇은 녹색 및 노란색 라인으로 표시됩니다.

MACD의 장점과 단점

장점: MACD의 장점은 현재 시장 추세를 자동으로 정의하여 시장에 대한 운영과 관련된 위험을 피할 수 있다는 것입니다. 이를 통해 중장기적으로 시장 상승세와 하락세의 시작과 끝을 완벽하게 예측할 수 있어 투자자의 시장 소음을 완화할 수 있습니다.

단점: MACD는 강력한 중장기 지표입니다. 따라서 시장의 급격한 변화와 시장 신호의 빈번한 발생에 그다지 민감하지 않아 고주파 거래에 적합하지 않습니다.

MACD 사용 예

촛대 패턴과 결합하여 시장 상황을 분석할 수 있는 이동 평균 (MA)과 달리 MACD는 빈번한 시장 변동의 노이즈를 필터링하여 형성되므로 자체 패턴의 분석 및 예측에 더 중점을 둡니다. .

MACD 지표의 “골든 크로스”와 “데스 크로스”

일반적으로 MACD의 강력하고 둔감한 특성은 두 선이 자주 교차하지 않는다는 것을 의미합니다. 두 선이 교차할 때마다 극도로 변동성이 큰 시장 상황이 도래했음을 나타냅니다. 따라서 다른 지수와 결합된 교차 분석은 투자 행동에 대한 참고 정보를 형성할 수 있습니다.

골든 크로스

빠른 이동 평균(빨간색)이 느린 이동 평균(노란색)을 위쪽으로 교차할 때 두 선이 이루는 십자형이 골든 크로스로 일반적으로 시장 추세의 긍정적인 신호로 간주됩니다.

죽음의 십자가

빠른 이동 평균(빨간색)이 느린 이동 평균(노란색)을 아래쪽으로 교차하면 데스 크로스가 형성되며 일반적으로 하락 추세의 표시로 간주됩니다.

Bitcoin과 같은 예의 경우 2022년 2월 28일 4시간 차트에 황금 십자가가 나타났습니다.

2022년 3월 3일 4시간 차트에 데드 크로스가 나타났으며 BTC는 44,346에서 주간 최저점인 37,222로 급락했습니다.

기본 설정 MACD(12,26,9)

일반적으로 거의 모든 거래 플랫폼의 기본 설정인 MACD(12,26,9)로 설정됩니다.

빠른 매개변수의 경우 12일(반달)이 더 소요되고 느린 매개 변수의 경우 26일(1개월)이 더 걸립니다. 주식시장은 초창기에 1주일에 6거래일이 있고 한 달에 평균 26거래일이 있기 때문입니다.

이러한 매개 변수 집합에 따라 설정된 MACD 지표는 가격 5-30분 K-라인에서 사용자에게 큰 가치를 제공하지 않으며 일반적으로 1시간, 4시간 및 일간 차트에 적용됩니다.

MEXC 의 메뉴 표시줄에서 ‘시계 아이콘’ – ‘MACD’를 클릭하여 기본 설정에 따라 빠른 평균(MACD) 표시기를 변경할 수도 있습니다.

MACD는 0축 위 또는 아래로 움직입니다. MACD가 이 0선 위에 있으면 12일 EMA(주황색 선)가 26일 EMA(녹색 선)보다 크고 모멘텀이 위쪽으로 이동하고 있음을 MACD 지표의 고찰 및 python 코드 작성 (1. 고찰) 의미합니다. 히스토그램이 0 미만이고 막대가 아래쪽으로 확장되는 경우에는 반대입니다.

MACD 지표의 상단 및 하단 다이버전스

정상적인 시장 운영 중에는 정상적인 변동성으로 인해 자산 가격이 변동합니다. 자산 가격과 이동 평균은 함께 움직이는 경향이 있지만 MACD는 변동성에 대한 민감도가 낮기 때문에 자산의 가격 추세를 따르지 않을 수 있습니다.

그 결과 MACD 지표와 자산 가격 사이에 편차가 발생하며 MACD는 현재 추세와 반대 방향으로 움직이는 것처럼 보입니다.

상단 다이버전스: 캔들스틱 차트가 상승 추세로 움직이고 있음에도 불구하고 MACD가 하락 추세에 있는 것처럼 보이는 경우 이러한 현상을 상단 다이버전스라고 합니다. 이는 가격 상승이 기본 거래량의 지원을 받지 못한다는 것을 의미하며, 잠재적인 대규모 상당한 하락 움직임을 시사합니다. 다이버전스가 높을수록 예상 시장 변동성은 커집니다.

바닥 다이버전스: 시장 가격이 급격히 하락했음에도 MACD가 상승 추세에 있는 것처럼 보이는 경우를 바닥 다이버전스라고 합니다. 이는 일반적으로 상승 움직임을 나타내며 다이버전스가 높을수록 예상 시장 변동성이 더 커집니다.

MACD는 비교적 일반적인 투자 도구이며 중장기 투자 전략 개발에 상대적으로 중요한 의미를 갖습니다. 그러나 단기 시장 변동이나 급격한 시장 상황에는 민감하지 않습니다. 따라서 MACD를 투자 참고용으로 사용할 때 최신 뉴스, 시장 심리 및 단기 기술 지표에 대한 인식도 필요합니다.

면책 조항: 암호화폐 거래는 상당한 위험을 수반하며 투자한 자본의 손실을 초래할 수 있습니다. 이 자료는 투자, 세금, 법률, 재무, 회계, 컨설팅 또는 기타 관련 서비스에 관한 조언 제공과 관련이 없으며 자산의 매수, 매도 또는 보유를 권장하지 않습니다. MEXC Learn은 정보만 제공하지만 재정적 조언은 제공하지 않습니다. 투자하기 전에 관련된 위험을 완전히 이해했는지 확인해야 합니다.


0 개 댓글

답장을 남겨주세요