1. 적응형 이동평균이라고 항상 빠른 것은 아닙니다
이동평균선의 기간을 짧게 잡으면 가격을 빨리 따라가지만 횡보장에서 교차가 늘어납니다. 기간을 길게 잡으면 불필요한 움직임은 줄어도 추세 전환을 늦게 확인합니다. 한 가지 속도로 두 문제를 동시에 해결하기 어렵습니다.
VIDYA(Variable Index Dynamic Average)는 평활계수를 매일 바꿉니다. 방향성이 뚜렷할 때는 기존 EMA의 속도에 가까워지고, 상승폭과 하락폭이 서로 상쇄될 때는 거의 움직이지 않습니다. 이름만 보면 변동성이 커질수록 EMA보다 더 빨라질 것 같지만 CMO 기반 공식에서는 그렇지 않습니다.
MetaTrader 5의 VIDYA 문서는 EMA의 평활계수에 CMO 절댓값을 곱하는 계산을 제시합니다. QuantConnect의 VIDYA 문서와 공개 구현도 같은 재귀식을 사용합니다.
이 글의 핵심
- CMO 기반 VIDYA는 방향성이 약할수록 EMA보다 느려집니다.
- VIDYA(20)의 최대 평활계수는 EMA(20)와 같으므로 그보다 빨라질 수 없습니다.
- 같은 기간의
|CMO|는 카우프만 효율비율과 수학적으로 같습니다. - 느린 선이 교차 수를 줄여도 이후 상승 확률까지 높인 것은 아니었습니다.
2. VIDYA라는 이름에는 두 가지 계산이 섞여 있습니다
VIDYA를 검색하면 서로 다른 공식이 나옵니다. 한쪽은 단기·장기 표준편차 비율을 사용하고, 다른 쪽은 CMO 절댓값을 사용합니다. 둘 다 가격 상태에 따라 EMA의 평활계수를 바꾸지만 같은 지표 값은 아닙니다.
| 구분 | 속도를 조절하는 값 | 대표 계산 | 값이 커지는 상황 |
|---|---|---|---|
| 표준편차 비율형 | 단기 표준편차 ÷ 장기 표준편차 | 0.2×표준편차(9)/표준편차(30) |
최근 변동 폭이 장기보다 커짐 |
| CMO 기반형 | 상승폭·하락폭의 순차이 비율 | EMA 알파×CMO 절댓값 |
상승 또는 하락 한쪽 움직임이 우세함 |
Chart Manual의 VIDYA 설명은 9일과 30일 표준편차의 비율에 0.2를 곱하는 방식을 제시합니다. 반면 MetaTrader와 QuantConnect는 CMO 기반형을 사용합니다.
이 글에서는 국내 차트와 알고리즘 라이브러리에서 널리 구현된 CMO 기반 VIDYA만 계산했습니다. 두 공식을 한 표본에서 섞으면 기간과 속도 조절 기준이 동시에 달라져 결과를 해석하기 어렵습니다. 다른 플랫폼과 숫자가 맞지 않을 때는 오류라고 단정하기 전에 CMO period, EMA period, 표준편차 비율 사용 여부를 확인해야 합니다.
3. EMA 평활계수에 CMO 절댓값을 곱합니다
이 글에서는 CMO와 EMA 기간을 모두 20거래일로 맞췄습니다. 먼저 종가 상승폭과 하락폭을 각각 20일 동안 더해 CMO를 구합니다.
CMO(20) = 100 × (20일 상승폭 합 - 20일 하락폭 합)
÷ (20일 상승폭 합 + 20일 하락폭 합)
CMO의 방향은 VIDYA에 들어가지 않습니다. 상승 우세의 +60과 하락 우세의 -60은 모두 절댓값 60으로 바뀝니다. 그 값을 EMA(20)의 고정 평활계수에 곱합니다.
EMA(20) 알파 = 2 ÷ (20+1) = 0.095238
VIDYA 알파 = 0.095238 × |CMO(20)| ÷ 100
VIDYA = 이전 VIDYA + VIDYA 알파 × (종가 - 이전 VIDYA)
CMO 절댓값이 100이면 VIDYA 알파는 0.095238로 EMA(20)와 같습니다. CMO가 20이면 알파는 0.019048로 줄어듭니다. CMO가 0에 가까우면 VIDYA도 거의 멈춥니다. 따라서 이 설정의 VIDYA는 EMA보다 빨라지는 선이 아니라, EMA(20)를 상한으로 두고 필요할 때 더 느려지는 선입니다.
변동성이 크다와 방향성이 강하다도 구분해야 합니다. 가격이 위아래로 크게 왕복하면 상승폭과 하락폭 합은 모두 커져도 서로 상쇄되므로 CMO 절댓값은 낮아질 수 있습니다. VIDYA는 단순한 변동 폭보다 한 방향 움직임의 우세를 속도에 반영합니다.
4. CMO 절댓값과 효율비율은 같은 정보를 사용합니다
상승폭 합에서 하락폭 합을 빼면 20일 동안의 순가격 변화가 됩니다. 상승폭과 하락폭을 더하면 매일 움직인 절대 거리의 합이 됩니다. 따라서 같은 기간에서는 다음 항등식이 성립합니다.
|CMO(20)| ÷ 100
= |20일 순가격 변화| ÷ 20일 절대 가격 변화 합
= ER(20)
14개 종목 11,896거래일에서 두 값을 별도로 계산한 최대 절대 차이는 1.11×10⁻¹⁶이었습니다. 부동소수점 오차를 제외하면 같은 값입니다. CMO 지표는 부호를 남겨 상승·하락 방향을 읽지만 VIDYA는 절댓값만 사용합니다.
KAMA도 효율비율로 속도를 바꿉니다. 차이는 효율비율 자체보다 평활계수로 변환하는 방식입니다.
| 지표 | 사용한 상태값 | 평활계수 구조 | 이 표본의 최대 평활계수 |
|---|---|---|---|
| EMA(20) | 없음 | 항상 2/(20+1) |
0.0952 |
| VIDYA(20) | CMO(20) 절댓값/100, 즉 ER(20) |
0.0952×ER(20) |
0.0952 |
| KAMA(10,2,30) | ER(10) | 빠른·느린 계수 사이를 ER로 보간한 뒤 제곱 | 0.4444 |
KAMA는 표준 설정의 빠른 기간 2와 느린 기간 30 사이에서 움직입니다. 효율적인 추세에서는 평활계수가 VIDYA보다 훨씬 커질 수 있습니다. 반대로 VIDYA는 방향성이 아무리 강해도 EMA(20)의 속도를 넘지 않습니다. 두 선을 모두 적응형 이동평균이라고 부르더라도 반응 범위는 크게 다릅니다.
5. VIDYA는 가장 느렸지만 이후 방향을 더 잘 맞히지는 못했습니다
2018년부터 값을 계산하고 2022년 이후 14개 종목의 11,896거래일을 관찰했습니다. 종가가 각 이동평균선을 아래에서 위로 통과한 날을 세고, 이후 5거래일 안 종가가 다시 해당 선 아래로 내려왔는지와 10거래일 뒤 수익률을 비교했습니다.

| 항목 | EMA(20) | VIDYA(20) | KAMA(10,2,30) |
|---|---|---|---|
| 평활계수 중앙값 | 0.0952 고정 | 0.0187 | 0.0548 |
| 평활계수 90% 분위수 | 0.0952 고정 | 0.0450 | 0.2068 |
| 종가 상향 교차 | 779개 | 436개 | 845개 |
| 5거래일 안 재하락 | 63.67% | 58.72% | 59.41% |
| 10거래일 뒤 수익률 양수 | 49.94% | 48.17% | 50.30% |
| 10거래일 수익률 중앙값 | 0.00% | -0.34% | +0.18% |
| 종가와 절대 괴리 중앙값 | 2.96% | 5.91% | 2.75% |
VIDYA의 평활계수 중앙값은 EMA(20)의 약 20%에 불과했습니다. 그 결과 종가와의 절대 괴리 중앙값은 5.91%로 EMA와 KAMA보다 컸고, 가격 상향 교차도 436개로 가장 적었습니다. 느린 선이 단기 왕복을 덜 따라가면서 5거래일 안 재하락률은 EMA보다 4.96%포인트 낮았습니다.
그러나 10거래일 뒤 수익률이 양수인 비율은 48.17%였고 중앙값도 -0.34%였습니다. 교차 수와 빠른 재하락을 줄였다는 사실이 다음 방향 예측의 개선으로 이어지지는 않았습니다. 오랫동안 느리게 움직인 VIDYA가 가격 아래 멀리 남아 있으면 약한 반등도 상향 교차로 잡힐 수 있기 때문입니다.
세 지표의 기간과 평활 구조가 완전히 같지는 않습니다. 이 표는 어느 지표가 항상 우월한지를 결정하는 최적화 결과가 아니라, EMA 고정 속도·CMO 기반 감속·KAMA 효율비율 매핑이 신호 특성을 어떻게 바꾸는지 보는 비교입니다. 체결가·비용·손절을 넣은 전략 성과도 아닙니다.
6. 같은 상향 교차에서도 성공과 실패가 갈렸습니다
같은 VIDYA(20) 종가 상향 교차 중 이후 10거래일 상승이 이어진 사례와 5거래일 안 다시 선 아래로 내려간 실패 사례를 같은 조건에서 골랐습니다.

| 항목 | 상승이 이어진 사례 | 다시 하락한 사례 |
|---|---|---|
| 종목 | 삼성바이오로직스 | 삼성전자 |
| 판정일 | 2026년 1월 5일 | 2026년 7월 15일 |
| 판정일 종가 | 1,713,000원 | 279,500원 |
| VIDYA(20) | 1,693,609원 | 276,305원 |
| EMA(20) | 1,706,588원 | 298,293원 |
| KAMA(10,2,30) | 1,699,421원 | 300,912원 |
| CMO(20) | +14.57 | -19.31 |
| VIDYA 평활계수 | 0.0139 | 0.0184 |
| 5거래일 안 VIDYA 아래 재하락 | 아니오 | 예 |
| 이후 10거래일 종가 수익률 | +12.14% | -25.94% |
삼성바이오로직스는 종가가 VIDYA뿐 아니라 EMA와 KAMA 위에도 올라선 뒤 상승이 이어졌습니다. 판정일 VIDYA 알파는 0.0139로 낮았지만 세 기준선이 비슷한 가격대에 모여 있었습니다.
삼성전자는 종가 279,500원이 느린 VIDYA 276,305원을 넘었지만 EMA와 KAMA는 30만원 안팎에 남아 있었습니다. VIDYA가 가격 아래 멀리 지연돼 있었기 때문에 하락 추세 안의 반등도 상향 교차가 됐습니다. 이후 종가는 5거래일 안 VIDYA 아래로 돌아왔고 10거래일 뒤 25.94% 하락했습니다.
VIDYA 상향 교차를 사용할 때는 교차 여부만 보지 말고 선의 기울기와 가격 괴리를 함께 봐야 합니다. VIDYA가 장기간 거의 움직이지 않았거나 EMA·KAMA와 지나치게 벌어져 있다면 교차가 추세 전환이 아니라 느린 기준선을 잠시 넘은 것일 수 있습니다.
7. VIDYA는 가변 속도 자체를 먼저 확인합니다
VIDYA를 전략에 넣을 때는 다음 항목을 기록하는 편이 좋습니다.
- 사용 중인 플랫폼이 CMO 기반형인지 표준편차 비율형인지 확인합니다.
- CMO와 EMA 기간을 따로 받는다면 두 값을 모두 명시합니다.
- 매일의 VIDYA 알파를 저장해 선이 빨라진 구간과 거의 멈춘 구간을 구분합니다.
- 종가 교차뿐 아니라 VIDYA 기울기와 가격 괴리, 장기 추세를 함께 집계합니다.
- KAMA를 동시에 쓸 때 같은 효율비율 정보를 중복 필터로 세지 않는지 확인합니다.
- 신호 다음 거래일의 체결과 손절·시간 청산, 거래비용을 넣어 전략을 다시 검증합니다.
VIDYA의 장점은 횡보성 왕복에서 기준선을 천천히 움직여 작은 가격 변화에 덜 반응한다는 데 있습니다. 하지만 감속 폭이 크면 추세가 바뀐 뒤에도 오래 뒤처지고, 그 지연 때문에 의미가 약한 교차가 만들어질 수 있습니다.
핵심은 간단합니다. CMO 기반 VIDYA는 방향성이 약할 때 EMA를 느리게 만들지만, 적응형이라는 이름만으로 신호가 더 정확해지지는 않습니다. 교차 수 감소와 실제 방향 예측 개선을 별도로 확인해야 합니다.
EMA는 고정 평활계수의 기준선이며, KAMA는 같은 경로 효율 정보를 다른 범위의 평활계수로 변환합니다. VIDYA를 선택할 때는 어떤 선이 더 적응적이라는 표현보다 실제 알파 범위와 교차 결과를 비교해야 합니다.
본 글은 지표의 계산 구조와 과거 사례를 설명하기 위한 자료이며 특정 종목의 매수·매도를 권유하지 않습니다. 모든 투자 판단과 책임은 투자자 본인에게 있습니다.