이동평균은 대부분 두 가지 중 하나를 고른다. 오래된 봉과 최근 봉에 같은 무게를 주거나(단순이동평균), 최근으로 갈수록 지수적으로 무게를 늘리거나(지수이동평균). ALMA(Arnaud Legoux Moving Average)는 셋째 길을 쓴다. 가우시안 종 모양 곡선으로 무게를 배분하면서, 그 종의 중심을 최근 쪽으로 밀어둔다. 잡음은 가우시안 곡선이 걸러내고, 반응 속도는 중심 이동이 벌어준다는 게 설계 의도다.

삼성물산을 시험대로 고른 이유는 단순하다. 이 종목은 6월 22일 52만원에서 7월 29일 28만5,500원까지 다섯 주 남짓 만에 45.10% 빠졌다가, 8월 18일까지 다시 29.25% 반등했다. 한 구간 안에 급락과 반등이 모두 들어 있어서, ALMA가 내려갈 때와 올라갈 때 각각 어떻게 움직이는지 같은 데이터로 비교할 수 있다.

이 글의 데이터 범위
종목      삼성물산 (028260)
구간      2026-06-09 ~ 2026-08-18 (완전 거래일 49일)
출처      stockanalysis.com 일봉
최고 종가  520,000원 (06-22)
최저 종가  285,500원 (07-29)
구간 낙폭  -45.10% (06-22 → 07-29)
저점 반등  +29.25% (07-29 → 08-18)
--------------------------------------------------
비고      08-19 봉은 거래량 60,737주로 구간 내 최저 거래일(244,444주)의 4분의 1 수준이다.
         장중 스냅샷일 가능성이 커서 계산·검증 대상에서 뺐다.

삼성물산 일봉 개요

투자 조언이 아니다. 아래 모든 수치는 지난 시세를 사후에 계산한 결과일 뿐, 매매를 권하는 근거가 아니다.

계산, 실측, 검증

ALMA의 계산식은 다음과 같다. 종가 배열의 마지막 N개 구간에 가우시안 가중치를 곱해 더한다.

ALMA 계산식
m = offset * (N - 1)
s = N / sigma
w_i = exp( -(i - m)^2 / (2 * s^2) )     for i = 0 .. N-1
ALMA_t = sum(w_i * price[t-N+1+i]) / sum(w_i)

파라미터는 N=9, offset=0.85, sigma=6을 썼다. N=9는 다른 회차에서 함께 쓴 SMA·EMA(9)와 바로 비교하려고 맞췄다. offset 0.85와 sigma 6은 ALMA를 처음 제안한 논문과 대부분의 차트 도구가 기본값으로 쓰는 조합이라, 낯선 파라미터를 새로 골라 결과를 왜곡할 여지를 줄이려 했다.

이 조합에서 아홉 개 가중치를 직접 계산하면 다음과 같다. m=6.8, s=1.5이므로 가중치의 정점은 맨 마지막 봉(i=8)이 아니라 그 바로 앞(i=7)에 온다.

가중치 분포 (N=9, offset=0.85, sigma=6)
i=0(9일전)  0.00%
i=1         0.02%
i=2         0.18%
i=3         1.23%
i=4         5.32%
i=5        14.78%
i=6        26.34%
i=7        30.09% (정점)
i=8(당일)  22.05%
--------------------------------------------------
최근 3봉 합 78.48%

정점이 당일이 아니라 하루 전이라는 점이 뒤에서 반등 구간을 설명할 때 다시 나온다. 창 크기가 9이므로 06-09부터 06-18까지 8거래일은 ALMA 값이 없다. 첫 유효값은 06-19에 나온다. 예열 구간이 8일이라 전체 49거래일 중 41일만 지표를 쓸 수 있었다는 뜻이다.

종가와 ALMA 교차 신호

종가가 ALMA를 아래에서 위로 뚫으면 매수 신호, 위에서 아래로 뚫으면 매도 신호로 셌다. 41개 유효 구간에서 이런 교차가 16번 있었다. 각 신호가 나온 뒤 5거래일(자료 끝에 가까운 신호는 남은 거래일만큼) 종가가 신호 방향대로 움직였는지 전수 대조했다.

날짜신호종가ALMAN거래일 후등락률적중
06-23매도455,000491,126468,500 (06-30)+2.97%틀림
06-25매수519,000489,077406,500 (07-02)-21.68%틀림
06-29매도471,000492,056449,500 (07-06)-4.56%맞음
07-06매수449,500432,438361,000 (07-13)-19.69%틀림
07-07매도424,500432,876354,000 (07-14)-16.61%맞음
07-15매수367,000366,203360,000 (07-23)-1.91%틀림
07-16매도346,000359,565342,000 (07-24)-1.16%맞음
07-21매수343,500340,674305,000 (07-28)-11.21%틀림
07-24매도342,000349,593351,500 (07-31)+2.78%틀림
07-31매수351,500309,203336,500 (08-07)-4.27%틀림
08-04매도322,500325,734344,500 (08-11)+6.82%틀림
08-05매수347,500332,012357,500 (08-12)+2.88%맞음
08-06매도334,000334,642365,000 (08-13)+9.28%틀림
08-07매수336,500336,275369,000 (08-14)+9.66%맞음
08-10매도336,000336,540369,000 (08-18)+9.82%틀림
08-11매수344,500338,146369,000 (08-18, 4거래일 후)+7.11%맞음

16건 중 맞은 신호는 6건, 틀린 신호는 10건이다. 적중률 37.5%. 절반에도 못 미친다.

신호 성적표
전체 신호   16건
맞음       6건
틀림       10건
적중률     37.5%

맞은 신호부터 보면 06-29, 07-07, 07-16 매도 신호는 급락이 본격화되기 직전이나 직후에 나와 방향을 제대로 잡았다. 반대로 06-25 매수 신호는 하필 구간 최고가 근처(519,000원)에서 나와 다음 5거래일에 -21.68%를 맞았고, 07-06 매수 신호도 -19.69%로 이어졌다. 두 번 다 급락이 시작되는 지점에서 지표가 반대 방향을 가리켰다. 08-04부터 08-11까지는 매도·매수 신호가 이틀에 한 번꼴로 뒤집혔는데, 이 구간 자체가 336,000원 안팎 좁은 박스권이었다. 방향성 없는 구간에서 교차 지표는 신호를 계속 만들어내고, 그 신호는 계속 틀린다는 걸 그대로 보여준다.

파라미터를 바꾸면 이 그림이 어떻게 달라지는지 offset을 0.5(대칭), 0.85(기본값), 0.99(최근 편향)로 바꿔 같은 방식으로 세어봤다.

ALMA 오프셋 민감도

offset 민감도 (N=9, sigma=6 고정)
offset 0.50  신호 6건, 적중 2건 (33.3%)
offset 0.85  신호 16건, 적중 6건 (37.5%)
offset 0.99  신호 16건, 적중 6건 (37.5%)

offset을 0.5로 낮추면 곡선이 대칭에 가까워지면서 잔파도를 흡수해 신호가 6건으로 준다. 그런데 적중률은 오히려 33.3%로 더 나쁘다. 신호 수를 줄인다고 품질이 따라 올라오지는 않았다. offset을 0.99까지 올려도 신호 개수와 적중률이 0.85와 거의 같다는 점도 눈여겨볼 만하다. 이미 0.85에서 최근 봉 쪽으로 무게가 78% 넘게 쏠려 있어서, 그 이상 밀어붙여도 실질적인 차이가 크지 않았다.

이동평균 세 종류의 반응 속도도 같은 구간으로 비교했다. ALMA(9, 0.85, 6), SMA(9), EMA(9)를 06-22 고점부터 07-31 반등 초입까지 겹쳐 그렸다.

ALMA·SMA·EMA 반응 속도 비교

저점인 07-29에서 세 선의 값은 ALMA 318,853원, SMA 332,556원, EMA 332,378원이었다. 종가 285,500원과의 거리는 ALMA가 33,353원으로 가장 가까웠고 SMA와 EMA는 47,000원 넘게 떨어져 있었다. 하락 구간에서는 ALMA가 셋 중 가장 빠르게 붙었다는 뜻이다. 그런데 하루 뒤 07-31, 종가가 351,500원으로 하루 만에 20% 넘게 뛰어오르자 상황이 뒤집혔다. ALMA는 309,203원까지만 따라와 42,297원 차이로 벌어졌고, SMA와 EMA는 오히려 21,000원 안팎으로 더 가까웠다. 앞서 가중치 표에서 봤듯 offset 0.85의 정점이 당일(i=8)이 아니라 하루 전(i=7)에 있기 때문에, 단 하루짜리 급반등에는 EMA보다 덜 즉각적으로 반응한다. 내려갈 때 빠르던 지표가 급하게 되돌아설 때는 오히려 느려졌다.

이 결과를 놓고 보면 ALMA 교차를 봇 게이트에 단독으로 넣기는 어렵다. 방향성이 뚜렷한 급락 구간에서도 적중률이 37.5%였고, 박스권에서는 신호가 이틀 간격으로 뒤집혔다. offset을 낮춰 신호를 줄이는 시도도 적중률을 오히려 깎았다. ALMA 자체는 하락 추세를 따라가는 속도가 SMA·EMA보다 빠르다는 장점이 이번 구간에서 확인됐으니, 교차 신호보다는 기울기(상승·하강 방향)를 다른 필터와 묶어 쓰는 편이 나아 보인다. 단독 매매 신호로는 이번 데이터에서 근거를 찾지 못했다.

남기는 것

이번 구간에서 눈에 띄는 건 지표의 정확도가 아니라 정직함이다. ALMA는 45% 급락을 SMA·EMA보다 빠르게 따라갔지만, 정작 방향이 바뀌는 순간에는 가중치 구조 때문에 하루씩 늦었다. 빠른 것과 정확한 것은 다른 문제였다.

박스권에서 이틀마다 신호가 뒤집힌 08-0408-11 구간을 다시 보면, 지표의 결함이라기보다 질문 자체가 잘못됐다는 신호로 읽힌다. 방향이 없는 시장에 방향을 묻는 지표를 들이대면 답은 계속 바뀐다. 다음에 확인할 것은 ALMA 값보다 기울기 쪽이다. 기울기가 며칠 연속 같은 부호를 유지한다는 조건을 하나 더 걸면 08-0408-11 구간의 신호가 걸러지는지 궁금하다. 이번 회차에서는 거기까지 확인하지 못했다.

투자 조언이 아니다. 이 글의 수치는 모두 사후 계산이며, 미래 수익을 보장하지 않는다.

약어 풀이

  • 이 글에 나온 영어 약어를 풀어 둔다.
  • ALMA (Arnaud Legoux Moving Average): 가우시안 가중치로 최근 봉에 무게를 더 실은 이동평균. 지연을 줄이면서 잡음을 거르도록 설계됐다.
  • SMA (Simple Moving Average): 단순 이동평균. 최근 N개 종가를 동일한 가중치로 평균한다.
  • EMA (Exponential Moving Average): 지수 이동평균. 가장 최근 값에 지수적으로 더 큰 가중치를 준다.