이동평균선 직접 계산하기 — 정배열·교차 신호의 한계
작성·검토: KOSAK Studio · 수정:
이동평균선(MA, Moving Average)은 과거 가격의 평균을 연결한 선입니다. 차트에서 방향을 정리하는 데 쓰지만, 평균이 오르는 날에도 현재 가격은 하락할 수 있습니다. 종가 다섯 개를 직접 계산하면서 평균·가격·교차 신호가 각각 무엇을 말하는지 구분해 보겠습니다.
이동평균선이란 무엇인가
단순이동평균(SMA)의 N봉 값은 최근 N개 종가의 합 ÷ N입니다. 새 봉이 들어오면 가장 오래된 종가를 빼고 새 종가를 더합니다. 20일선은 일봉 종가 20개, 시간봉의 20봉선은 시간봉 종가 20개입니다. 동일한 숫자 ‘20’이어도 투자 기간은 다릅니다.
- 짧은 평균: 최근 가격 변화에 빨리 반응하지만 잦은 방향 전환도 반영합니다.
- 긴 평균: 과거 가격이 더 오래 남아 선이 완만해지며 최근 변화에 늦게 반응합니다.
- SMA와 EMA: SMA는 창 안의 종가에 같은 비중을 주고, 지수이동평균(EMA)은 최근 값에 더 큰 비중을 둡니다. 다른 방식의 선을 같은 것으로 비교하지 마세요.
직접 계산: 주가는 내리는데 평균은 오를 수 있습니다
아래는 통화를 생략한 가상 종가이며 실제 종목이 아닙니다. 앞선 5개 종가가 90·100·110·100·100이고 새 종가가 99라고 가정합니다.
| 구분 | 계산 | 결과 |
|---|---|---|
| 기존 5봉 평균 | (90+100+110+100+100)/5 | 100 |
| 새 종가의 전일 대비 | (99/100−1)×100 | −1% |
| 새 5봉 평균 | (100+110+100+100+99)/5 | 101.8 |
| 가격과 새 평균의 거리 | (99/101.8−1)×100 | 약 −2.75% |
새 가격 99가 직전 종가 100보다 낮아도, 빠져나간 오래된 가격 90보다는 높으므로 평균은 100에서 101.8로 올라갑니다. ‘평균선 상승’과 ‘오늘 상승’은 같은 사건이 아닙니다. 평균을 움직인 새 가격뿐 아니라 창에서 빠진 가격도 봐야 합니다.
정배열·역배열, 골든크로스·데드크로스
정배열과 역배열
짧은 평균이 긴 평균 위에 차례로 놓이면 정배열, 반대면 역배열이라고 부릅니다. 예를 들어 5봉 평균 >20봉 평균 >60봉 평균은 과거 여러 기간의 평균 가격 관계를 요약합니다. 이 관계만으로 다음 가격이나 보유자 전체의 손익을 알 수는 없습니다.
교차와 현재 위치는 다릅니다
단기선이 장기선 아래에서 위로 넘어가는 사건이 골든크로스, 위에서 아래로 넘어가는 사건이 데드크로스입니다. ‘오늘 단기선이 위에 있다’와 ‘오늘 처음 상향 교차했다’는 다릅니다. 교차를 검사하려면 직전 봉과 현재 봉의 두 관계가 모두 필요합니다.
예를 들어 가상 값에서 직전 MA20=98·MA50=100, 현재 MA20=101·MA50=100이면 상향 교차입니다. 그다음 봉에도 MA20이 위에 남아 있어도 새로운 교차가 또 생긴 것은 아닙니다. 신호 발생 횟수를 계산할 때 이 차이가 중요합니다.
왜 교차 후에도 손실이 날까요?
- 후행성: 이미 발생한 가격이 평균에 반영된 뒤 교차하므로 움직임의 시작과 같지 않습니다.
- 횡보: 두 선 근처를 가격이 오가면 상향·하향 교차가 번갈아 나타날 수 있습니다.
- 자료 차이: 시간봉, 조회 범위, 분할·배당 조정, 거래소가 다르면 평균과 신호 시점도 달라질 수 있습니다.
- 실제 비용: 같은 가격 방향을 맞혀도 수수료·세금·호가 차이와 체결 시점 때문에 순손익이 달라집니다.
정정: 이전 글의 ‘국내 코스피·코스닥 단순 백테스트 승률 45~55%’는 재현할 종목·기간·거래 내역을 제시하지 못해 삭제했습니다. 여기서는 특정 교차 전략의 실측 승률이나 코싸크 성능을 주장하지 않습니다.
눌림목을 확인할 때 무엇을 기록하나요?
상승하던 가격이 평균선 근처로 되돌아오는 구간을 눌림목이라고 부르기도 합니다. 실제로 평균선 근처에서 다시 올랐는지, 계속 하락했는지는 나중에 확인되는 결과입니다. 이름만으로 매수 기회라고 확정하지 마세요.
관찰한다면 ‘평균선 1% 이내 접근’처럼 조건을 먼저 정하고 시각·시간봉·가격·당시 거래량·다음 관찰 시점을 기록합니다. 가격이 반등한 사례만 모으면 같은 조건에서 실패한 사례가 빠집니다. 투자일지에는 사후 설명보다 당시의 조건과 반대 시나리오를 함께 남기는 편이 비교에 도움이 됩니다.
코싸크에서는 평균선이 어떻게 쓰이나요?
기본 점수는 현재가와 MA20·MA50의 거리, 두 평균선의 상대 위치 등을 점수로 바꿉니다. 평균선 근처의 작은 움직임이 항목 전체를 갑자기 뒤집지 않도록 거리에 비례하는 구간이 있습니다. 장기 평균과 점수 방향이 반대일 때의 보정은 별도 단계입니다. 이는 매매 신호의 성공을 보장하는 장치가 아닙니다. 실제 점수 기여도와 단계별 계산 예제를 참고하세요.
교차 전략을 검증하려면 먼저 정할 것
- 시장·종목군·기간·상장폐지 종목 포함 여부와 가격 조정 방식을 정합니다.
- 어떤 선의 교차인지, 종가 확정 뒤 언제 주문하는지, 청산·중복 진입 규칙을 정합니다.
- 수수료·세금·미끄러짐을 명시하고 같은 자료의 단순 보유 등 비교 규칙도 계산합니다.
- 규칙을 고른 구간과 마지막 평가 구간을 분리하고 실패한 거래도 포함합니다.
- 승률뿐 아니라 거래 수·평균 손익·큰 손실·자금 노출 기간을 함께 확인합니다.
코싸크가 실제로 수행한 다른 연구의 예로 42개 일봉·주봉 비교 연구와 평가 자료를 공개했습니다. 이는 위에서 가정한 이동평균 교차 전략의 검증 결과가 아니며 서로 대신 인용해서는 안 됩니다.
자료와 편집 기준
- Fidelity 공식 SMA 안내: 단순이동평균의 정의·기간·후행성 참고.
- scikit-learn TimeSeriesSplit: 시간 순서를 유지한 평가 분할 참고. 이 문서가 특정 매매 전략의 수익을 보증하는 것은 아닙니다.
- 가상 종가·산술 예제는 KOSAK Studio가 작성했습니다. 수정 시 코드·본문·숫자를 함께 대조하며 오류 제보를 받습니다. 운영·정정 원칙.
교육·참고용 자료입니다. 가상 예제는 실제 앱 성과나 특정 종목의 수익을 뜻하지 않습니다. 과거 자료와 기술 지표는 미래 결과를 보장하지 않습니다.