1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 배우는 금융 분야 Machine Learning

Connected

연습 문제

포트폴리오 계산하기

이제 각 달마다 가장 좋은 포트폴리오를 찾기 위해 포트폴리오를 생성해 볼게요. numpy의 random.random()은 균등분포에서 난수를 생성하고, 그런 다음 이 값들이 합쳐서 1이 되도록 /= 연산자로 정규화해요. 이렇게 만든 가중치를 사용해 수익률과 변동성을 계산합니다. 수익률은 가중치와 개별 수익률의 곱을 합한 값이에요. 변동성은 더 복잡하며, 서로 다른 주식 간 공분산이 포함돼요.

마지막으로, 이후에 사용할 수 있도록 월별 날짜를 키로 하여 값을 딕셔너리에 저장합니다.

이번 예제에서는 코드 실행 속도를 높이기 위해 각 날짜마다 포트폴리오를 10개만 생성하지만, 실제 환경에서는 소수의 종목에 대해 임의로 생성한 포트폴리오를 보통 1000개에서 5000개 정도 사용하시는 게 좋아요.

지침

100 XP
  • np.random.random()을 사용해 가중치에 사용할 임의의 숫자 3개를 생성하세요.
  • 반복문에서 현재 date의 월별 수익률과 weights의 내적(np.dot(); 두 배열의 원소별 곱을 합함)을 취해 returns를 계산하세요.
  • .setdefault() 메서드를 사용해 현재 date에 해당하는 portfolio_weights 딕셔너리에 빈 리스트([])를 추가한 뒤, 그 리스트에 weights를 이어 붙이세요.