이동 평균 교차

마지막 업데이트: 2022년 6월 1일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
2021/04/19 업비트. BTC/KRW 1분봉

이동 평균 교차

바이낸스 아카데미의 Moving Averages Explained 글을 번역/정리하여 올린 글입니다.

Moving Averages Explained | Binance Academy

There are various different types of moving averages that can be utilized by traders. Learn about these moving averages on Binance Academy

링크에 들어가시면 한글 자막이 지원되는 동영상이 있으니 , 참고하시길 바랍니다.

동영상 정리

이동 평균(Moving Average)는 기술적 분석과 단기 트레이딩을 위해 많이 사용되는 지표입니다.
전반적인 가격의 추세 를 파악할 수 있도록 도와주며, 잠재적 지지선과 저항선을 확인 하는 데도 사용될 수 있습니다.
지지선과 저항선에 대해서는 향후 다른 포스트로 다루도록 하겠습니다.

이동 평균에는 2 종류가 있는데, 각각 SMA(Simple Moving Average)와 EMA(Exponential Moving Average)입니다.

SMA는 이름 그대로 단순히, 특정 기간동안의 종가의 합해당 기간으로 나눈 값 입니다.
SMA를 계산하는 기간을 짧게 유지한다면 현재의 가격 움직임에 따라 SMA의 값 또한 빠르게 변하게 되며 (volatile),
반대로 기간을 길게 잡는다면 아주 부드러운 곡선을 띄는 선이 완성됩니다.

EMA는 지수 이동 평균으로, 다른 이름으로는 지수 가수 이동 평균 (Exponential Weighted Moving Average)라고도
불립니다. EMA는 SMA와 다르게, 최근 데이터에 더 높은 무게를 주고 평균을 구하게 됩니다 .
따라서 최근의 가격 변동에 더욱 민감하게 반응하게 이동 평균 교차 되는 것이죠.

정리하자면, 과거의 데이터보다 현재의 데이터를 더욱 중요하게 볼 때는 SMA보다는 EMA를 참고하시는 것이 좋습니다. 추가적으로, 이동 평균을 계산하는 기간을 짧게 설정할수록 더욱 최근의 변화에 민감한 지표를 볼 수 있으며,
반대로 길게 설정한다면 장기적인 추세를 파악하는데 유리합니다.

이동 평균은 지금까지의 데이터를 바탕으로 계산되기 때문에, 이미 일어난 변화를 나타내는 지표입니다 .
따라서 이동 평균만으로 시장의 추세를 파악하기보다는, 보다 다양한 지표들을 참고하는 게 좋습니다.

일반적으로 50/100/200일 이동 평균선이 많이 사용되지만, 가상화폐의 경우 시장이 항상 열려있으며,
가격 변동이 활발하기 때문에 기호에 맞춰서 사용하시면 되겠습니다.

크로스오버 신호

MA가 오르거나 떨어지는 추세에 따라, 현재 가격이 상승세인지 하락세인지 파악할 수 있는 것은 당연합니다.
하지만 이동 평균 하나만이 믿을만한 지표라고 말하기엔 어렵습니다.
따라서 상승장인지 (Bullish) 하락장인지 (Bearish) 확인하기 위해서는, 이동 평균을 조합하여
크로스오버 신호를 확인하곤 합니다.

크로스오버 신호란 차트상에서 2개의 다른 이동평균선이 교차할 때 (crossover) 발생합니다 .
상승장을 의미하는 골든크로스 (Bullish crossover)는 비교적 짧은 기간의 이동평균선이 긴 기간의 이동평균선을 가로질러 올라갈 때 발생합니다. 반대로 하락장을 의미하는 데스크로스 (Bearish crossover)는 비교적 짧은 기간의 이동평균선이 긴 기간의 이동평균선을 가로질러 내려갈 때 발생합니다.

2021/04/19 업비트. BTC/KRW 1분봉

주황 선은 9일 이동평균선을 , 파랑 선은 30일 이동평균선 을 나타냅니다.
해당 값들은 단순히 예시를 위해 설정된 값임을 참고 바랍니다.

위 그림을 보면 주황 선이 파랑 선을 가로질러 올라가는 골든 크로스가 17:30 거의 직후 발생하며, 가격이 상승 하는 것을 볼 수 있습니다. 17:00 직전과, 18:30 직후에도 비슷한 추세가 보이는 것을 확인할 수 있습니다. 또한 주황 선이 파랑선을 가로질러 내려가는 데스 크로스가 17:00과 17:15 사이에 발생하며, 가격이 하락 하는 것을 볼 수 있습니다.

주의할 점은, 이동 평균선은 예측된 값이 아니라 이미 정해진 현재까지의 값을 바탕으로 계산되기 때문에
실제 상승/하락보다 골든크로스/데스크로스 신호가 조금 늦게 발견될 수 있습니다 .
또한 골든크로스와 데스크로스가 가까운 시간 내에 발생하는 경우 (그림의 17:00 전후),
골든크로스를 바탕으로 매수 타이밍을 잡았는데 곧바로 데스크로스가 뜨며 오히려 손해를 볼 수도 있습니다 .
따라서 이동평균선 하나만을 참고하여 매매를 진행하는 것은 권장하지 않습니다.
이런 가짜 시그널을 불 트랩 (Bull Trap)이라고 부릅니다.

정리하며

저도 최근에야 가상화폐 관련 공부를 시작했는데, 공부하며 배운 내용을 정리하며 다른 사람들에게 공유드리고자 블로그를 시작하게 되었습니다. 아직 많이 부족하지만 바이낸스 아카데미에 있는 많은 기초적인 자료들부터, 엘리엇 파동 이론과 같은 고급 이론까지 다뤄보고자 합니다. 바이낸스 아카데미에 한국어 번역이 있긴 하지만 조금 직역된 듯한 표현들이 많아서 제 나름대로 다시 정리해보았습니다.

이동 평균 교차

① 이동 평균 교차 사용원리 : 현재 시장가격의 움직임을 적용기간이 다른 이동평균선의 교차에 의해 파악하고 어느시점에서 교차할것인가를 예측

② 기법의 용도 : '0선(zero line)'을 기준으로 한 오실레이터의 움직임에 의하여 시장가격의 추세(강약세) 파악

- Technical Analysis Course

- The Technical Analysis of Stocks, Options and Futures

- (단기이동평균-장기이동평균)값이 '0'을 교차할 때가 두 이동평균선이 교차하는 시점이며, 이와같은 오실레이터 자체의 값이 0 또는50(%적용시)에 위치한 중앙선과 교차하여 진행하는 방향으로 수익률이 움직일 것을 예고함

(→ 금리수준으로 상향교차시 약세를, 하향교차시 강세를 의미)

- 중앙선 교차 (Crossing of the Midpoint Line)

: 수익률 개념에서 오실레이터의 값이 중앙선 위에서 중앙선을 하향 교차할 때가 매수 포인트, 상향교차할 때가 매도 포인트

- 교차분기 분석 (Divergence Analysis)

: 채권수익률 추세와 오실레이터가 서로 상반된 방향으로 나타나는 경우로, 수익률이 신고점을 형성할때 오실레이터는 약세분기를 발생시켜 하락할 것을 예고

- 최고값 해석 (Extreme Readings)

: 최고치를 보일 때는 과도매수(overbought) 상태임을 표시하며 약세전환 예고 (매도시점)

: '0'선 돌파를 실패하였거나, 이동 평균 교차 돌파후 즉시 역으로 돌파되는 경우 기존의 세력에 의한 추세변화 세력이 압도되는 경우로 기존의 시장수익률 추세가 강화된다는 신호로 해석됨 → 매수매도 전환 지표 (Overbought and Oversold Reversal Indicators)

비트코인 이동평균선의 모든것 - 1편 기본편


- 이동평균은 기술적 분석, 특히 기술적 지표 분석의 기초를 이룬다. 이동평균기법이 최초로 주식시장에 소개된 이후로 이동평균을 이용한 분석기법은 다양하게 개발됐다.

- 가장 널리 알려진 기법은 ‘현재 가격과 이동평균선을 비교’하고 ‘이동평균선의 기울기 변화를 추적’하거나, ‘이동평균선간의 교차와 배열’ 등을 이용하여 시장 참여자들의 생각이 어떻게 변하고 있는 지에 대한 정보를 알아내는 것 등이다.

- 이동평균은 단기적인 변동(fluctuations)을 완만하게 하여 상대적인 긴 기간 동안의 추세나 사이클 등을 더욱 분명하게 나타낸다는 장점 때문에 ‘움직이는 추세선(moving trend line )’이 라고 불리며 활용되기도 한다.
다만 이동평균은 ‘후행성’이라는 결정적 단점을 내포하고 있다. 그러나 이 단점을 역이용하면 투자판단에 좋은 정보를 얻을 수 있다.

- 이동평균은 주로 가격을 분석하는데 이용하지만, 다양한 시계열의 분석 예를 들면 거래량 또는 거래대금 등의 분석에도 이용된다. 또한 다양한 기술적 지표를 개발하는 데 기초가 되기도 한다.

- 이동평균은 크게 ① 단순 이동평균( Simple moving average ), ② 가중 이동평균(Weightedmoving average), ③ 지수 이동평균( Exponential moving average ) 등으로 나뉜다.

단순이동평균
계산식
단순이동편균 기법의 문제점

가중이동평균
이해
계산식

지수이동평균
이해

이미지랑 상세하게 작성할려고 했는데 이미지 넣고 작성하는 법을 몰라서 간단히 적습니다.
내용을 상세히 보시고 싶은 분은 아래 마진판 클릭하시고 마진거래강좌 - 차트강좌에서 보시면 되요

이동 평균 교차

이번 실험에서는 골든크로스가 발생하면 주가가 상승하고, 데드크로스가 발생하면 주가가 하락하는지를 확인해보고자 한다.

먼저, 골든크로스와 데드크로스가 무엇인지 설명하자.

골든크로스와 데드크로스는 모두 이동평균선이 교차하는 지점이다.

골든크로스는 단기 이동 평균선이 올라가고 장기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 상승하고 있다는 신호로 알려져 있다. 반대로, 데드크로스는 장기 이동 평균선이 올라가고 단기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 하락하고 있다는 신호로 알려져있다.

이동평균선 혹은 이평선은 특정 기간동안의 평균 주가를 의미하며, 5일, 10일 이평선을 보통 단기 이동 평균선, 60일, 120일 이평선을 중장기 이동 평균선이라 한다.

시계열 개념이 친숙하다면, moving average와 같은 의미라고 받아들이면 된다.

아래 이미지에서 보는 것처럼, 골든크로스와 데드크로스 모두 빨간색 단기이평선과 초록색 장기이평선이 만나는 점인데, 골든크로스는 단기이평선이 올라가면서 만나는 점이고, 데드크로스는 단기이평선이 내려가면서 만나는 점이다.

실험 내용

이번 실험에서는 골든크로스 지점에서 매수를 하고, 데드크로스 지점에서 매도를 하는 것이 정말로 효과적인 투자 전략인지를 검증하고자 한다.

구체적인 내용은 다음과 같다.

  • 골든크로스 지점에서 매수하고 바로 이어지는 데드크로스 지점에서 매도했을 때의 기대 수익 계산
  • 골든크로스 지점에서 매수하고 1, 3, 6, 12개월 후 매도했을 때의 기대 수익 계산
  • 데드크로스 지점에서 매수하고 1, 3, 6, 12개월 후 매도했을 때의 기대 수익 계산

데이터 준비 및 전처리

그러면 곧바로 파이썬 코드로 이동 평균 교차 가보자.

먼저 필요한 모듈을 불러온다.

그리고 주가 데이터가 있는 경로를 설정하고, 데이터를 담을 사전을 정의한다.

데이터를 모두 불러온 뒤에 전처리를 하면 불필요한 단계가 포함될 수 있어서, 데이터를 불러오면서 전처리를 하고, 전처리한 데이터를 data_dict에 저장할 것이다.

전처리 및 검증을 위해 필요한 함수들을 하나하나 정의하자.

먼저, 주가 데이터(data)에서 날짜(date)를 입력했을 때, 해당 날짜의 주가 혹은 해당 날짜와 가장 가까운 날짜의 주가를 가져오는 함수를 정의한다.

그리고 골든크로스인지 데드크로스인지를 나타내는 함수를 정의한다.

두 함수 모두 단기이평선(short_term_MA)와 장기이평선(long_term_MA)를 입력으로 받는다.

그리고 i번째 시점에서 단기이평선이 장기이평선 위에 있는데, 직전 시점에서 장기이평선이 단기이평선 위에 있다면 골든 크로스라고 판단하고, 그 반대의 경우에는 데드크로스로 판단한다.

두 함수의 리턴값은 해당 시점에서 골든크로스(데드크로스)면 True를, 그렇지 않으면 False를 반환하는 부울 배열이다.

이제 주가 데이터를 전처리하는 함수를 만들자.

코드가 길지만, 내용은 단순하다.

먼저, 날짜라는 컬럼에 YYYYMMDD 형식으로 날짜가 정의되어 있는데, 숫자로 인식되어 있다.이동 평균 교차

이를 문자로 치환하여 YYYY, MM, DD를 가져오고, 날짜를 datetime으로 정의한 뒤, 날짜를 기준으로 오름차순 정렬하고, 날짜를 인덱스로 설정한다.

그리고 Series의 이동 평균 교차 rolling 메서드를 사용하여 5일, 20일, 60일, 120일 이동 평균을 구한다.

이동평균을 구하는 과정에서 앞 부분에 결측이 생기므로, 결측이 있는 부분을 제거한다.

결측을 제거하고 데이터가 남아있다면, 앞서 정의했던 goldencross, deadcross 함수를 이용하여 골든크로스와 데드크로스 여부를 나타내는 컬럼을 만든다.

사실 골든크로스와 데드크로스의 정의에서 장기와 단기 이평선이 정확히 어떤 이평선인지를 정의하고 있지 않아, 4가지 경우의 수를 모두 고려한다.

그리고 크로스가 포함된 컬럼이 모두 False라면 합이 0일테므로, 이 것을 활용해서 크로스가 없는 데이터라면 None을 리턴한다.

이제 코스피와 코스닥 데이터를 가져오면서 전처리를 한 뒤, data_dict에 추가한다.

골든크로스 지점에서 매수, 데드크로스 지점에서 매도 시 기대 수익 계산

먼저 수익률 목록을 담을 사전을 정의한다.

그리고 코드 작성의 편의를 위해, 골든크로스 관련 컬럼과 데드크로스 관련 컬럼을 정의한다.

이제 모든 (golden_cross_col, dead_cross_col)을 기준으로 매매했을 때의 수익을 계산한다.

itertools.product를 이용하여 먼저 모든 조합을 순회하면서, profit_list를 빈 리스트로 초기화한다.

그 다음으로 해당 컬럼들에 True인 값이 하나라도 있으면, 골든크로스 지점과 데드크로스 지점을 탐색하여 각각 buying_time과 selling_time에 저장한다.

이제 buying_time에 있는 값을 bt로 순회하면서, 이 시점에서의 종가를 buying_price에 정의하고, bt보다 큰 selling_time에 있는 값 가운데 가장 작은 값을 매도 시점으로 정한다.

만약, bt 이후에 데드크로스가 없으면, 데이터가 끝나는 시점에 매도한다.

이 결과를 profit_list에 추가한 뒤, 골든크로스컬럼과 데드크로스 컬럼을 key로 하는 profit_list_dict에 profit_list를 저장한다.

이제 코드의 결과를 확인하자.

profit_list_dict에 있는 모든 요소에 describe 메서드를 이용하여 통계량을 낸 뒤, 이를 result라는 사전에 추가하고, DataFrame으로 변환하여 출력한다.

파이썬에서 출력하니 보기가 힘들어서, 엑셀로 정리하였다.

모두 단위가 %임을 생각해서 해석해보도록 하자.

먼저, 최소값은 -95%인 경우가 있는데, 아마도 데드크로스가 발생하지 않고 버티기만 하다가 거의 상장폐지에 가까웠던 종목이 있던게 아닌가라고 추측할 수 있다.

그런데 어떤 골든크로스를 사용하던, 어떤 데드크로스를 사용하던, 50% 이상은 손실을 보게된다.

그러나 평균 이익은 양수로, 손실을 보는 사람은 많지만, 소수의 사람이 이익을 더 많이 보는 전략이라고 볼 수 있다.

전반적으로 따라할만한 전략은 아닌 듯 하다.

골든크로스 지점에서 매수하고 1, 3, 6, 12개월 후 매도했을 때의 기대 수익 계산

수익률 목록을 초기화하고, 골든크로스 관련 컬럼을 정의한다.

이제 각 컬럼을 순회하면서, 골든크로스 지점에서의 가격과 (bt), 1개월, 3개월, 6개월, 1년후의 가격을 비교하여, 수익률을 계산한다.

코드가 굉장히 길지만, 결국 핵심은 골든크로스가 발생한 지점을 buying_time에 정의하고, buying_time에 있는 요소에서 특정 기간 이후에서 시점이 데이터에 포함되어 있는지에 따라 이익을 계산하는 것이다.

그리고 계산한 결과를 기간 차이에 따라, 대응되는 리스트에 추가한다.

실험 결과는 이전 방법과 동일하게 정리한다.

의외의 결과가 몇 개 보이니 해석해보도록 이동 평균 교차 하자.

먼저, 골든크로스 지점에 종목을 구매할 것이면 1년이 아니라, 6개월을 보유하는 것이 가장 큰 이익이 됨을 확인했다.

그리고 중위수가 0에 가까웠는데, 딱 절반은 손실을 보고 절반은 이익을 보는 구조라는 것을 알 수 있다.

그렇다하더라도 골든크로스 지점에서 구매하는 것은 추천할만한 전략은 아닌 것으로 보인다.

데드크로스 지점에서 매수하고 1, 3, 6, 12개월 후 매도했을 때의 기대 수익 계산

수익률 목록을 초기화하고, 데드크로스 관련 컬럼을 정의한다.

컬럼이 데드크로스와 관련된 것만 빼면, 위의 실험 과정과 완전히 동일하다.

마찬가지로 실험 결과를 확인하자.

굉장히 당황스러운 결과인데, 사실 데드크로스에서 매수하는 전략은 거의 누구도 하지 않는다.

그런데 데드크로스에서 매수하는거와 골든크로스에서 매수하는것에 큰 차이가 없었고, 심지어는 골든크로스에서 구매해서 데드크로스에서 파는 것보다 데드크로스에서 사서 그냥 묵히는 것이 더 큰 이익이 나는 것을 확인했다.

이동 평균 교차

[블록체인투데이 손아리 기자] 공시데이터 기반 블록체인 정보 포털 서비스 쟁글은 23일 [데이터 기반 트레이딩] 보고서를 통해 이동평균선을 활용한 최적의 트레이딩 전략으로 ‘비트코인의 5일과 20일 이동평균선 교차 활용’을 꼽았다. 이더리움의 경우 5일과 20일 이동평균선, 그리고 가격과 20일 이동평균선을 활용했을 때 승률이 높았다.

이동평균선은 업데이트되는 평균 가격을 구해 가격 데이터의 편차를 조정할 수 있는 기술분석도구다. 이동평균은 특정 기간 동안의 평균값을 의미하며, 일반적으로 10일, 20일, 50일, 100일, 200일을 이용한다. 다만, 트레이더에 따라 기간은 달라진다.

이동평균선 교차점을 활용하는 것은 트레이딩의 주요 전략 중 하나다. 주로 1) 가격과 이동평균선 간 교차가 일어날 때나, 2) 장-단기 이동평균선이 교차할 때 트레이딩을 한다. 가격과 이동평균선이 교차할 때는 추세가 변한다는 가정 하에 트레이딩을 한다. 장-단기 이동 평균 교차 이동평균선을 활용할 때는 단기 이동평균선이 장기 이동평균선을 뚫고 올라갈 때 추세 상승을 나타내므로, 매수신호로 해석된다. 단기 이동평균선이 장기 이동평균선을 뚫고 내려갈 때는 추세가 하향 전환하고 있기 때문에 매도 신호로 해석된다.

△ 비트코인, 5일-20일 이동평균선 쌍 활용 트레이딩 수익률이 높고 안정적

쟁글이 직접 다양한 이동평균의 교차 쌍을 활용해 트레이딩 전략에 대한 백테스팅을 진행한 결과, 비트코인의 경우 5일과 20일 이동평균선 쌍을 활용한 트레이딩 전략이 2016년과 2017년을 제외하고는 시장을 뛰어넘는 수익률을 기록했다. 2016, 2017년과 같이 시장이 비이성적으로 과열됐을 때는 보유 시 수익률이 더 좋았다. 단기 트레이딩 시에는 1일과 5일 이동평균선쌍을 참고했을 때 수익률이 높았으며, 2020년 5월 31일 기준으로도 가장 높은 수익률을 기록했다.

올 들어 비트코인의 5일과 20일 이동평균선 쌍을 활용한 결과, 누적수익률은 70%을 기록했고 2번의 트레이딩 기회가 있었다. 1일과 5일 이동평균선 쌓을 활용했을 때는 트레이딩 횟수 15회, 누적 수익률 76%를 기록했다.

또 비트코인 가격이 약세일 때 두 쌍 이동평균선을 활용해 트레이딩을 하면 손실률을 방어할 수 있었다. 비트코인의 1일 및 20일 이동평균선과 1일 및 5일 이동평균선 쌍을 활용해 트레이딩했더니, 올 들어 누적수익률은 33%, 트레이딩 횟수는 9회가 나타났다. 1일 이동평균이 20일 이동평균을 뚫고 올라가면 매수하고, 1일 이동평균선이 5일 이동평균선을 뚫고 내려가는 경우에 매도하는 방식을 적용했다.


0 개 댓글

답장을 남겨주세요