더북(TheBook)
# 리스트 stock_b와 prob에서 각각 데이터를 변수 s와 p로 받아 반복한다
# 확률과 편차제곱을 곱해 var_b에 저장한다
for s, p in zip( stock_b, prob ):
    var_b = var_b + p*( s - ex_b )**2

참고

위 반복문은 다음과 같이 인라인 for 루프로 바꿔 사용할 수 있다.

var_b = sum( p*( s - ex_b )**2 for s, p in zip( stock_b, prob ) )
# 결과를 출력한다
print( '주식 A의 분산은 {:.2%}'.format( var_a ) )
print( '주식 B의 분산은 {:.2%}'.format( var_b ) )

# 포트폴리오의 분산을 계산한다
# 공분산, 분산, 표준편차를 계산한다
cov = sum( p* ( a-ex_a ) * ( b-ex_b ) for a, b, p in zip( stock_a, stock_b, prob ) )
var_p = wgt_a**2 * var_a + wgt_b**2 * var_b + 2 * wgt_a * wgt_b * cov
std_p = math.sqrt( var_p )
print(  '포트폴리오의 분산은 {:.2%}'.format( var_p ) )
print(  '포트폴리오의 표준편차는 {:.2%}'.format( std_p ) )
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.