다음 내용은 한빛미디어 <퀀트 전략을 위한 인공지능 트레이딩>을 공부하며 요약한 내용입니다.
연평균 복리 수익률 (CAGR)
수익률 성과를 분석할 때 산술평균보다 기하평균 수익률이 선호되는 이유
: 복리 성질과 주기 변동이 심한 때에 따라서 변동성이 표현되기 때문
CAGR(t0,tn)=V(t0)V(tn)tn−t01−1
V(tn):초기값
V(t0):최종값
tn−t0:연 횟수
<파이썬 코드>
CAGR = price_df.loc['2021-07-23','st_rtn'] ** (252./len(price_df.index))-1
- 2021년 7월 23일의 최종 누적 수익률의 누적 연도 제곱근을 구하는 것.
- 일 데이터를 사용했으므로 전체 연도를 구하기 위해 전체 데이터 기간을 252로 나눈 역수를 제곱 연산한다.
- 금융 공학에서 1년은 252영업일로 계산
- 그리고 -1을 하면 수익률이 나온다.
최대 낙폭 (MDD)
: 투자 기간에 고점부터 저점까지 떨어지는 낙폭 중 최대값을 의미함.
- 투자자가 겪을 수 있는 고통을 측정하는 지표. 낮을수록 좋음.
최대낙폭=Peak ValueTrough Value−Peak Value
Peak Value : 관측 기간 최고점 가격
Trough Value : 관측 기간 최저점 가격
- cummax()는 누적 최댓값을 반환
- 최댓값이 아닌 행별 차례로 진행하면서 누적 값을 갱신한다.
- 현재 수정 종가에서 누적 최댓값 대비 낙폭률을 계산하고 cummin() 함수를 사용해 최대 하락률을 계산
변동성 (Vol)
: 주가 변화 수익률 관점의 변동률.
- 변동성은 금융 자산의 방향성에 대한 불확실성과 가격 등락에 대한 위험 예상 지표로 해석.
- 수익률의 표준 편차를 변동성으로 계산함
σp=σ일P
VOL = np.std(price_df['daily_rtn']) * np.sqrt(252.)
- 변동성은 수익률의 표준편차로 계산함
- 일 단위 변동성을 의미함
- 루이바슐리에 투기이론에 따라 주가의 변동폭은 시간의 제곱근에 비례한다는 연구 결과에 따라 일 단위 변동성을 연율화할때 252의 제곱근을 곱함
샤프 지수
위험 대비 수익성 지표
Sa=σaE[Ra−Rb]=var[Ra−Rb]E[Ra−Rb]
- Ra는 자산 쉭률이고 Rb는 무위험 수익률이나 기준 지표 자산 수익률이다.
- 사후적 샤프 비율 ex-post Sharpe ratio 은 자산의 실현 수익률을 사용한다.
- 실현 수익률은 산술평균/실현 수익률의 변동성으로 계산한다.
Sharpe = np.mean(price_df['daily_rtn']) / np.std(price_df['daily_rtn']) * np.sqrt(252.)
안녕하세요. 혹시 작성하신 글에 대해서 책 저자들에게 저작권 허가를 받으셨었나요?