시작하기무료로 시작하기

제약과 목표 정교화하기

여기서는 제약 조건과/또는 목표를 정교화하면 성과가 개선될 것이라고 가정해 보겠습니다. 각 자산의 리스크 기여도의 최소·최대 비율을 설정하는 리스크 예산 목표를 추가해 보세요. 앞서 생성한 포트폴리오 사양을 기반으로 계속 진행합니다. 이는 더 복잡한 최적화 문제이므로 전역 해 탐색이 필요하며, 최적화 방법으로 랜덤 포트폴리오를 사용하겠습니다.

이 연습은 강의의 일부입니다

R로 배우는 중급 포트폴리오 분석

강의 보기

연습 안내

  • 표준편차로 리스크를 정의하는 리스크 예산 목표 risk_budgetport_spec에 추가하세요. 리스크의 최소 비율은 5%, 최대 비율은 10%로 설정하세요.
  • 분기 리밸런싱으로 최적화를 실행하세요. 학습 구간과 롤링 윈도우는 5년치 데이터로 설정하세요. 결과를 opt_rebal_rb라는 변수에 할당하세요.
  • 가중치 차트를 그리세요.
  • 리스크에 대한 구성요소 비율 기여도를 차트로 그리세요.
  • Return.portfolio()를 사용해 포트폴리오 수익률을 계산하세요. 수익률은 returns_rb라는 변수에 할당하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.


# Add a risk budge objective
port_spec <- add.objective(portfolio = ___, 
                           type = ___, 
                           name = ___, 
                           min_prisk = ___, 
                           max_prisk = ___)

# Run the optimization
opt_rebal_rb <- optimize.portfolio.rebalancing(R = ___, 
                                               portfolio = ___, 
                                               optimize_method = "random", rp = rp,
                                               trace = TRUE,
                                               rebalance_on = ___, 
                                               training_period = ___,
                                               rolling_window = ___)

# Chart the weights


# Chart the percentage contribution to risk
chart.RiskBudget(___, match.col = "StdDev", risk.type = ___)

# Compute the portfolio returns
returns_rb <- Return.portfolio(R = ___, weights = ___)
colnames(returns_rb) <- "risk_budget"
코드 편집 및 실행