수익률 자기상관 — 방금 오른 코인이 계속 오를 확률을 숫자로 재는 법
차트를 보다 보면 오르던 것은 계속 오르고 내리던 것은 계속 내린다는 인상을 받게 됩니다. 이 인상이 맞는지 틀린지는 눈으로 판단할 필요가 없습니다. 직전 수익률과 다음 수익률이 얼마나 이어지는지를 상관계수 하나로 재는 방법이 있고, 그 숫자를 자기상관이라고 부릅니다.
자기상관은 "직전 움직임이 다음 움직임을 알려주는 정도"다
자기상관(autocorrelation)은 같은 데이터를 시간만 밀어서 자기 자신과 비교한 상관계수입니다. 캔들 수익률로 계산한다면, 오늘 봉의 수익률과 바로 앞 봉의 수익률을 짝지어 상관계수를 구하는 것입니다. 한 칸 밀어서 계산한 값을 시차 1(lag 1) 자기상관이라 하고 보통 기호 ρ1로 씁니다.
ρ1 > 0 추세
· 오른 뒤에 또 오르는 경향
· 추종 전략이 유리한 구조
ρ1 < 0 되돌림
· 오른 뒤에 되밀리는 경향
· 역추세 전략이 유리한 구조
ρ1 ≈ 0 기억 없음
· 직전 움직임이 다음을 알려주지 않는다
· 방향만 보는 전략은 근거가 없다
─────────────
중요한 건 부호가 아니라
0에서 얼마나 떨어져 있는가
계산 자체는 단순합니다. 수익률 수열을 하나 만들고, 그것을 한 칸 밀어 복사한 뒤, 두 수열의 상관계수를 구하면 끝입니다. 표계산 프로그램에서도 함수 하나로 나옵니다. 어려운 부분은 계산이 아니라 나온 숫자를 어떻게 읽느냐입니다. 대부분의 오해가 이 지점에서 생깁니다.
표본이 작으면 0.2쯤은 그냥 나온다
자기상관을 처음 계산해 보면 대개 0이 아닌 값이 나옵니다. 0.13이나 −0.09 같은 숫자를 보면 뭔가 발견한 것 같지만, 그 정도는 완전히 무작위인 데이터에서도 흔히 나오는 크기입니다. 표본 개수에 따라 잡음이 얼마나 흔들리는지가 미리 계산되기 때문입니다.
봉 100개
표준오차 1 ÷ √100 = 0.100
잡음 범위(2배) ±0.200
봉 1,000개
표준오차 1 ÷ √1000 = 0.032
잡음 범위(2배) ±0.063
봉 10,000개
표준오차 1 ÷ √10000 = 0.010
잡음 범위(2배) ±0.020
─────────────
1시간봉 1,000개에서 ρ1 = −0.05 를 얻었다면
±0.063 안쪽이므로
0과 구분되지 않는다
즉 같은 −0.05라도 봉 100개에서 나왔으면 아무 의미가 없고, 봉 10,000개에서 나왔으면 진짜 되돌림 성향일 가능성이 생깁니다. 숫자만 보고 판단하면 안 되고 몇 개로 쟀는지를 항상 같이 봐야 합니다. 승률에도 똑같은 문제가 있고, 몇 거래부터 믿을 수 있는지는 거래 표본 크기에 계산해 뒀습니다.
자기상관이 진짜여도 수수료를 못 넘으면 소용없다
여기가 실전에서 가장 중요한 부분입니다. 통계적으로 0이 아닌 자기상관을 찾았다고 해도, 그것이 돈이 되는 크기인지는 완전히 별개의 질문입니다. 자기상관은 다음 봉의 기대 이동으로 바로 환산됩니다.
조건
1시간봉 수익률 표준편차 0.4%
측정된 자기상관 ρ1 = 0.05
직전 봉이 평소보다 큰 +0.4% 상승
다음 봉의 기대 이동
0.05 × 0.4% = +0.02%
왕복 거래 비용 (테이커 기준)
−0.10%
순 기대값
+0.02% − 0.10% = −0.08%
─────────────
통계적으로 있는 자기상관인데
거래하면 매번 손해
비용을 넘으려면 자기상관이 얼마나 커야 하는지 역산해 보면 감이 잡힙니다. ρ1 × 0.4% > 0.10%을 풀면 ρ1 > 0.25가 나옵니다. 유동성이 있는 주요 코인의 분봉·시간봉에서 0.25짜리 자기상관은 사실상 관측되지 않습니다. 있었다면 이미 누군가 거래해서 없앴을 것이기 때문입니다. 이 비용 0.10%가 어디서 나오는 숫자인지는 왕복 거래 비용에, 거래를 자주 할수록 이 비용이 어떻게 누적되는지는 거래 빈도와 수수료 마찰에 정리돼 있습니다.
가짜 음의 자기상관 — 호가 튐
짧은 시간프레임에서 자기상관을 재면 거의 항상 약한 음수가 나옵니다. 그런데 이것은 시장이 되돌린다는 뜻이 아니라, 체결가가 매수 호가와 매도 호가를 번갈아 찍기 때문에 생기는 기록상의 착시인 경우가 많습니다.
매도 호가 100.02 / 매수 호가 100.00
체결 기록
100.02 → 100.00 → 100.02 → 100.00 …
이때 계산되는 수익률
−0.02% → +0.02% → −0.02% …
→ 부호가 계속 번갈아 나온다
→ 자기상관이 인위적으로 음수가 된다
그러나 실제 시장가치는
한 발짝도 움직이지 않았다
─────────────
이 음수를 되돌림 신호로 읽고
역추세 진입을 하면
스프레드를 매번 지불하게 된다
그래서 초 단위나 틱 단위 데이터에서 나온 음의 자기상관은 그대로 믿으면 안 됩니다. 확인 방법은 간단합니다. 중간가격(매수·매도 호가의 평균)으로 다시 계산해 보는 것입니다. 중간가격에서 음수가 사라지면 그것은 시장 성질이 아니라 체결 기록의 성질이었던 셈입니다. 호가창 자체를 읽는 법은 호가창 보는 법에 있습니다.
시간프레임과 국면에 따라 부호가 뒤집힌다
자기상관은 시장 전체에 붙어 있는 고정된 성질이 아닙니다. 같은 종목이라도 어떤 간격으로 재느냐와 어떤 구간을 재느냐에 따라 값이 바뀌고, 부호까지 바뀝니다.
1분봉 ρ1 = −0.04 → 대부분 호가 튐
1시간봉 ρ1 = +0.02 → 잡음 범위 안
1일봉 ρ1 = +0.06 → 표본 부족(n=400이면 ±0.10)
구간을 나눠서 다시 재면
추세 구간 ρ1 = +0.11
횡보 구간 ρ1 = −0.08
전체 합산 ρ1 = +0.01
─────────────
서로 반대인 두 구간을 합치면
둘 다 0으로 상쇄돼 보인다
전체 기간의 자기상관이 0이라는 결과는 "아무 성질도 없다"는 뜻일 수도 있지만, 위 예시처럼 반대 성질의 구간이 서로를 지운 결과일 수도 있습니다. 그래서 국면을 나눠서 따로 재는 편이 정보가 더 많습니다. 국면을 어떻게 구분하는지는 시장 국면에, 추세의 세기를 지표로 재는 방법은 ADX에 있습니다. 되돌림 쪽 전략의 전제는 평균회귀에 정리돼 있습니다.
측정 절차 — 순서를 지켜야 결론이 남는다
자기상관 측정은 코드 몇 줄이면 되지만, 순서를 지키지 않으면 나온 숫자를 쓸 수 없게 됩니다.
① 시간프레임과 기간을 먼저 고정한다
· 값을 보고 나서 프레임을 바꾸지 않는다
② 표본 개수 n과 잡음 범위를 같이 적는다
· 1 ÷ √n 의 2배가 기준선
③ 종가가 아니라 중간가격으로도 재본다
· 짧은 프레임의 음수는 대부분 호가 튐
④ 비용으로 환산한다
· ρ1 × 수익률 표준편차 > 왕복 비용 인가
· 못 넘으면 통계적 유의성은 의미가 없다
⑤ 국면을 나눠 따로 잰다
⑥ 다른 기간에서 부호가 유지되는지 확인한다
─────────────
기록할 항목
· 시간프레임 · 기간 · 표본 개수 n
· ρ1 값과 잡음 범위
· 비용 환산 결과
· 시험해 본 프레임·구간의 개수
마지막 항목이 특히 중요합니다. 시간프레임 6종 × 코인 20종 × 구간 5개를 전부 재면 시도가 600번이 되고, 그중 잡음 범위를 넘는 값이 몇 개 나오는 것은 발견이 아니라 예정된 결과입니다. 이 문제는 다중검정의 함정에 계산으로 정리돼 있습니다. 계산 과정에 미래 정보가 섞이지 않았는지는 미래참조를, 찾은 성질을 전략으로 옮긴 뒤의 검증 절차는 워크포워드 분석과 백테스트 가이드를 참고하면 됩니다. 설정값을 데이터에 맞춰 깎는 문제는 과최적화에 따로 있습니다.
정리
② 양수 = 추세 · 음수 = 되돌림 · 0 = 기억 없음
③ 잡음 범위 ≈ (1 ÷ √n) × 2
④ 봉 100개면 ±0.200 · 1,000개면 ±0.063
⑤ 그 안에 들어오는 값은 0과 구분되지 않는다
⑥ 다음 봉 기대 이동 = ρ1 × 직전 수익률
⑦ ρ1 = 0.05 · 변동성 0.4% → 기대 +0.02%
⑧ 왕복 비용 0.10%를 못 넘어 −0.08%
⑨ 비용을 넘으려면 ρ1이 0.25 이상이어야 한다
⑩ 짧은 프레임의 음수는 대부분 호가 튐
⑪ 중간가격으로 재보면 사라진다
⑫ 국면을 합치면 반대 성질끼리 상쇄된다
한 줄로 줄이면 이렇습니다. 자기상관은 있느냐 없느냐가 아니라 비용보다 큰가로 판단합니다. 0이 아니라는 사실만으로는 거래 근거가 되지 않고, 표본 개수와 왕복 비용을 함께 적어야 비로소 읽을 수 있는 숫자가 됩니다.
주의
본문의 표준편차 0.4%, 자기상관 0.05와 0.25, 왕복 수수료 0.10%, 봉 100개·1,000개·10,000개, 1분봉 −0.04와 1시간봉 +0.02와 1일봉 +0.06, 추세 구간 +0.11과 횡보 구간 −0.08, 호가 100.00과 100.02, 시도 600번 같은 숫자는 모두 자기상관을 어떻게 읽는지 보여주기 위한 가정 예시이며 특정 종목이나 특정 계좌의 실제 측정값이 아닙니다. 잡음 범위 1 ÷ √n 은 데이터가 서로 독립일 때 성립하는 근사이고, 변동성이 뭉쳐 나타나는 실제 시장에서는 이보다 넓어질 수 있습니다. 자기상관은 선형 관계만 재기 때문에 값이 0이라도 비선형 관계는 남아 있을 수 있으며, 반대로 0이 아니라고 해서 그 성질이 앞으로도 유지된다는 보장은 없습니다. 과거 데이터에서 확인된 성질이 미래 수익으로 이어지지 않으며, 레버리지 거래는 원금 전액을 잃을 수 있습니다. 투자 판단과 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
봇에서 시작하기📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →