-
Return and Variance 7
-
Lecture1.1
-
Lecture1.2
-
Lecture1.3
-
Lecture1.4
-
Lecture1.5
-
Lecture1.6
-
Lecture1.7
-
-
Solving Equations 5
-
Lecture2.1
-
Lecture2.2
-
Lecture2.3
-
Lecture2.4
-
Lecture2.5
-
-
Capital Allocation Line 6
-
Lecture3.1
-
Lecture3.2
-
Lecture3.3
-
Lecture3.4
-
Lecture3.5
-
Lecture3.6
-
-
Diversification 3
-
Lecture4.1
-
Lecture4.2
-
Lecture4.3
-
-
Investment Sets 3
-
Lecture5.1
-
Lecture5.2
-
Lecture5.3
-
-
Portfolios 7
-
Lecture6.1
-
Lecture6.2
-
Lecture6.3
-
Lecture6.4
-
Lecture6.5
-
Lecture6.6
-
Lecture6.7
-
-
Capital and Security Market Lines 3
-
Lecture7.1
-
Lecture7.2
-
Lecture7.3
-
-
Arbitrage 3
-
Lecture8.1
-
Lecture8.2
-
Lecture8.3
-
-
Dividend Discount Model 2
-
Lecture9.1
-
Lecture9.2
-
-
Fixed Income 4
-
Lecture10.1
-
Lecture10.2
-
Lecture10.3
-
Lecture10.4
-
-
Duration and Immunization 4
-
Lecture11.1
-
Lecture11.2
-
Lecture11.3
-
Lecture11.4
-
Sympy
The first step is installing sympy.
!pip install sympy
When we work with sympy, we create symbols to represent a variable. Let’s create a variable p1 to represent the percentage in asset 1.
import sympy
p1 = sympy.Symbol("p1")
print(p1)
Let’s expand our variables to have a two assets, two returns, and also a symbol for the total return.
p1 = sympy.Symbol("p1")
p2 = sympy.Symbol("p2")
totalReturn = sympy.Symbol("totalReturn")
ret1 = .03
ret2 = .09
At the core of sympy is equations. sympy.Eq() sets up an equation, and we can give it a left side and a right side (or just one side if we would like), so let’s set up the portfolio return equation.
retEquation = sympy.Eq(totalReturn,p1*ret1+p2*ret2)
The attributes lhs and rhs give the left and ride hand side of the equation.
print(retEquation)
print(retEquation.rhs)
print(retEquation.lhs)
You can plug into variables by doing .subs(variable_name,value), for example:
print(retEquation.subs(p1,.5))
You can also replace multiple values by feeding an array of tuples for replacements.
print(retEquation.subs([(p1,.5),(p2,.5)]))
Challenge