국민 보조 지표 중 하나인 MACD. 굉장히 간단한 개념을 가진 친구로, 쉽게 애용하시는 지표이죠. 단순하게 보면 (짧은 이동평균선) - (긴 이동평균선) 이걸 수치화 및 가시화 해서 보여주는 친구 입니다.
대표적으로 느린 지표라고 알려져있는데, 잘 분해해서 연구를 해보면 그닥 느린 지표는 아니다 라는 점을 캐치하실 수 있습니다. 모든 느린 지표들의 특징이 평균의 평균 또는 평균의 평균의 평균 등 정확도를 올리기 위하여 평균이라는 요소를 많이 사용하는데, MACD 역시 그렇습니다. 하지만 이런 느리게 하는 요소를 어느정도 제거해주면, MACD 역시 빠르고 민감한 지표 라고 불릴 수 있습니다. 한 가지의 지표에서 수십가지의 활용 방법들이 나오는 것이죠!
이동평균선의 간격이 들어가는 만큼 현재 가격의 크기/힘 이 과거의 가격의 크기/힘 보다 얼마나 더 큰지에 대하여 나타내 줍니다. 저는 간격이라는 부분을 보며, 적분에 대한 요소가 들어가는게 아닌가? 라는 생각이 들었었네요.
인테그랄 (short-term ma) - 인테그랄 (long-term ma) 를 하는데 최소 단위를 최소 봉으로 잡은거 아닌가요? ㅎㅎㅎ 적분까지는 아니더라도 구분구적법 배울때 나오는 시그마만 무한으로 안보내면 호홓
MACD 는 3가지의 파트로 나뉩니다.
이동평균선들의 간격을 알려주는 MACD 선 (파란색)
MACD 선의 평균을 나타내는 시그널 선 (주황색)
MACD 선과 시그널 선의 간격을 나타내는 오실레이터 (빨간색,초록색 막대)
오늘 알아보실 파트는 MACD 입니다!
빨간색 선: 12주기 ema, 파란색 선: 26 주기 ema
수학적으로는 지수 이동평균선 (ema: exponential moving average) 26 주기 와 12주기 의 편차를 나타내는 것이며, MACD 보조지표가 만들어지는데 기본 데이터 입니다. 나머지는 이 편차에서 파생된 값들이죠.
위 사진은 MACD 선만 나타낸 것이며, 0 을 주위로 진동하는 모습을 보실 수 있습니다. 이동평균선이 양의 편차를 가지면 올라갈 것이고, 이동평균선이 음의 편차를 가지면 내려갈 것입니다. (이건 코딩 파트를 가서 다시 보여드리겠습니다.)
직관적으로 가격이 수렴을 하면 MACD 선도 수렴을 한다는 모습을 볼 수 있습니다. 또 가격이 방향성을 가지면, MACD 도 방향성을 가지게 되죠. 어떻게 활용하는지에 따라 수렴을 구분할 수 있으며, 각도로 추세의 방향성에 대한 자료로 사용할 수 있습니다.
또 0 위에 있는지 아래에 있는지를 보아 간격이 음의 방향으로 발생했는데 양의 방향으로 발생했는지 확인하실 수 있습니다.
초 간단하게 활용을 하자면 4 가지의 상태로 분석할 수 있습니다. MACD 선이 0 위에 있고는 전체적인 추세가 상승인지 하락인지를 판단하고, MACD 의 각도인 올라가고 있을때 , 내려가고 있을 때는 실제 가격이 올라가고 있는지 내려가고 있는지에 해당하게 되죠.
여기서 직관적으로 봐도 조정을 하고 있는 상태는 MACD 0 위에, MACD 내려가고 있을때 이며 되돌림 매수에 해당하는 구간입니다. 그리고 여기에 추가적인 매수 시그널 (제일 간단한건 양봉이죠!) 을 구성하면 매수 진입 전략이 형성됩니다.
여기까지 이해를 하셨다면, 코딩 파트는 좀 더 쉽게 접근하실 수 있습니다.
먼저 새로운 페이지를 여시고, MACD 변수를 만들어줍니다.
MACD = ema(close, 12)- ema(close, 26)
다시 설명드리면, MACD 란 ema 26 주기를 ema 12 주기에서 뺀 값이다 입니다. 그걸 MACD 라는 변수로 받아주면, MACD 자체는 숫자가 되죠!
ema 란, 현재의 값에 가중치를 준 이동평균선으로 보정된 이동평균선으로 이해하실 수 있습니다. 나중에 이동평균선에서 파생된 선들을 다루며 더 자세히 알아보겠습니다. 트레이딩뷰에서는 ema(source,period) 라는 함수로 주고 있습니다!
이제 위에 표시한 네가지의 상황을 만들어봅시다.
먼저 MACD 가 0 위에 있고 없고 상황!
MACDover0 = MACD > 0
MACDunder0 = MACD < 0
MACD 값이 0 위에 있으면 MACDover0 이 true, MACD 값이 0 아래에 있으면 MACDunder0 이 true.
MACD 가 하락/상승 상황
MACDascending = MACD > MACD[1]
MACDdescending = MACD < MACD[1]
MACD 값이 한 개 전의 MACD 값이랑 비교합니다. 만약 한 개 전의 MACD 보다 크면 MACDascending 이고, 작으면 MACDdescending 이 true 가 되겠습니다.
이제 위 네 개의 변수들 중 제가 원하는 상황인, 조정을 주는 상황을 수식으로 표현하면
correction = MACDover0 and MACDdescending
이 되게 됩니다. 일단 추세는 상승이여야 하며, 가격은 하락을 하고 있으면 보통 저희가 정의할 수 있는 조정 이라는 카테고리에 들어오게되죠. 그리고 이 상황을 차트에 표현해봅시다. 오늘은 초록초록 하니깐 초록초록하게!
bgcolor(color = correction ? green: na)
여까지 했으니 차트에 적용해봅시다.
가격이 조정일 가능성이 있는 부분이 초록색 으로 표기됩니다. 하지만 이것만 있으면 매수 시그널 부분이 빠져있죠. 매수 시그널 파트는 양봉으로 간단하게 작성해봅시다.
Buy = correction[1] and close > open
만약, 이전 캔들이 조정 상태였고, 현재 캔들이 양봉이면 Buy 값이 True!
bgcolor(color = Buy ? green: na)
그리고 Buy 상황이 True 이면, 배경에 초록색을 칠해라!
꽤나 정교한 시그널 들을 주는군요. 18년도 비추세 구간에서 발생하는 시그널들은 이동평균선 필터로 가리면 될것 같습니다.
이제 살짝 노가다를 해줘서 만약 시그널이 7 개의 캔들안에 발생했다면, 다시 시그널이 발생하지 않도록 해줍시다. 스펙트럼 같은 선들 보기만 해도... 현기증이 하하하하하 . 그리고 실제 진입을 한다면 ,추세 -> 조정 -> 양봉에 진입을 하는 메커니즘 이기 때문에 시그널이 나타나지 않다가, 첫 시그널에 진입을 하게 됩니다. 이런 직관적인 부분을 적용해줍니다.
notBuy = Buy[2] or Buy[3] or Buy[4] or Buy[5] or Buy[6] or Buy[7]
notBuy 라는 변수를 만들어주고 만약 Buy 라는 상황이 2개 캔들전, 3개 캔들전 4개 캔들전 등 7개 캔들 전까지 발생했다면 notBuy 라는 값이 true 로 만들어줍니다.
RealBuy = Buy and not notBuy
그리고 Buy 값이 참이고, notBuy 값이 참이지 않으면 RealBuy 값이 참이 되게 되는 변수를 만들어주고.
bgcolor(color = RealBuy ? green: na)
백그라운드에 레알 바이를 프린팅.
뷰티풀~~!
5분 봉에서 보면
30분 봉에서 보면
눈으로 보기에는 현재 변동성에 맞는 차트는 30분 이상의 차트군요. 변동성이 더 커지면 5분 봉에서도 프렉탈이 뚜렷해지죠!
요건 제가 트레이딩을 할 때 머릿속에 프로세싱 하는 공식 이며, 매수 진입 조건에 해당하는 항들 입니다. 모든 전략에는 아래와 같은 항들이 있어야 한다고 생각합니다.
매수 조건 = (변동성) * (진입 조건) * (추세)
변동성: 아직 한 번도 다루지 않았지만, 저는 수치적으로 ATR 을 사용하고 있으나, 직관에 더 의존하는 편 입니다. 변동성이 작은 시장과 변동성이 큰 시장은 다른 패턴을 보입니다. 즉, 전략 자체가 달라야 합니다. 이전 포스팅에서 비추세,추세 시장을 따질때 잠깐 소개를 시켜드렸으나, 비슷한 맥락입니다. 가장 추상적이며, 요즘 가장 어렵다고 느끼는 부분입니다.
진입 조건: 가장 단순한 진입 방법은 양봉 종가 매수죠. 가장 설정하기도 쉽고, 단일 진입으로 계산이 가장 단순합니다. 하지만 진입 조건에서 일정 크기의 양봉, 어떠한 상황에서의 양봉, 어떠한 상황 과 일정 크기의 양봉 등 많은 변수를 곱하고 더해서 만들어줄 수 있습니다. RSI 를 활용할 수 있는 항 이기도 합니다. 오늘 단순히 소개해드린 과거 7번의 캔들 안에 매수 시그널이 있다면, 시그널은 없는거야! 와 같은 코드도 여기에 해당합니다.
추세: 가장 비중이 큰 파트 입니다. 매수, 매도, 비추세 구분해주는 항 입니다. MACD 및 MA 가 해당하는 항 입니다. 추세도 단기, 장기로 나눠서 볼 수 있으며, 여러가지 지표, 변수, 값들을 섞어 만들어 낼 수 있습니다. 추세는 그래도 단순하게 보는 것이 저는 좋다고 봅니다.
질문, 댓글, 팔로우는 감사합니다!
새로운 아이디어, 종목 추천 등은 언제나 환영입니다!