[알고리즘 트레이딩] 연 환산 수익률(Annualized Return) 계산 방법 3가지

 

📈 연 환산 수익률(Annualized Return) 계산 방법 3가지

주식이나 자산의 장기 수익률을 비교할 때 자주 사용하는 개념이 **연 환산 수익률(Annualized Return)**입니다. 일간 수익률을 연 기준으로 환산하는 방법에는 여러 가지가 있으며, 각각의 방식은 쓰임새와 정확도에서 차이가 있습니다.

이 글에서는 다음 3가지 방법을 실제 코드와 함께 소개합니다.


✅ 1. 데이터 준비

우선, yfinance를 사용해 주가 데이터를 다운로드합니다.

import yfinance as yf import pandas as pd import numpy as np stocks = ['AAPL', 'FE', 'WMT'] # 조정 종가(배당 및 분할 반영된 종가) 다운로드 stock_prices = yf.download(stocks, start='2000-01-03', end='2023-12-30', auto_adjust=False)['Adj Close']

📌 방법 1: 산술 평균 수익률 × 252

가장 간단한 방식은 평균 일간 수익률에 **1년 거래일 수(약 252일)**를 곱하는 방법입니다.

daily_returns = stock_prices.pct_change() arithmetic_annual_return = daily_returns.mean() * 252 print("산술 연 수익률:") print(arithmetic_annual_return)

장점: 빠르고 간단함
단점: 변동성(복리 효과)을 반영하지 않음


📌 방법 2: CAGR (기하 평균 수익률)

**CAGR (Compound Annual Growth Rate)**는 시작 가격과 마지막 가격만으로 복리 수익률을 계산하는 방식입니다.

n_years = (stock_prices.index[-1] - stock_prices.index[0]).days / 365.25 start_prices = stock_prices.iloc[0] end_prices = stock_prices.iloc[-1] cagr = (end_prices / start_prices) ** (1 / n_years) - 1 print("CAGR (기하 평균 수익률):") print(cagr)

장점: 복리 수익률 반영, 실제 투자 수익률에 가장 가까움
⚠️ 주의: 중간 데이터 없이 처음과 끝만 사용


📌 방법 3: 로그 수익률 평균

**로그 수익률(log return)**을 평균 내고 252를 곱하면, 복리 기준 연 수익률을 구할 수 있습니다. 통계적 분석에서도 많이 사용됩니다.

log_returns = np.log(stock_prices / stock_prices.shift(1)) log_annual_return = log_returns.mean() * 252 print("로그 수익률 기반 연 수익률:") print(log_annual_return)

장점: 수학적 정밀함, 복리 수익률과 유사
추가 활용: 리스크 계산, 분산 분석 등


📊 세 가지 방식 비교

방식복리 반영계산 기준특징
산술 평균 × 252일간 수익률 평균간단하지만 정확도 낮음
CAGR시작/종료 가격가장 정확한 연 복리 수익률
로그 수익률 평균 × 252로그 수익률 평균통계 분석에 적합

✅ 결론

  • 빠르고 간단한 비교엔 산술 평균이 편리합니다.

  • 실제 투자 성과나 백테스트에선 CAGR 또는 로그 수익률을 권장합니다.

댓글

이 블로그의 인기 게시물

공압 속도 제어: 미터인 vs 미터아웃

[주식] 한국거래소(KRX) 데이터 API 입문 가이드

[PLC] PLC 아날로그 입출력 기본

제너 다이오드에 저항을 연결하는 이유

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

[PLC] 절연 변압기 (Isolation Transformer)

[농사] 식물의 광합성과 호흡

[PLC] 래더 다이어그램과 PLC

[투자] 미국 ETF 직접 투자 vs 국내 미국지수 ETF