Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c1a5660

Browse files
Add files via upload
Exercise Solution file
1 parent b9b61ab commit c1a5660

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

‎Tutorials/Exercise Solution.py‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Import numpy
2+
import numpy as np
3+
4+
# store the variables in arrays
5+
prob = np.array([0.25, 0.5, 0.25])
6+
rate_1 = np.array([0.05, 0.075, 0.10])
7+
rate_2 = np.array([0.2, 0.15, 0.1])
8+
9+
# expected return of each investment
10+
expected_return1 = np.sum(prob * rate_1)
11+
expected_return2 = np.sum(prob * rate_2)
12+
13+
# expected return of the equally weighted portfolio
14+
weights = np.array([0.5, 0.5])
15+
individual_returns = np.array([expected_return1, expected_return2])
16+
portfolio_returns = np.dot(weights, individual_returns)
17+
18+
# covariance matrix given probabilities
19+
cov_matrix = np.cov(rate_1, rate_2, ddof=0, aweights=prob)
20+
21+
# variance and standard deviation of each investment
22+
var1 = cov_matrix[0,0]
23+
var2 = cov_matrix[1,1]
24+
std1 = np.sqrt(var1)
25+
std2 = np.sqrt(var2)
26+
27+
# correlation between Asset 1 & 2's returns
28+
cov = cov_matrix[0,1]
29+
corr = cov / (std1 * std2)
30+
31+
# variance of portfolio
32+
portfolio_var = np.dot(weights.T, np.dot(cov_matrix, weights))
33+
34+
# standard deviation (volatility of the portfolio)
35+
portfolio_vols = np.sqrt(portfolio_var)
36+
37+
def percentage (number):
38+
return str(round(number, 4) * 100) + '%'
39+
40+
print('Expected Return of Investment 1 = {}'.format(percentage(expected_return1)))
41+
print('Expected Return of Investment 2 = {}'.format(percentage(expected_return2)))
42+
print('Expected Return of Portfolio = {}'.format(percentage(portfolio_returns)))
43+
print('Standard Deviation of Investment 1 = {}'.format(percentage(std1)))
44+
print('Standard Deviation of Investment 1 = {}'.format(percentage(std2)))
45+
print('Correlation between Returns of 1 & 2 = {}'.format(round(corr, 4)))
46+
print('Risk of Portfilio = {}'.format(percentage(portfolio_vols)))

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /