NOONOO TRADING봇에서 시작하기

로그 수익률 vs 단순 수익률 — +10% 다음 −10%가 왜 본전이 아닌지, 언제 어느 쪽을 써야 하나

수익률을 계산하는 방법은 두 가지입니다. 흔히 쓰는 단순 수익률은 (현재가 − 이전가) ÷ 이전가이고, 로그 수익률은 ln(현재가 ÷ 이전가)입니다. 움직임이 작으면 두 값은 거의 같지만, 코인처럼 하루에 10%·20%씩 움직이는 자산에서는 차이가 커집니다. 백테스트·변동성 계산·평균 수익률을 다룰 때 이 둘을 섞으면 숫자가 조용히 틀어집니다. 이 글은 두 수익률의 차이와 각각을 써야 하는 자리를 가정 숫자로 정리합니다. 수익률 자체의 기본 계산은 수익률·손익 계산법에 있습니다.

두 공식

가격이 P₀ 에서 P₁ 으로 움직였다고 하겠습니다.

공식

단순 수익률 R = P₁ ÷ P₀ − 1
로그 수익률 r = ln(P₁ ÷ P₀) = ln(1 + R)

서로 바꾸기 : r = ln(1 + R) · R = er − 1

예시 — 100 → 110 (가정)
단순 = 110 ÷ 100 − 1 = +10.00%
로그 = ln(1.10) = +9.53%

로그 수익률은 오를 때는 단순 수익률보다 작게, 내릴 때는 더 크게(더 음수로) 나옵니다. 두 값은 같은 가격 변화를 다른 자로 잰 것일 뿐이고, 어느 쪽이 "진짜" 수익률인 것은 아닙니다. 중요한 것은 계산하려는 내용에 맞는 자를 고르는 것입니다.

변화 폭이 클수록 차이가 벌어진다

예시 — 같은 변화를 두 방식으로 (가정)

단순 +1% → 로그 +0.995% · 단순 −1% → 로그 −1.005%
단순 +10% → 로그 +9.53% · 단순 −10% → 로그 −10.54%
단순 +50% → 로그 +40.55% · 단순 −50% → 로그 −69.31%
단순 −100% → 로그 −∞ (원금 전부 소멸)

±1% 정도에서는 차이가 0.01%p 수준이라 무시해도 됩니다. 주식의 일간 수익률을 다룰 때 두 방식을 섞어 써도 큰 문제가 안 생기는 이유입니다. 하지만 코인 알트의 하루 ±20%, 선물의 레버리지 손익처럼 큰 움직임에서는 차이가 수 %p 로 커집니다. 특히 아래쪽이 비대칭입니다. 단순 수익률은 −100% 에서 멈추지만 로그 수익률은 한없이 내려갑니다. 원금이 0 이 되면 그 뒤로 어떤 수익도 회복을 못 시킨다는 사실이 로그 쪽에는 그대로 드러납니다. 레버리지 포지션이 강제 종료되는 구조는 청산 글을 참고하세요.

+10% 다음 −10% 는 본전이 아니다

두 수익률의 차이가 가장 잘 보이는 것은 "갔다가 돌아오는" 경우입니다.

예시 — 100 → 110 → 100 (가정)

1구간 단순 = +10.00% · 2구간 단순 = 100 ÷ 110 − 1 = −9.09%
단순 수익률을 더하면 = +10.00 − 9.09 = +0.91% (실제는 0%)

1구간 로그 = ln(1.1) = +9.53% · 2구간 로그 = ln(100 ÷ 110) = −9.53%
로그 수익률을 더하면 = 0.00% (실제와 일치)

가격은 제자리로 돌아왔는데 단순 수익률을 더하면 +0.91% 를 번 것처럼 나옵니다. 반대로 +10% 와 −10% 를 차례로 맞으면 1.1 × 0.9 = 0.99 로 −1% 가 됩니다. 이 차이가 쌓여 변동성이 큰 자산일수록 장기 수익이 깎이는 현상을 변동성 드래그라고 부릅니다.

기간을 이어 붙일 때는 로그가 맞다

로그 수익률의 가장 큰 장점은 시간 방향으로 더하기가 된다는 것입니다. 하루하루의 로그 수익률을 더하면 전체 기간의 로그 수익률이 됩니다. 단순 수익률은 더하면 틀리고 (1 + R) 를 전부 곱해야 합니다.

예시 — 3일 연속 (가정)

1일 +5% · 2일 −3% · 3일 +2%

단순 수익률 합 = 5 − 3 + 2 = +4.00% (틀림)
단순 수익률 곱 = 1.05 × 0.97 × 1.02 − 1 = +3.89% (정답)

로그 = 0.04879 − 0.03046 + 0.01980 = 0.03813
되돌리기 = e0.03813 − 1 = +3.89% (정답과 일치)

3일짜리 예시에서는 0.11%p 차이지만, 1분봉 수천 개를 이어 붙이는 백테스트에서는 이 오차가 누적됩니다. 그래서 퀀트 코드에서는 봉 단위 수익률을 로그로 바꿔 누적합(cumsum)을 구하고, 마지막에 ex − 1 로 되돌리는 방식을 많이 씁니다. 곱셈을 덧셈으로 바꾸면 계산이 빨라지고 아주 작은 값이 여러 번 곱해지며 생기는 수치 오차도 줄어듭니다. 복리가 쌓이는 원리는 복리 수익률 글에 정리돼 있습니다.

여러 종목을 합칠 때는 단순이 맞다

반대로 같은 시점의 여러 종목을 비중대로 합칠 때는 단순 수익률이 맞습니다. 포트폴리오 가치는 각 종목 가치의 합이기 때문입니다. 로그 수익률은 비중을 곱해 더하면 틀립니다.

예시 — 50 : 50 포트폴리오 (가정)

A 코인 +20% · B 코인 −10%

단순 가중합 = 0.5 × 20 + 0.5 × (−10) = +5.00% (정답 — 1,000 이 1,050 이 됨)

로그 가중합 = 0.5 × 0.18232 + 0.5 × (−0.10536) = 0.03848
되돌리기 = e0.03848 − 1 = +3.92% (틀림)
정답의 로그 = ln(1.05) = 0.04879

정리하면 시간으로 이어 붙일 때는 로그, 종목끼리 합칠 때는 단순입니다. 포트폴리오의 기간 수익률이 필요하면 매 시점 단순 수익률로 포트폴리오 수익률을 먼저 구하고, 그것을 로그로 바꿔 기간 합산을 합니다. 여러 봇이나 종목의 성과를 묶을 때 비중을 어떻게 두느냐에 따라 숫자가 달라지는 문제는 균등 평균 vs 자본 가중 수익률에서 다뤘습니다.

평균 수익률의 함정

"평균 수익률" 도 어떤 수익률로 평균을 냈는지에 따라 정반대 결론이 나올 수 있습니다.

예시 — 2기간, +50% 와 −40% (가정)

단순 수익률 산술평균 = (50 − 40) ÷ 2 = +5%
실제 결과 = 1.5 × 0.6 = 0.90 → 2기간 동안 −10%

로그 평균 = (0.40547 − 0.51083) ÷ 2 = −0.05268
기간당 실제 = e−0.05268 − 1 = −5.13% (0.9487² = 0.90 으로 일치)

산술평균 +5% 만 보면 "평균적으로 버는 전략" 처럼 보이지만 계좌는 줄었습니다. 로그 수익률의 평균은 기하평균과 같은 정보를 담고 있어서 "실제로 계좌가 한 기간에 평균 몇 % 씩 변했나" 를 알려 줍니다. 변동이 큰 전략을 평가할 때 단순 수익률의 산술평균만 보고 판단하면 안 되는 이유입니다. 같은 평균이라도 수익이 오는 순서에 따라 결과가 달라지는 문제는 수익률 순서 위험을 참고하세요.

변동성 계산은 로그로

변동성은 보통 로그 수익률의 표준편차로 계산합니다. 로그 수익률은 기간끼리 더해지므로, 서로 독립이라고 가정하면 분산도 기간 수에 비례해 더해집니다. 그래서 짧은 기간 변동성에 기간 수의 제곱근을 곱해 긴 기간으로 바꿀 수 있습니다.

예시 — 일 변동성을 연 변동성으로 (가정)

일간 로그 수익률 표준편차 = 3%
코인 시장은 365일 열려 있으므로 √365 ≈ 19.10
연 변동성 ≈ 3% × 19.10 ≈ 57.3%

(주식은 거래일 약 252일 → √252 ≈ 15.87 을 곱한다)

이 환산은 수익률끼리 서로 독립이라는 가정 위에 서 있습니다. 실제 코인 수익률은 큰 움직임이 몰려 오는 경향이 있고(변동성 군집), 꼬리가 정규분포보다 두껍습니다(두꺼운 꼬리). 그래서 √ 환산은 대략적인 크기를 잡는 용도이고, 연 57% 라는 숫자가 "1년 안에 ±57% 를 넘지 않는다" 는 뜻은 아닙니다. 수익률끼리의 상관은 수익률 자기상관 글에 따로 있습니다.

어느 쪽을 쓸지 한 장 정리

로그 수익률을 쓰는 자리
· 봉 단위 수익률을 이어 붙여 기간 수익률 계산
· 변동성(표준편차), 샤프 비율 같은 통계
· 평균 성장률(기하평균) 계산
· 상승·하락을 대칭으로 비교할 때

단순 수익률을 쓰는 자리
· 여러 종목·여러 계좌를 비중대로 합칠 때
· 실제 손익 금액, 계좌 % 보고
· 레버리지·증거금 대비 손익 계산
· 사람에게 보여 주는 숫자(+10% 는 +10% 로)

보고서에서는 단순 수익률로 보여 주고, 계산 내부에서는 로그로 처리하는 경우가 많습니다. 어느 쪽을 쓰든 같은 표 안에서 섞지 않는 것이 핵심입니다. 한 열은 단순, 다른 열은 로그로 계산해 나란히 놓으면 두 숫자가 같은 기준이라고 착각하게 됩니다. 백테스트 데이터에서 생기는 다른 오류들은 백테스트 데이터 품질에서 확인할 수 있습니다.

자주 하는 실수

  1. 일간 단순 수익률을 더해 월 수익률을 낸다. 변동이 큰 달일수록 실제보다 높게 나온다. 곱하거나 로그로 더해야 한다.
  2. 로그 수익률에 비중을 곱해 포트폴리오 수익률을 낸다. 종목을 합칠 때는 단순 수익률이 맞다.
  3. 단순 수익률 산술평균으로 전략을 평가한다. +50%·−40% 의 평균 +5% 처럼 계좌가 줄어도 플러스로 보일 수 있다.
  4. 로그 수익률을 그대로 손익 % 로 보고한다. 로그 +9.53% 는 실제 +10% 다. 사람에게 보여 줄 때는 er − 1 로 되돌린다.
  5. √ 환산 변동성을 최대 손실 범위로 믿는다. 독립·정규 가정이라 코인처럼 꼬리가 두꺼운 자산에서는 극단 움직임을 과소평가한다.

정리

① 단순 R = P₁ ÷ P₀ − 1 · 로그 r = ln(P₁ ÷ P₀) · 서로 변환 r = ln(1 + R)
② ±1% 에서는 거의 같고 ±10% 이상에서 차이가 커진다
③ 100 → 110 → 100 : 단순 합 +0.91% (틀림) · 로그 합 0% (정답)
④ 시간으로 이어 붙일 때는 로그를 더하고, 종목끼리 합칠 때는 단순을 가중합한다
⑤ +50%·−40% : 산술평균 +5% 지만 실제 −10%, 로그 평균은 기간당 −5.13%
⑥ 일 변동성 3% × √365 ≈ 연 57.3% (독립 가정의 대략값)

한 줄로 줄이면 이렇습니다. 로그 수익률은 "시간" 을 다루는 자이고 단순 수익률은 "돈" 을 다루는 자다. 같은 표 안에서 두 자를 섞지 않으면 대부분의 계산 실수는 막을 수 있다.

주의

본문의 가격, 수익률, 포트폴리오 비중, 변동성 등 모든 숫자는 개념을 설명하기 위한 가정 예시이며 특정 종목·기간의 실제 측정값이 아닙니다. 계산에는 수수료·슬리피지·펀딩비를 넣지 않았습니다. 이 글은 교육 정보이며 특정 종목·전략의 매수·매도 권유나 특정 수익을 보장하는 내용이 아닙니다. 레버리지 거래는 원금 손실 위험이 있고, 매매 판단과 그 결과는 본인 책임입니다.

NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.

봇에서 시작하기

📈 OKX 신규 가입 시 거래 수수료 할인

OKX 수수료 할인 가입 →