본문 바로가기

암호화폐

Moving Average(이동평균선) - 기본

주식과 코인은 시계열 데이터입니다. 흔히 비트코인 차트라고 하면 시계열 데이터를 나열한 것입니다. 
시계열 알고리즘, 시계열 데이터라고하면 어렵게 느껴지지만 사실 주변에서도 많이 보셨을 겁니다. 예를 들어 지난 월의 전력 사용량 데이터 등이 시계열 데이터죠.

여러분과 저의 주요 관심사인 코인 시계열 데이터에서 말씀드릴 내용은 크게 두가지입니다. 첫번째는 시계열을 다루는 알고리즘, 두번째는 알고리즘을 사용한 매매기법 입니다.

 

첫번째 시계열을 다루는 알고리즘
시계열 분석의 큰 분야 중 하나가 미래 예측입니다. 과거의 데이터, 코인으로 말하자면 어제의 코인 가격으로 오늘의 코인가격을 미리 알아내고자 하는겁니다.
사실.. 이게 쉽다면 다들 부자가 되었겠지만 안타깝게도 코인을 예측하여 매매를 한다면 원래 변하면 안되었을 데이터가 사용자에 의해서 변하기 때문에 데이터가 오염이 됩니다. 그리고 이 오염된 데이터로는 다음 미래를 예측하기가 어려워집니다. 따라서 오염된 데이터에서 추세와 변동을 분리하여 의미를 찾고 매매하여 다시 오염시키고 의미를 찾고.. 의 반복이라고 이해하시면 됩니다. 왜 어려운지 감이 오시나요? 따라서 시계열의 또다른 큰 분야가 노이즈 감소입니다. 이는 데이터에서 노이즈를 제거하고 실제 신호만 남기는 과정으로 노이즈가 잔뜩 들어가서 실제 중요한 신호가 무엇인지 확인이 어려울 때 매우 중요해집니다. 코인에 적용하자면 어지러운 데이터에서 무의미한 변동을 제거하고 추세를 남기는 과정을 의미합니다.

 

노이즈 제거에서 가장 대표적인 알고리즘이 Moving Average(이하 MA) 입니다. 흔히 이평선이라고 많이 이야기 합니다. 코인 차트에서 5, 10, 20 이런 식으로 그어진 줄을 보신 적이 있나요? 그게 바로 MA 입니다. 코인 거래 차트는 위아래로 요동치는데 MA는 왠지.. 매끄럽게 움직이지 않나요? 이유는 바로 노이즈가 제거되었기 때문입니다.

MA의 방식은 주어진 시간(t1, t2, t3, t4, t5...)에 대해서 (x1, x2, x3, x4, x5...)값이 들어올때 미리 지정한 개수의 수 만큼 가져와 평균을 내어 새로운 값으로 하는  것입니다. 흔히 슬라이딩 윈도우 방식이라고 표현합니다.

예를 들어드릴게요. MA(3)에서 t3의 값은 (x2 + x3 + x4)/3 값, t4의 값은 한칸 이동하여 (x3 + x4 + x5)/3, 마찬가지로 t5의 값은 (x4 + x5 + x6)/3 입니다. 살짝 감이 오시나요?

 

※서술한 기본 MA 방식은 미래의 데이터도 참고합니다. 이 방식(Centered Moving Average)은 노이즈 감소에 강점을 가집니다.
다만 주식처럼 실시간으로 데이터를 처리하며 미래 데이터를(당연하게도) 볼 수 없는 경우 과거의 값만을 가져옵니다. 이를 Trailing Moving Average 라고 합니다.

 

noisy data

 

 

이걸 보면 무슨 생각이 드시나요. 뭔가 있는거 같긴한데.. 뭔진 잘 모르겠지 않나요? 이렇게 마구 흔들리고 있는 데이터를 ‘변동성이 심하다’ 라고 표현합니다. 이러면 실제 신호가 변하는 것(추세)를 알아보기 어렵습니다. 사실 이건 아래 검은색 신호와 빨간색 노이즈를 섞은 데이터 입니다. 검은색 추세에 비해서 빨간색 변동이 심합니다. 따라서 추세를 알아보기 어려웠던 것이죠.

signal & noise 분리

 

 

실제로 접하는 대부분의 데이터는 파란색처럼 신호에 빨간색 노이즈가 섞여서 들어옵니다. 그런데 여기서 다시 추세를 찾아낼 수 있을까요? 이때 강력한 툴이 바로 Moving Average입니다.

 

Moving Average 효과

 

 

빨간색 선이 하늘색선(추세)을 얼추 따라가고 있는거처럼 보이지 않나요? 빨간색은 Moving Average 20 데이터입니다. 즉 연속된 파란색의 값 20개 구간을 평균해서 하나의 값을 구합니다. 20개 구간에 +, -로 요동치는 변동성이 평균을 구하면서 줄어들기 때문에 추세를 잘 찾아낼 수 있는 것 입니다. 그러나 MA도 만능은 아닙니다. 합치는 기간을 늘리면 추세조차도 평균에 파묻히기 마련이며 알아볼 수 없게 됩니다. 그러니 적절한 MA값을 찾는 것이 중요합니다. 빠르게 변하는 시장 상황에서는 MA 기간을 짧게!, 느리게 변한다면 길게 보는 것이 좋으며 굳이 하나만 볼 필요는 없죠? 보통 5, 7, 10, 20, 30 등등 여러개의 MA를 동시에 띄워놓고 차트를 보게 됩니다.

 

※MA를 사용하는 거래 기법 : golden cross, 크로스 오버

 

 

다음 포스팅 : Moving Average(이동평균선) - 심화