이번 포스팅은 이동평균선에 대해서 알아보려고 합니다.
어떠한 HTS, MTS 등 차트를 조회하게 되면 가장 먼저 표시되어있는 항목 중에 한 가지라고 봐도 좋습니다.
기본적으로 이동평균선은 초기에 세팅이 되어이 있을 정도로 매우 중요한 정보를 가지고 있는 지표라고 할 수 있습니다.
위 그림을 보시는 것과 같이 기본적으로 단순 이동평균의 5, 10, 20, 60, 120의 각각의 색상에 맞춰서 라인이 설정되어있는 것을 볼 수있습니다. 주식을 조금이나마 하신 분들은 의미를 아실텐데 우선 하나하나 살펴보겠습니다.
우선 5, 10, 20, 60, 120 선들에 대해서 색깔이 다르게 설정되어있는 것은 각 선에 대한 의미가 있으니까 각각 설정이 가능하겠죠? ㅎ
이동평균선이기 때문에 숫자들은 일자를 의미하는 것입니다. 그래서 5일, 10일, 20일, 60일, 120일의 평균값을 나타내는 선이라고 볼수 있습니다. 다른 말로 하자면 각 기간마다의 추세를 확인하는 지표라고도 할 수 있을 것 같습니다. 평균값의 이동을 표기해주는 선이라 이동평균이라고 불리는 것 같습니다.
그럼 여기서 좀 더 깊게 알아보자면 기간에 대한 평균값이기 때문에 주식투자의 성향에 따라서 각각의 관점이 달라질 수 있습니다.
단기투자를 하시는 분들은 5일선을 기준으로 판단할 것이고 중장기 투자를 하시는 분들은 60, 120선을 기준으로 판단기준을 정할 수 있습니다. (대략적으로 그렇다는 것입니다 ㅎㅎ)
이러한 기준들에 따라서 기법들이 다양하게 존재합니다. 다들 들어보셨을 것 같긴 하지만 조금 나열을 해보자면... 정배열, 역배열, 골든크로스, 데드크로스 등이 있습니다. 정배열이란 각각의 이동평균선이 5, 10, 20, 60, 120선이 순서대로 나란히 정렬된 상태의 이동평균선 형태를 말하는 것입니다. 역배열은 그 반대죠. 120, 60, 20, 10, 5 이러한 형태로 정렬되어있다면 역배열이라고 합니다.
또한 5일선이 아래에서 20일선을 위로 돌파한다면 그 교차 지점을 골든크로스라고 하며 5일선이 위에서 20일선을 아래로 돌파한다면 그 교차 지점을 데드크로스라고 합니다.
대체적으로 차트를 조금 보다 보면 정배열일 경우에 특정 기간 내에 가장 고점을 기록하는 구간으로 확인이 되며 역배열 상태일 때 주가가 최저점을 기록하는 모습들을 볼 수 있습니다. ( 이것은 차트의 기간과 봉의 기준에 따라 다릅니다. )
기본적인 이평선의 용어들을 살펴보았지만 이를 해석하는 방법에 대해서는 각각의 전략과 개인차에 따라서 모두 다릅니다. 그림과 같이 5, 20선을 골든크로스로 보는 사람도 있지만 중장 기선들을 가지로 골든크로스를 판단하는 경우도 있습니다. 또한 일반적으로 골든크로스가 매수의 시점으로 잘 알려져 있지만 데드크로스를 매수시점으로 보는 사람들도 있습니다. 이는 시장의 현 상태와 각자의 투자관점 종목 간의 차이 등 여러 가지의 이유로 매수, 매도의 시점이 달라지기 때문에 자신만의 관점에서 해석하는 것이 가장 중요한 것 같습니다. 일반적인 이론에 대해서는 인지를 하고 있어야 하지만 무조건 적인 기준은 아니라는 점을 다시 한번 새겨 넣어야 합니다.
이러한 이동평균선에도 몇 가지 종류가 있습니다. 대표적으로 가장 많이 사용하는 3가지에 대해서만 알아보겠습니다.
- 단순 이동평균 - 종가의 단순 평균
- 지수 이동평균 - 단순 이동평균에서 마지막 주가의 변동폭을 가산하여 계산
- 가중 이동평균 - 지수 이동평균에서 마지막 주가의 변동폭을 가산하여 계산
단순 이동평균을 기준으로 하여 마지막 날의 변동폭을 가중치로 두어 계산하는 방식이기 때문에 단순 이동평균보다는 어느 정도 주가의 변화에 민감도를 가지는 선이라고 볼 수 있습니다. 단순 이동평균선의 단점들을 보완하기 위해서 나온 지표들이라고 할 수 있습니다. 그렇다고 단순 이동평균선을 사용하지 말라는 것은 아닙니다. 자신에게 맞는 지표를 선택하는 것이 가장 중요한 점입니다.
자 그럼 의미에 대해서 알아보았으니 단순 이동평균선, 지수 이동평균선을 코드로 구현해 보겠습니다.
영어로는 SMA(Simple Moving Average), EMA(Exponetial Moving Average)라고 불리고 있습니다.
sma = ohlcv['close'].rolling(window=day).mean()
ema = ohlcv['close'].ewm(day).mean()
코드로 구현하니까 너무 쉽죠? day에 해당하는 값을 5, 10, 20, 60, 120 이렇게 지정해주면 각각의 이동평균선을 계산할 수 있습니다.
Pandas의 Lib를 사용하기 때문에 코드 구현이 매우 쉽지만 의미에 대해서는 알고 넘어가는 것이 좋을 것 같습니다.
단순 이동평균을 계산하기 위해서는 특정 기간의 평균값을 구해야 하기 때문에 rolling이라는 함수를 통해 해당 DataFrame의 특정 위치부터 지정된 기간까지 이동하면서 계산을 하겠다는 의미이고 mean()의 함수의 기능이 평균값을 계산하라는 의미입니다.
지수 이동평균을 계산하기 위해서도 역시 특정 기간의 가중치의 평균을 구해야 하기 위해 ewm() 함수를 사용했습니다. ewm은 지수 가중 함수이고 이를 역시 mean()을 통해 평균값을 계산하는 코드입니다.
이렇게 해서 이번 포스팅에서는 이동평균선에 대한 종류, 의미, 코드 구현 방법에 대해서 작성해 보았습니다.
다음에 포스팅할 내용은 볼린저밴드에 대해서 알아보도록 하겠습니다.
이렇게 지표들을 하나하나 학습하면서 코드로 구현이 가능하도록 포스팅이 계속 된다면 HTS같은 기능을 만들수 있겠죠? ㅎㅎ
그날이 올때까지 열심히 학습!!!
'경제공부' 카테고리의 다른 글
[Chart Study] 일목균형표(ichimoku cloud) (0) | 2022.04.03 |
---|---|
[Chart Study] 볼린저밴드(Bollinger Bands) (0) | 2022.03.30 |
[Chart Study] 차트의 형태 및 구성요소 (0) | 2022.03.15 |
투자란 무엇인가? (0) | 2022.03.01 |
자본주의의 개념 정리 (0) | 2022.02.20 |
댓글