현대 포트폴리오 이론

Python을 활용한 정량적 리스크 관리

Jamsheed Shorish

Computational Economist

위험-수익 상충관계

  • 위험요인: 수익에 영향을 주는 불확실성의 원천
  • 직관: 불확실성 증가(더 높은 위험)는 더 높은 수익으로 보상
  • 수익을 _보장_할 수 없음: 기대수익률 척도가 필요
    • 과거 평균 수익률: 미래 기대수익의 대용치
Python을 활용한 정량적 리스크 관리

투자자 위험 성향

  • 투자자 설문: 주어진 위험 수준에서 요구하는 _최소_ 수익률은?
  • 응답은 (위험, 수익) 프로필의 “데이터 포인트”를 생성
  • 위험 수준을 바꾸면 => (위험, 수익) 점들의 집합 형성
  • 투자자 위험 성향: 위험-수익 간의 정량적 관계를 정의
Python을 활용한 정량적 리스크 관리

포트폴리오 비중 선택

  • 주어진 포트폴리오의 자산 비중을 조정 => (위험, 수익) 쌍의 집합 생성
  • 비중 변경 = 리스크 관리의 시작!
  • 목표: 주어진 위험 수준에서 기대수익률 극대화
    • 동치: 주어진 기대수익에서 위험 최소화
  • 비중 변경 = 투자자 위험 노출 조정
Python을 활용한 정량적 리스크 관리

현대 포트폴리오 이론

  • 다양한 위험 수준에 대해 많은 효율적 포트폴리오 계산
  • 효율적 프론티어: 효율적 포트폴리오가 만드는 (위험, 수익) 궤적
  • PyPortfolioOpt 라이브러리: MPT 최적화 도구

    • EfficientFrontier 클래스: 한 번에 하나의 최적 포트폴리오 생성

    • Constrained Line Algorithm(CLA) 클래스: 전체 효율적 프론티어 생성

      • 수익률 공분산 행렬 필요
      • 기대수익의 대용치 필요: 과거 평균 수익률
Python을 활용한 정량적 리스크 관리

효율적 프론티어

  • 다양한 위험 수준별로 여러 효율적 포트폴리오 계산
  • 효율적 프론티어: 효율적 포트폴리오가 만드는 (위험, 수익) 궤적
  • PyPortfolioOpt 라이브러리: MPT 최적화 도구
    • EfficientFrontier 클래스: 최적 포트폴리오를 한 번에 하나씩 생성
    • Constrained Line Algorithm(CLA) 클래스: 전체 효율적 프론티어 생성
      • 수익률 공분산 행렬 필요
      • 미래 기대수익의 대용치: 과거 평균 수익률
Python을 활용한 정량적 리스크 관리

투자은행 포트폴리오 2005 - 2010

  • 기대수익률: 과거 데이터
  • 공분산 행렬: Covariance Shrinkage로 추정 효율 개선
  • Constrained Line Algorithm 객체 CLA
  • 최소분산 포트폴리오: cla.min_volatility()
  • 효율적 프론티어: cla.efficient_frontier()

 

expected_returns = mean_historical_return(prices)

efficient_cov = CovarianceShrinkage(prices).ledoit_wolf()
cla = CLA(expected_returns, efficient_cov)
minimum_variance = cla.min_volatility()
(ret, vol, weights) = cla.efficient_frontier()
Python을 활용한 정량적 리스크 관리

효율적 프론티어 시각화

  • (변동성, 수익) 쌍의 산점도

효율적 프론티어를 (위험, 수익) 쌍의 시리즈로 그린 그래프

Python을 활용한 정량적 리스크 관리

효율적 프론티어 시각화

  • (변동성, 수익) 쌍의 산점도
  • 최소분산 포트폴리오: 가능한 모든 효율적 포트폴리오 중 변동성이 최소

효율적 프론티어 그래프에서 강조된 최소분산 포트폴리오

Python을 활용한 정량적 리스크 관리

효율적 프론티어 시각화

  • (변동성, 수익) 쌍의 산점도
  • 최소분산 포트폴리오: 가능한 모든 효율적 포트폴리오 중 변동성이 최소
  • 위험 성향 증가: 프론티어를 _따라_ 이동

효율적 프론티어에서 더 높은 위험과 더 높은 보상 방향으로 이동하는 화살표

Python을 활용한 정량적 리스크 관리

Ayo berlatih!

Python을 활용한 정량적 리스크 관리

Preparing Video For Download...