: 지금까지 언급했던 보조 지표는 모두 가격과 연관되어 있었다. 가격 Data에서 추세와 시장 강도를 예측하는 것도 중요하지만, 거래량에서 얻을 수 있는 정보도 중요하긴 마찬가지다. 거래량은 가격과 함께 투자자들의 시장 심리를 반영한 흔적이기 때문에 미래의 가격을 예측하는데 도움이 될 수 있다.
보통 거래량도 추세를 보인다. 거래량의 급등이 시장 가격의 추세 방향을 결정하지는 않지만, 추세의 급격한 변화를 암시하고 있기 때문에, 거래량이 증가하는 추세를 보인다면 분명 조만간 가격 추세에 대한 변화가 발생할 수 있을 것이라고 생각하고 대비를 할 수 있다.
1. On Balance Volume (OBV)
: OBV는 "거래량은 가격보다 선행한다"라는 관점에서 시작한 지표로 가격의 추세를 반영한 거래량의 흐름이라고 보면 된다. OBV의 계산은 단순하다. 가격이 상승하는 날에는 그 날의 거래량을 더해주고, 하락하는 날에는 거래량을 빼주면 된다. 이렇게, 누적된 거래량이 OBV이다.
초기 OBV = 0
가격 상승 : OBV = OBV + 당일 거래량
가격 하락 : OBV = OBV - 당일 거래량
OBV를 해석하는 방법은 무척 다양하다. OBV가 증가한다는 것은 그만큼 가격 상승 구간이 많다는 것이고, 반면에 하락한다는 것은 가격의 하락 구간이 빈번하다는 의미이기 때문이다. 그래서 보통 OBV는 변동폭이 작은 구간에서 매집 또는 분산에 대한 판단 지표로 사용한다. OBV가 상승한다면, 매집이 이루어지고 있다는 의미이고, 반대로 하락한다면 물량이 분산되고 있다고 판단한다.
위의 그래프를 보면, OBV의 지속적인 상승(매집) 이후, 급격한 가격 상승이 이루어졌다. 이렇게 일반적으로 OBV로 세력의 매집 Signal을 판단한 뒤, 가격 상승에 대한 기대로 매매를 하는 기법이다. 보통 매집도 세력의 공격적인 매집이고 방어적인 매집이 있기 마련인데, 공격적인 매집은 위와 같이 OBV의 상승이 보이지만, 방어적인 매집은 가격 하락에 따라 나오는 개인 물량을 매집하기 때문에 OBV에서 발견하기 어려운 부분도 있다.
일단 이 OBV를 학습 Data에 추가하기에는 애매한 부분들이 많이 있다. 물론 Volume에 대해 Transformation을 취하여 Scaling을 할 수 있지만, 개인적으로 이 OBV가 현재 시점에 대해 가격에 대한 예측을 하는데 있어서 영향력이 있는지가 궁금하다. OBV의 가장 큰 단점이라고 생각하는 부분은 계산식이다. 단순하게 가격의 방향에 따라 그 날 모든 거래량을 더하고 빼는 연산식이 마음에 들지 않을뿐이다. 그 이유는 실제로 당일 대부분의 거래가 매도세 우세로 형성된 거래량이라고 할 지라도, 종가 시점에서 급격하게 매수세가 치고 올라오면 해당 거래량은 모두 +가 된다는 점이다. 우리가 알고 싶은 것은 당일 거래량 중에서 매도세 우세에 대한 거래량 비중과 매수세 우세에 대한 거래량 비중임에도 말이다.
이 때문에 OBV는 학습 Data에 추가하지 않는 방향으로 갈 예정이다.
2. Relative Strength Index (RSI)
: RSI는 상대 강도 지수라고 하며, 가격의 상승세와 하락세 간의 상대적인 강도를 나타내는 지표이다. 보통 RSI는 0~1 사이의 값을 가지며, 0.5 일 경우에는 상승세와 하락세가 균형을 이룬다고 볼 수 있다. 0.5보다 클 경우에는 상승세가 우세하다고 보며, 0.5보다 작을 경우에는 하락세가 우세하다고 판단하여 가격의 하락 추세를 가늠할 수 있다.
RSI는 오래된 지표라 현재 시장 반영이 잘 안된다는 사람들도 있지만, 여전히 많은 사람들이 유효하게 판단하는 지표이며, 이번 글에서는 거래량과 관련된 지표만 설명한다고 했음에도, 추가해보았다. RSI의 계산 공식은 조금 복잡하다.
1) Up = 전날 종가보다 당일 종가가 상승했을 때, 종가의 상승 폭
2) Down = 전날 종가보다 당일 종가가 하락했을 때, 종가의 하락 폭
3) AU = 일정 기간(n)에 대한 Up의 평균
4) AD = 일정 기간(n)에 대한 Down의 평균
5) RS = AU / AD
6) RSI = AU / (AU + AD) = RS / (1 + RS)
7) RSI Signal = RSI의 Moving Average
위의 공식만 보면, AU와 AD에 대해서 잘 이해가 안될 수도 있기 때문에, 예시를 들어 AU와 AD를 직접 구해보았다. 즉, AU와 AD는 동일한 일정 기간 동안 각각 상승 또는 하락이 발생 일자에 상승분을 합하고 나머지는 0으로 간주하여 평균을 낸 값이다.
계산식을 살펴보면, RSI는 일정 기간 동안의 AU와 AD의 총 변동폭 대비 상승폭(AU)에 대한 비중을 의미한다. 그리고 AU와 AD는 완전하진 않지만, 날짜에 서로 종속되어있기 때문에 일반적으로 AU가 커지면 AD는 작아지는 반비례 관계를 갖고 있다. 물론 상승 또는 하락폭이 클 경우에는 이러한 관계를 따르지 않는다. 그리고 다른 보조 지표들과 마찬가지로 RSI의 Signal은 RSI의 이동평균선을 의미한다.
직관적으로 RSI를 해석해보자. RSI는 AU / (AU + DU) 이므로, 일정 기간 동안의 상승 및 하락폭에 대한 상승폭의 비중이다. 그렇다면 처음 언급했듯이, RSI가 0.5인 경우에는 정말로 상승세와 하락세가 균형을 이루고 있다고 할 수 있을까?
AU를 상승세, DU를 하락세로 간주한다면 그렇다고 볼 수 있다. 왜나하면, AU = DU일 경우에는 RSI 가 0.5이기 때문이다. 그리고 AU(상승세) > AD(하락세)일 경우, RSI는 항상 0.5 이상의 값을 가지며, 반대로 AU(상승세) < AD(하락세)일 경우에는 0.5보다 작은 값을 갖는다.
RSI 지표를 단순하게 해석해본다면 다음과 같을 것이다.
1) RSI가 0.5 근방일 경우에는 매수세와 매도세가 균형을 이루고 있다.
2) RSI가 0.7 이상일 경우에는 초과 매수에 진입하여, 가격 하락에 대비를 해야한다.
3) RSI가 0.3 이하일 경우에는 초과 매도에 진입하여, 가격 상승을 기대할 수 있다.
4) RSI가 RSI Signal을 상향 돌파할 경우, 단기 매수세가 강하다.
5) RSI가 RSI Signal을 하향 돌파할 경우, 단기 매도세가 강하다.
해석하는 방법은 다양하지만, 해석하기 전에 RSI 지표가 어떤 계산식으로 산출이 되었는지 이해하고 있다면, 좀 더 예리한 판단을 할 수 있지 않을까 생각해본다.
위의 그래프는 RSI 지표를 적용해본 결과이다. RSI(주황색)와 RSI Signal(녹색)이 0.5를 기준으로 반복해서 움직이는 양상을 확인할 수 있다. 이러한 변동만으로 높은 가격에 대한 예측률을 기대할 수는 없지만, 가격 차트에서는 볼 수 없었던 매수세와 매도세에 대한 우세를 어느 정도 가늠할 수 있기 때문에, 가격 차트만 볼 때 보다 다음 추세에 대한 예측이 좀 더 수월해질 수 있다.
위의 RSI 차트를 참고하면, 매도세가 우세한 9/22일 근처 구간에서 매수세에 대한 상승이 감지되었기 때문에, 추가적인 가격 하락보다는 상승에 대한 확률이 높기 때문에 매수를 해도 나쁘지 않았을 것 같다. 물론, 이러한 매도세가 우세한 시점에서 매수세가 상승한다고 하더라도, 가격에 대한 상승과 반드시 연결되는 것은 아니지만 반대로 가격 하락에 대한 확률은 가늠할 수 있기 때문에, 괜찮은 보조 지표라고 생각한다.
개인적으로, RSI가 다른 보조 지표에 비해 단일 지표로 보기에는 강력한 보조 지표라고 생각되지 않지만, 매수세와 매도세를 가늠할 수 있는 지표이고, 다른 지표와 함께 봤을 경우에는 더 좋은 결과를 기대할 수 있다고 생각하기 때문에 학습 Data에 추가해 볼 예정이다.
3. Chaikin Money Flow(CMF)
: Chaikin Money Flow(CMF)는 가격과 거래량을 모두 고려한 보조 지표이다. 사실 앞서 언급한 OBV나 RSI 보다 CMF만 보고 매수세와 매도세에 대한 판단을 하는 사람들도 많다. 다양한 보조 지표를 갖고 판단하면 보다 높은 적중률을 기대할 수 있지만, 굳이 성능이 더 좋거나 비슷한 내용(추세, 강도, 모멘텀 등)을 포함하는 보조 지표를 중복해서 볼 필요는 없기 때문이다.
CMF는 거래량에 대한 Moving Average 대비 Accumulation& Distribution(AD)에 대한 Moving Average 비율이다. 뭔가 복잡해 보일 수 있으니, 계산식을 먼저 설명하면 다음과 같다.
1) Accumulation& Distribution(AD) = (( (Close - Low) - (High - Close) ) / (High - Low)) * Volume
2) CMF = (AD의 일정 기간 MA) / (Volume의 일정 기간 MA)
위의 계산식을 볼 때, 아래에 그림과 함께 보면 좀 더 이해하기 쉬울 듯 싶어서 추가해보았다. 계산식을 볼 때, 예리한 사람들은 "왜 Close - Low가 앞에 있지?" 라고 생각할 수 있는데, 그 이유는 그림에서 보듯이 Close - Low가 상승세에 대한 비중이기 때문이다. 즉, AD는 가격의 변동 내에서 우세한 추세에 대한 순수한 비중을 거래량에 가중치로 부여한 수치라고 볼 수 있다. 좀 더 쉽게 설명하면, AD는 당일 순수하게 발생한 추세에 해당하는 거래량만을 의미한다.
그렇다면 우리는 이제 CMF를 해석해 볼 수 있다. CMF는 전체 거래량에 대한 실제 추세 반영 거래량(AD)이기 때문에 1에서 -1 사이의 값을 가질 수 있고, CMF가 0일 경우, 상승세(매수세)와 하락세(매도세)가 균형을 이루고 있다고 판단할 수 있다.
그리고 CMF가 0보다 클 경우(CMF>0)에는 최근 거래량이 매수세가 우세한 거래량이 이루어졌다고 볼 수 있고, 0보다 작을 경우(CMF<0)에는 최근 거래량이 매도세가 우세했다고 판단할 수 있다. 그 강도는 절대값의 크기가 1에 가까워질수록 세다는 것을 알 수 있다.
위의 차트를 보면 CMF가 기준선(CMF=0)을 넘어 증가하면서 상승세가 붙고, 이에 따라 가격도 상승 추세로 흘러가는 것을 확인할 수 있다. 그리고 CMF가 점점 줄어들면서 매수세가 약해지는 것과 함께 가격의 하락을 동반하는 것을 확인 할 수 있다. 즉, CMF는 OBV와 마찬가지로 "거래량은 가격보다 선행한다" 라는 명제를 잘 따르고 있다는 것을 볼 수 있다. 물론, 모든 차트가 그렇다는 것은 아니지만 말이다.
천천히 살펴보면 RSI 지표를 해석하는 것과 유사하다. CMF도 RSI와 마찬가지로 매수세와 매도세를 판단해서 가격 추세를 예측할 수 있다. 다만, CMF는 거래량에 대한 보조 지표이기 때문에, RSI의 흐름과는 다른 양상을 보이기 때문에 매수세&매도세를 판단할 때, CMF와 RSI를 함께 살펴보면 적중률이 높아질 것으로 기대한다.
결론적으로, CMF도 좋은 보조 지표 중 하나로써 판단이되고, 학습 Data에 추가함으로써 학습이 잘 되길 기대해 본다. 이렇게 CMF를 마지막으로 학습 Data에 추가할 보조 지표는 어느 정도 마무리가 된 것 같다. 추후에, 필요할 경우 보조 지표가 추가될 수도 있지만, 당분간은 이번 학습 Data로 자동 매매 프로그램을 만들어보고자 한다.
그리고, Rule-Base (조건식) 기준으로 자동 매매하는 프로그램도 만들 예정인데, 이럴 경우에는 보조 지표의 역할이 무척 중요하므로, 그 때 다시 한 번 건드려보지 않을까 생각한다.
'Auto Trading > Pretreating' 카테고리의 다른 글
Chart Data 전처리 (5) : Stochastic Oscillator / CCI / 이격도 / Bollinger Band (0) | 2020.10.25 |
---|---|
Chart Data 전처리 (4) : MACD / ROC & Momentum / DMI & ADX (0) | 2020.10.18 |
Chart Data 전처리 (3) : 지수이동평균 (EMA) (0) | 2020.10.16 |
Chart Data 전처리 (2) : 결측치 처리 / Normalization / Transformation (1) | 2020.10.14 |
Chart Data 전처리 (1) : Why? & How? (0) | 2020.10.10 |