├── README.md ├── 8 Arbitrage.ipynb ├── 2 Solving Equations.ipynb ├── 4 Diversification.ipynb ├── 10 Fixed Income.ipynb ├── 11 Duration and Immunization.ipynb └── 9 Dividend Discount Model.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # FinanceAndPython.com-Investments -------------------------------------------------------------------------------- /8 Arbitrage.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "140\n" 13 | ] 14 | } 15 | ], 16 | "source": [ 17 | "price = 40*2+15*4\n", 18 | "print(price)" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 2, 24 | "metadata": { 25 | "collapsed": true 26 | }, 27 | "outputs": [], 28 | "source": [ 29 | "cashFlows = [[50,0],[0,25]]\n", 30 | "assetFlows = [100,100]" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 3, 36 | "metadata": {}, 37 | "outputs": [ 38 | { 39 | "data": { 40 | "text/plain": [ 41 | "array([ 2., 4.])" 42 | ] 43 | }, 44 | "execution_count": 3, 45 | "metadata": {}, 46 | "output_type": "execute_result" 47 | } 48 | ], 49 | "source": [ 50 | "import numpy as np\n", 51 | "np.linalg.solve(cashFlows,assetFlows)" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 4, 57 | "metadata": {}, 58 | "outputs": [ 59 | { 60 | "name": "stdout", 61 | "output_type": "stream", 62 | "text": [ 63 | "[ 80. 60.]\n", 64 | "140.0\n" 65 | ] 66 | } 67 | ], 68 | "source": [ 69 | "allocations = np.linalg.solve(cashFlows,assetFlows)\n", 70 | "prices = [40,15]\n", 71 | "print(allocations*prices)\n", 72 | "print(sum(allocations*prices))" 73 | ] 74 | }, 75 | { 76 | "cell_type": "code", 77 | "execution_count": 5, 78 | "metadata": {}, 79 | "outputs": [ 80 | { 81 | "data": { 82 | "text/plain": [ 83 | "(array([ 2., 4.]), 140.0)" 84 | ] 85 | }, 86 | "execution_count": 5, 87 | "metadata": {}, 88 | "output_type": "execute_result" 89 | } 90 | ], 91 | "source": [ 92 | "def matchFlows(flowsAr,pricesAr,assetFlows):\n", 93 | " allocations = np.linalg.solve(flowsAr,assetFlows)\n", 94 | " price = allocations.dot(pricesAr)\n", 95 | " return allocations,price\n", 96 | "matchFlows([[50,0],[0,25]],[40,15],[100,100])" 97 | ] 98 | }, 99 | { 100 | "cell_type": "code", 101 | "execution_count": 6, 102 | "metadata": { 103 | "collapsed": true 104 | }, 105 | "outputs": [], 106 | "source": [ 107 | "def Arbitrage(flowsAr,pricesAr,assetFlows,assetPrice):\n", 108 | " allocations,priceFlows = matchFlows(flowsAr,pricesAr,assetFlows)\n", 109 | " if priceFlows=0.19 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from sympy)\r\n" 14 | ] 15 | } 16 | ], 17 | "source": [ 18 | "!pip install sympy" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 2, 24 | "metadata": {}, 25 | "outputs": [ 26 | { 27 | "name": "stdout", 28 | "output_type": "stream", 29 | "text": [ 30 | "p1\n" 31 | ] 32 | } 33 | ], 34 | "source": [ 35 | "import sympy\n", 36 | "p1 = sympy.Symbol(\"p1\")\n", 37 | "print(p1)" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 3, 43 | "metadata": { 44 | "collapsed": true 45 | }, 46 | "outputs": [], 47 | "source": [ 48 | "p1 = sympy.Symbol(\"p1\")\n", 49 | "p2 = sympy.Symbol(\"p2\")\n", 50 | "totalReturn = sympy.Symbol(\"totalReturn\")\n", 51 | "ret1 = .03\n", 52 | "ret2 = .09" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": 4, 58 | "metadata": { 59 | "collapsed": true 60 | }, 61 | "outputs": [], 62 | "source": [ 63 | "retEquation = sympy.Eq(totalReturn,p1*ret1+p2*ret2)" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 5, 69 | "metadata": {}, 70 | "outputs": [ 71 | { 72 | "name": "stdout", 73 | "output_type": "stream", 74 | "text": [ 75 | "Eq(totalReturn, 0.03*p1 + 0.09*p2)\n", 76 | "0.03*p1 + 0.09*p2\n", 77 | "totalReturn\n" 78 | ] 79 | } 80 | ], 81 | "source": [ 82 | "print(retEquation)\n", 83 | "print(retEquation.rhs)\n", 84 | "print(retEquation.lhs)" 85 | ] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "execution_count": 6, 90 | "metadata": {}, 91 | "outputs": [ 92 | { 93 | "name": "stdout", 94 | "output_type": "stream", 95 | "text": [ 96 | "Eq(totalReturn, 0.09*p2 + 0.015)\n" 97 | ] 98 | } 99 | ], 100 | "source": [ 101 | "print(retEquation.subs(p1,.5))" 102 | ] 103 | }, 104 | { 105 | "cell_type": "code", 106 | "execution_count": 7, 107 | "metadata": {}, 108 | "outputs": [ 109 | { 110 | "name": "stdout", 111 | "output_type": "stream", 112 | "text": [ 113 | "Eq(totalReturn, 0.0600000000000000)\n" 114 | ] 115 | } 116 | ], 117 | "source": [ 118 | "print(retEquation.subs([(p1,.5),(p2,.5)]))" 119 | ] 120 | }, 121 | { 122 | "cell_type": "code", 123 | "execution_count": 8, 124 | "metadata": {}, 125 | "outputs": [ 126 | { 127 | "name": "stdout", 128 | "output_type": "stream", 129 | "text": [ 130 | "Eq(totalReturn, 0.0600000000000000)\n", 131 | "0.0600000000000000\n" 132 | ] 133 | } 134 | ], 135 | "source": [ 136 | "def findReturn(w1,w2):\n", 137 | " return retEquation.subs([(p1,w1),(p2,w2)])\n", 138 | "print(findReturn(.5,.5))\n", 139 | "print(findReturn(.5,.5).rhs)" 140 | ] 141 | }, 142 | { 143 | "cell_type": "code", 144 | "execution_count": 9, 145 | "metadata": {}, 146 | "outputs": [ 147 | { 148 | "name": "stdout", 149 | "output_type": "stream", 150 | "text": [ 151 | "Eq(1, p1 + p2)\n" 152 | ] 153 | } 154 | ], 155 | "source": [ 156 | "totalPercent = sympy.Eq(1,p1+p2)\n", 157 | "print(totalPercent)" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": 10, 163 | "metadata": {}, 164 | "outputs": [ 165 | { 166 | "name": "stdout", 167 | "output_type": "stream", 168 | "text": [ 169 | "{p1: 0.500000000000000, p2: 0.500000000000000}\n" 170 | ] 171 | } 172 | ], 173 | "source": [ 174 | "retEquation = sympy.Eq(.06,p1*ret1+p2*ret2)\n", 175 | "print(sympy.solve((retEquation,totalPercent)))" 176 | ] 177 | }, 178 | { 179 | "cell_type": "code", 180 | "execution_count": 11, 181 | "metadata": { 182 | "collapsed": true 183 | }, 184 | "outputs": [], 185 | "source": [ 186 | "def twoChoice(ret1,ret2,goalReturn):\n", 187 | " retEquation = sympy.Eq(goalReturn,p1*ret1+p2*ret2)\n", 188 | " totalPercent = sympy.Eq(1,p1+p2)\n", 189 | " return sympy.solve((retEquation,totalPercent))" 190 | ] 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": 12, 195 | "metadata": {}, 196 | "outputs": [ 197 | { 198 | "data": { 199 | "text/plain": [ 200 | "{p1: 0.500000000000000, p2: 0.500000000000000}" 201 | ] 202 | }, 203 | "execution_count": 12, 204 | "metadata": {}, 205 | "output_type": "execute_result" 206 | } 207 | ], 208 | "source": [ 209 | "twoChoice(.03,.09,.06)" 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": 13, 215 | "metadata": {}, 216 | "outputs": [ 217 | { 218 | "name": "stdout", 219 | "output_type": "stream", 220 | "text": [ 221 | "0.500000000000000\n", 222 | "0.500000000000000\n" 223 | ] 224 | } 225 | ], 226 | "source": [ 227 | "d = twoChoice(.03,.09,.06)\n", 228 | "print(d[p1])\n", 229 | "print(d[p2])" 230 | ] 231 | }, 232 | { 233 | "cell_type": "code", 234 | "execution_count": 14, 235 | "metadata": { 236 | "collapsed": true 237 | }, 238 | "outputs": [], 239 | "source": [ 240 | "p1 = sympy.Symbol(\"p1\")\n", 241 | "p2 = sympy.Symbol(\"p2\")\n", 242 | "def twoChoice(ret1,ret2,var1,var2,cov,goalReturn):\n", 243 | " retEquation = sympy.Eq(goalReturn,p1*ret1+p2*ret2)\n", 244 | " totalPercent = sympy.Eq(1,p1+p2)\n", 245 | " dictionary = sympy.solve((retEquation,totalPercent))\n", 246 | " percent1 = dictionary[p1]\n", 247 | " percent2 = dictionary[p2]\n", 248 | " variance = percent1**2*var1+percent2**2*var2+2*percent1*percent2*cov\n", 249 | " print(\"Put \"+str(percent1*100)+\"% in asset 1.\")\n", 250 | " print(\"Put \"+str(percent2*100)+\"% in asset 2.\")\n", 251 | " print(\"Your variance will be \"+str(variance))" 252 | ] 253 | }, 254 | { 255 | "cell_type": "code", 256 | "execution_count": 15, 257 | "metadata": {}, 258 | "outputs": [ 259 | { 260 | "name": "stdout", 261 | "output_type": "stream", 262 | "text": [ 263 | "Put 50.0000000000000% in asset 1.\n", 264 | "Put 50.0000000000000% in asset 2.\n", 265 | "Your variance will be 0.0450000000000000\n" 266 | ] 267 | } 268 | ], 269 | "source": [ 270 | "twoChoice(.03,.09,.05,.07,.03,.06)" 271 | ] 272 | }, 273 | { 274 | "cell_type": "code", 275 | "execution_count": 16, 276 | "metadata": { 277 | "collapsed": true 278 | }, 279 | "outputs": [], 280 | "source": [ 281 | "p1 = sympy.Symbol(\"p1\")\n", 282 | "p2 = sympy.Symbol(\"p2\")\n", 283 | "def twoChoice2(ret1,ret2,var1,var2,cov,goalVar):\n", 284 | " varEquation = sympy.Eq(goalVar,p1**2*var1+p2**2*var2+2*p1*p2*cov)\n", 285 | " totalPercent = sympy.Eq(1,p1+p2)\n", 286 | " dictionary = sympy.solve((varEquation,totalPercent))\n", 287 | " return dictionary" 288 | ] 289 | }, 290 | { 291 | "cell_type": "code", 292 | "execution_count": 17, 293 | "metadata": {}, 294 | "outputs": [ 295 | { 296 | "data": { 297 | "text/plain": [ 298 | "[{p1: 0.500000000000000, p2: 0.500000000000000},\n", 299 | " {p1: 0.833333333333333, p2: 0.166666666666667}]" 300 | ] 301 | }, 302 | "execution_count": 17, 303 | "metadata": {}, 304 | "output_type": "execute_result" 305 | } 306 | ], 307 | "source": [ 308 | "twoChoice2(.03,.09,.05,.07,.03,.045)" 309 | ] 310 | }, 311 | { 312 | "cell_type": "code", 313 | "execution_count": 18, 314 | "metadata": {}, 315 | "outputs": [ 316 | { 317 | "name": "stdout", 318 | "output_type": "stream", 319 | "text": [ 320 | "Put 50.0000000000000% in asset 1.\n", 321 | "Put 50.0000000000000% in asset 2.\n", 322 | "Your return will be 0.0600000000000000\n", 323 | "Put 83.3333333333333% in asset 1.\n", 324 | "Put 16.6666666666667% in asset 2.\n", 325 | "Your return will be 0.0400000000000000\n" 326 | ] 327 | } 328 | ], 329 | "source": [ 330 | "def twoChoice2(ret1,ret2,var1,var2,cov,goalVar):\n", 331 | " varEquation = sympy.Eq(goalVar,p1**2*var1+p2**2*var2+2*p1*p2*cov)\n", 332 | " totalPercent = sympy.Eq(1,p1+p2)\n", 333 | " dictionaries = sympy.solve((varEquation,totalPercent))\n", 334 | " for dictionary in dictionaries:\n", 335 | " percent1 = dictionary[p1]\n", 336 | " percent2 = dictionary[p2]\n", 337 | " ret = percent1*ret1+percent2*ret2\n", 338 | " print(\"Put \"+str(percent1*100)+\"% in asset 1.\")\n", 339 | " print(\"Put \"+str(percent2*100)+\"% in asset 2.\")\n", 340 | " print(\"Your return will be \"+str(ret))\n", 341 | "twoChoice2(.03,.09,.05,.07,.03,.045)" 342 | ] 343 | }, 344 | { 345 | "cell_type": "code", 346 | "execution_count": 19, 347 | "metadata": {}, 348 | "outputs": [ 349 | { 350 | "name": "stdout", 351 | "output_type": "stream", 352 | "text": [ 353 | "Put 50.0000000000000% in asset 1.\n", 354 | "Put 50.0000000000000% in asset 2.\n", 355 | "Your return will be 0.0600000000000000\n" 356 | ] 357 | } 358 | ], 359 | "source": [ 360 | "def twoChoice2(ret1,ret2,var1,var2,cov,goalVar):\n", 361 | " varEquation = sympy.Eq(goalVar,p1**2*var1+p2**2*var2+2*p1*p2*cov)\n", 362 | " totalPercent = sympy.Eq(1,p1+p2)\n", 363 | " dictionaries = sympy.solve((varEquation,totalPercent))\n", 364 | " best = [1,0,0]\n", 365 | " for dictionary in dictionaries:\n", 366 | " percent1 = dictionary[p1]\n", 367 | " percent2 = dictionary[p2]\n", 368 | " ret = percent1*ret1+percent2*ret2\n", 369 | " if ret>best[2]:\n", 370 | " best = [percent1,percent2,ret]\n", 371 | " \n", 372 | " print(\"Put \"+str(best[0]*100)+\"% in asset 1.\")\n", 373 | " print(\"Put \"+str(best[1]*100)+\"% in asset 2.\")\n", 374 | " print(\"Your return will be \"+str(best[2]))\n", 375 | "twoChoice2(.03,.09,.05,.07,.03,.045)" 376 | ] 377 | } 378 | ], 379 | "metadata": { 380 | "kernelspec": { 381 | "display_name": "Python 3", 382 | "language": "python", 383 | "name": "python3" 384 | }, 385 | "language_info": { 386 | "codemirror_mode": { 387 | "name": "ipython", 388 | "version": 3 389 | }, 390 | "file_extension": ".py", 391 | "mimetype": "text/x-python", 392 | "name": "python", 393 | "nbconvert_exporter": "python", 394 | "pygments_lexer": "ipython3", 395 | "version": "3.6.1" 396 | } 397 | }, 398 | "nbformat": 4, 399 | "nbformat_minor": 2 400 | } 401 | -------------------------------------------------------------------------------- /4 Diversification.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": { 7 | "collapsed": true 8 | }, 9 | "outputs": [], 10 | "source": [ 11 | "stocks = ['MMM', 'ABT', 'ABBV', 'ACN', 'ATVI', 'AYI', 'ADBE', 'AMD', 'AAP', 'AES', 'AET', 'AMG', 'AFL', 'A', 'APD', 'AKAM', 'ALK', 'ALB', 'ARE', 'ALXN', 'ALLE', 'AGN', 'ADS', 'LNT', 'ALL', 'GOOGL', 'GOOG', 'MO', 'AMZN', 'AEE', 'AAL', 'AEP', 'AXP', 'AIG', 'AMT', 'AWK', 'AMP', 'ABC', 'AME', 'AMGN', 'APH', 'APC', 'ADI', 'ANTM', 'AON', 'APA', 'AIV', 'AAPL', 'AMAT', 'ADM', 'ARNC', 'AJG', 'AIZ', 'T', 'ADSK', 'ADP', 'AN', 'AZO', 'AVB', 'AVY', 'BHI', 'BLL', 'BAC', 'BK', 'BCR', 'BAX', 'BBT', 'BDX', 'BBBY', 'BRK.B', 'BBY', 'BIIB', 'BLK', 'HRB', 'BA', 'BWA', 'BXP', 'BSX', 'BMY', 'AVGO', 'BF.B', 'CHRW', 'CA', 'COG', 'CPB', 'COF', 'CAH', 'CBOE', 'KMX', 'CCL', 'CAT', 'CBG', 'CBS', 'CELG', 'CNC', 'CNP', 'CTL', 'CERN', 'CF', 'SCHW', 'CHTR', 'CHK', 'CVX', 'CMG', 'CB', 'CHD', 'CI', 'XEC', 'CINF', 'CTAS', 'CSCO', 'C', 'CFG', 'CTXS', 'CLX', 'CME', 'CMS', 'COH', 'KO', 'CTSH', 'CL', 'CMCSA', 'CMA', 'CAG', 'CXO', 'COP', 'ED', 'STZ', 'COO', 'GLW', 'COST', 'COTY', 'CCI', 'CSRA', 'CSX', 'CMI', 'CVS', 'DHI', 'DHR', 'DRI', 'DVA', 'DE', 'DLPH', 'DAL', 'XRAY', 'DVN', 'DLR', 'DFS', 'DISCA', 'DISCK', 'DISH', 'DG', 'DLTR', 'D', 'DOV', 'DOW', 'DPS', 'DTE', 'DD', 'DUK', 'DXC', 'ETFC', 'EMN', 'ETN', 'EBAY', 'ECL', 'EIX', 'EW', 'EA', 'EMR', 'ETR', 'EVHC', 'EOG', 'EQT', 'EFX', 'EQIX', 'EQR', 'ESS', 'EL', 'ES', 'EXC', 'EXPE', 'EXPD', 'ESRX', 'EXR', 'XOM', 'FFIV', 'FB', 'FAST', 'FRT', 'FDX', 'FIS', 'FITB', 'FE', 'FISV', 'FLIR', 'FLS', 'FLR', 'FMC', 'FL', 'F', 'FTV', 'FBHS', 'BEN', 'FCX', 'GPS', 'GRMN', 'IT', 'GD', 'GE', 'GGP', 'GIS', 'GM', 'GPC', 'GILD', 'GPN', 'GS', 'GT', 'GWW', 'HAL', 'HBI', 'HOG', 'HRS', 'HIG', 'HAS', 'HCA', 'HCP', 'HP', 'HSIC', 'HSY', 'HES', 'HPE', 'HOLX', 'HD', 'HON', 'HRL', 'HST', 'HPQ', 'HUM', 'HBAN', 'IDXX', 'INFO', 'ITW', 'ILMN', 'IR', 'INTC', 'ICE', 'IBM', 'INCY', 'IP', 'IPG', 'IFF', 'INTU', 'ISRG', 'IVZ', 'IRM', 'JEC', 'JBHT', 'SJM', 'JNJ', 'JCI', 'JPM', 'JNPR', 'KSU', 'K', 'KEY', 'KMB', 'KIM', 'KMI', 'KLAC', 'KSS', 'KHC', 'KR', 'LB', 'LLL', 'LH', 'LRCX', 'LEG', 'LEN', 'LVLT', 'LUK', 'LLY', 'LNC', 'LKQ', 'LMT', 'L', 'LOW', 'LYB', 'MTB', 'MAC', 'M', 'MNK', 'MRO', 'MPC', 'MAR', 'MMC', 'MLM', 'MAS', 'MA', 'MAT', 'MKC', 'MCD', 'MCK', 'MJN', 'MDT', 'MRK', 'MET', 'MTD', 'KORS', 'MCHP', 'MU', 'MSFT', 'MAA', 'MHK', 'TAP', 'MDLZ', 'MON', 'MNST', 'MCO', 'MS', 'MOS', 'MSI', 'MUR', 'MYL', 'NDAQ', 'NOV', 'NAVI', 'NTAP', 'NFLX', 'NWL', 'NFX', 'NEM', 'NWSA', 'NWS', 'NEE', 'NLSN', 'NKE', 'NI', 'NBL', 'JWN', 'NSC', 'NTRS', 'NOC', 'NRG', 'NUE', 'NVDA', 'ORLY', 'OXY', 'OMC', 'OKE', 'ORCL', 'PCAR', 'PH', 'PDCO', 'PAYX', 'PYPL', 'PNR', 'PBCT', 'PEP', 'PKI', 'PRGO', 'PFE', 'PCG', 'PM', 'PSX', 'PNW', 'PXD', 'PNC', 'RL', 'PPG', 'PPL', 'PX', 'PCLN', 'PFG', 'PG', 'PGR', 'PLD', 'PRU', 'PEG', 'PSA', 'PHM', 'PVH', 'QRVO', 'PWR', 'QCOM', 'DGX', 'RRC', 'RJF', 'RTN', 'O', 'RHT', 'REG', 'REGN', 'RF', 'RSG', 'RAI', 'RHI', 'ROK', 'COL', 'ROP', 'ROST', 'RCL', 'R', 'CRM', 'SCG', 'SLB', 'SNI', 'STX', 'SEE', 'SRE', 'SHW', 'SIG', 'SPG', 'SWKS', 'SLG', 'SNA', 'SO', 'LUV', 'SPGI', 'SWK', 'SPLS', 'SBUX', 'STT', 'SRCL', 'SYK', 'STI', 'SYMC', 'SYF', 'SNPS', 'SYY', 'TROW', 'TGT', 'TEL', 'FTI', 'TDC', 'TSO', 'TXN', 'TXT', 'TMO', 'TIF', 'TWX', 'TJX', 'TMK', 'TSS', 'TSCO', 'TDG', 'RIG', 'TRV', 'TRIP', 'FOXA', 'FOX', 'TSN', 'UDR', 'ULTA', 'USB', 'UA', 'UAA', 'UNP', 'UAL', 'UNH', 'UPS', 'URI', 'UTX', 'UHS', 'UNM', 'VFC', 'VLO', 'VAR', 'VTR', 'VRSN', 'VRSK', 'VZ', 'VRTX', 'VIAB', 'V', 'VNO', 'VMC', 'WMT', 'WBA', 'DIS', 'WM', 'WAT', 'WEC', 'WFC', 'HCN', 'WDC', 'WU', 'WRK', 'WY', 'WHR', 'WFM', 'WMB', 'WLTW', 'WYN', 'WYNN', 'XEL', 'XRX', 'XLNX', 'XL', 'XYL', 'YHOO', 'YUM', 'ZBH', 'ZION', 'ZTS']" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "metadata": {}, 18 | "outputs": [ 19 | { 20 | "name": "stdout", 21 | "output_type": "stream", 22 | "text": [ 23 | " F\n", 24 | "Date \n", 25 | "2016-01-04 13.97\n", 26 | "2016-01-05 13.72\n", 27 | "2016-01-06 13.11\n", 28 | "2016-01-07 12.70\n", 29 | "2016-01-08 12.54\n", 30 | "2016-01-11 12.77\n", 31 | "2016-01-12 12.85\n", 32 | "2016-01-13 12.20\n", 33 | "2016-01-14 12.19\n", 34 | "2016-01-15 11.97\n", 35 | "2016-01-19 11.95\n", 36 | "2016-01-20 11.90\n", 37 | "2016-01-21 12.01\n", 38 | "2016-01-22 12.14\n", 39 | "2016-01-25 11.98\n", 40 | "2016-01-26 12.26\n", 41 | "2016-01-27 11.85\n", 42 | "2016-01-28 11.71\n", 43 | "2016-01-29 11.94\n", 44 | "2016-02-01 12.07\n", 45 | "2016-02-02 11.51\n", 46 | "2016-02-03 11.46\n", 47 | "2016-02-04 11.53\n", 48 | "2016-02-05 11.45\n", 49 | "2016-02-08 11.59\n", 50 | "2016-02-09 11.35\n", 51 | "2016-02-10 11.34\n", 52 | "2016-02-11 11.17\n", 53 | "2016-02-12 11.55\n", 54 | "2016-02-16 11.87\n", 55 | "... ...\n", 56 | "2016-11-17 11.87\n", 57 | "2016-11-18 11.76\n", 58 | "2016-11-21 11.79\n", 59 | "2016-11-22 11.89\n", 60 | "2016-11-23 11.90\n", 61 | "2016-11-25 12.04\n", 62 | "2016-11-28 11.92\n", 63 | "2016-11-29 11.92\n", 64 | "2016-11-30 11.96\n", 65 | "2016-12-01 12.43\n", 66 | "2016-12-02 12.24\n", 67 | "2016-12-05 12.44\n", 68 | "2016-12-06 12.56\n", 69 | "2016-12-07 13.06\n", 70 | "2016-12-08 13.03\n", 71 | "2016-12-09 13.17\n", 72 | "2016-12-12 12.82\n", 73 | "2016-12-13 12.77\n", 74 | "2016-12-14 12.53\n", 75 | "2016-12-15 12.58\n", 76 | "2016-12-16 12.63\n", 77 | "2016-12-19 12.66\n", 78 | "2016-12-20 12.78\n", 79 | "2016-12-21 12.64\n", 80 | "2016-12-22 12.40\n", 81 | "2016-12-23 12.46\n", 82 | "2016-12-27 12.39\n", 83 | "2016-12-28 12.25\n", 84 | "2016-12-29 12.23\n", 85 | "2016-12-30 12.13\n", 86 | "\n", 87 | "[252 rows x 1 columns]\n" 88 | ] 89 | } 90 | ], 91 | "source": [ 92 | "import pandas_datareader.data as web\n", 93 | "import datetime\n", 94 | "start = datetime.datetime(2016, 1, 1)\n", 95 | "end = datetime.datetime(2017, 1, 1)\n", 96 | "stocks1 = web.DataReader([\"F\"], 'google', start, end)[\"Close\"]\n", 97 | "print(stocks1)" 98 | ] 99 | }, 100 | { 101 | "cell_type": "code", 102 | "execution_count": 3, 103 | "metadata": {}, 104 | "outputs": [ 105 | { 106 | "name": "stdout", 107 | "output_type": "stream", 108 | "text": [ 109 | " F\n", 110 | "Date \n", 111 | "2016-01-04 1.000000\n", 112 | "2016-01-05 0.982105\n", 113 | "2016-01-06 0.938440\n", 114 | "2016-01-07 0.909091\n", 115 | "2016-01-08 0.897638\n", 116 | "2016-01-11 0.914102\n", 117 | "2016-01-12 0.919828\n", 118 | "2016-01-13 0.873300\n", 119 | "2016-01-14 0.872584\n", 120 | "2016-01-15 0.856836\n", 121 | "2016-01-19 0.855404\n", 122 | "2016-01-20 0.851825\n", 123 | "2016-01-21 0.859699\n", 124 | "2016-01-22 0.869005\n", 125 | "2016-01-25 0.857552\n", 126 | "2016-01-26 0.877595\n", 127 | "2016-01-27 0.848246\n", 128 | "2016-01-28 0.838225\n", 129 | "2016-01-29 0.854689\n", 130 | "2016-02-01 0.863994\n", 131 | "2016-02-02 0.823908\n", 132 | "2016-02-03 0.820329\n", 133 | "2016-02-04 0.825340\n", 134 | "2016-02-05 0.819613\n", 135 | "2016-02-08 0.829635\n", 136 | "2016-02-09 0.812455\n", 137 | "2016-02-10 0.811739\n", 138 | "2016-02-11 0.799571\n", 139 | "2016-02-12 0.826772\n", 140 | "2016-02-16 0.849678\n", 141 | "... ...\n", 142 | "2016-11-17 0.849678\n", 143 | "2016-11-18 0.841804\n", 144 | "2016-11-21 0.843951\n", 145 | "2016-11-22 0.851110\n", 146 | "2016-11-23 0.851825\n", 147 | "2016-11-25 0.861847\n", 148 | "2016-11-28 0.853257\n", 149 | "2016-11-29 0.853257\n", 150 | "2016-11-30 0.856120\n", 151 | "2016-12-01 0.889764\n", 152 | "2016-12-02 0.876163\n", 153 | "2016-12-05 0.890480\n", 154 | "2016-12-06 0.899069\n", 155 | "2016-12-07 0.934860\n", 156 | "2016-12-08 0.932713\n", 157 | "2016-12-09 0.942734\n", 158 | "2016-12-12 0.917681\n", 159 | "2016-12-13 0.914102\n", 160 | "2016-12-14 0.896922\n", 161 | "2016-12-15 0.900501\n", 162 | "2016-12-16 0.904080\n", 163 | "2016-12-19 0.906228\n", 164 | "2016-12-20 0.914817\n", 165 | "2016-12-21 0.904796\n", 166 | "2016-12-22 0.887616\n", 167 | "2016-12-23 0.891911\n", 168 | "2016-12-27 0.886901\n", 169 | "2016-12-28 0.876879\n", 170 | "2016-12-29 0.875447\n", 171 | "2016-12-30 0.868289\n", 172 | "\n", 173 | "[252 rows x 1 columns]\n" 174 | ] 175 | } 176 | ], 177 | "source": [ 178 | "import numpy as np\n", 179 | "stocks1 = stocks1/stocks1.iloc[0,:]\n", 180 | "print(stocks1)" 181 | ] 182 | }, 183 | { 184 | "cell_type": "code", 185 | "execution_count": 4, 186 | "metadata": {}, 187 | "outputs": [ 188 | { 189 | "name": "stdout", 190 | "output_type": "stream", 191 | "text": [ 192 | "F 0.000274\n", 193 | "dtype: float64\n" 194 | ] 195 | } 196 | ], 197 | "source": [ 198 | "stocks1 = stocks1.pct_change().dropna()\n", 199 | "print(np.var(stocks1,ddof=1))" 200 | ] 201 | }, 202 | { 203 | "cell_type": "code", 204 | "execution_count": 5, 205 | "metadata": {}, 206 | "outputs": [ 207 | { 208 | "name": "stdout", 209 | "output_type": "stream", 210 | "text": [ 211 | "F 0.069083\n", 212 | "dtype: float64\n", 213 | "F 0.262837\n", 214 | "dtype: float64\n" 215 | ] 216 | } 217 | ], 218 | "source": [ 219 | "print(np.var(stocks1,ddof=1)*252)\n", 220 | "print((np.var(stocks1,ddof=1)*252)**.5)" 221 | ] 222 | }, 223 | { 224 | "cell_type": "code", 225 | "execution_count": 6, 226 | "metadata": {}, 227 | "outputs": [ 228 | { 229 | "name": "stdout", 230 | "output_type": "stream", 231 | "text": [ 232 | "Date\n", 233 | "2016-01-04 1.000000\n", 234 | "2016-01-05 1.000886\n", 235 | "2016-01-06 0.977656\n", 236 | "2016-01-07 0.954256\n", 237 | "2016-01-08 0.935985\n", 238 | "2016-01-11 0.940251\n", 239 | "2016-01-12 0.949234\n", 240 | "2016-01-13 0.915102\n", 241 | "2016-01-14 0.933611\n", 242 | "2016-01-15 0.921362\n", 243 | "2016-01-19 0.920260\n", 244 | "2016-01-20 0.908030\n", 245 | "2016-01-21 0.921996\n", 246 | "2016-01-22 0.934342\n", 247 | "2016-01-25 0.921243\n", 248 | "2016-01-26 0.935867\n", 249 | "2016-01-27 0.931504\n", 250 | "2016-01-28 0.916930\n", 251 | "2016-01-29 0.946264\n", 252 | "2016-02-01 0.944382\n", 253 | "2016-02-02 0.923383\n", 254 | "2016-02-03 0.933724\n", 255 | "2016-02-04 0.931567\n", 256 | "2016-02-05 0.896808\n", 257 | "2016-02-08 0.873760\n", 258 | "2016-02-09 0.872508\n", 259 | "2016-02-10 0.873811\n", 260 | "2016-02-11 0.860807\n", 261 | "2016-02-12 0.866551\n", 262 | "2016-02-16 0.887592\n", 263 | " ... \n", 264 | "2016-11-17 1.300130\n", 265 | "2016-11-18 1.297066\n", 266 | "2016-11-21 1.311592\n", 267 | "2016-11-22 1.293990\n", 268 | "2016-11-23 1.302141\n", 269 | "2016-11-25 1.308709\n", 270 | "2016-11-28 1.307587\n", 271 | "2016-11-29 1.316581\n", 272 | "2016-11-30 1.299943\n", 273 | "2016-12-01 1.266021\n", 274 | "2016-12-02 1.272881\n", 275 | "2016-12-05 1.289296\n", 276 | "2016-12-06 1.320859\n", 277 | "2016-12-07 1.338488\n", 278 | "2016-12-08 1.367686\n", 279 | "2016-12-09 1.373728\n", 280 | "2016-12-12 1.388924\n", 281 | "2016-12-13 1.388627\n", 282 | "2016-12-14 1.376709\n", 283 | "2016-12-15 1.388467\n", 284 | "2016-12-16 1.376708\n", 285 | "2016-12-19 1.392274\n", 286 | "2016-12-20 1.410177\n", 287 | "2016-12-21 1.399722\n", 288 | "2016-12-22 1.399901\n", 289 | "2016-12-23 1.401458\n", 290 | "2016-12-27 1.422355\n", 291 | "2016-12-28 1.393902\n", 292 | "2016-12-29 1.398404\n", 293 | "2016-12-30 1.385433\n", 294 | "Length: 252, dtype: float64\n" 295 | ] 296 | } 297 | ], 298 | "source": [ 299 | "stocks10 = web.DataReader(stocks[:10], 'google', start, end)[\"Close\"]\n", 300 | "stocks10 = stocks10/stocks10.iloc[0,:]\n", 301 | "stocks10 = stocks10.sum(axis=1)/10\n", 302 | "print(stocks10)" 303 | ] 304 | }, 305 | { 306 | "cell_type": "code", 307 | "execution_count": 7, 308 | "metadata": {}, 309 | "outputs": [ 310 | { 311 | "name": "stdout", 312 | "output_type": "stream", 313 | "text": [ 314 | "0.20652378863504628\n" 315 | ] 316 | } 317 | ], 318 | "source": [ 319 | "stocks10 = stocks10.pct_change().dropna()\n", 320 | "print((np.var(stocks10,ddof=1)*252)**.5)" 321 | ] 322 | }, 323 | { 324 | "cell_type": "code", 325 | "execution_count": 8, 326 | "metadata": {}, 327 | "outputs": [ 328 | { 329 | "name": "stdout", 330 | "output_type": "stream", 331 | "text": [ 332 | "0.1491148990727453\n" 333 | ] 334 | } 335 | ], 336 | "source": [ 337 | "stocks100 = web.DataReader(stocks[:100], 'google', start, end)[\"Close\"]\n", 338 | "stocks100 = stocks100/stocks100.iloc[0,:]\n", 339 | "stocks100 = stocks100.sum(axis=1)/10\n", 340 | "stocks100 = stocks100.pct_change().dropna()\n", 341 | "print((np.var(stocks100,ddof=1)*252)**.5)" 342 | ] 343 | } 344 | ], 345 | "metadata": { 346 | "kernelspec": { 347 | "display_name": "Python 3", 348 | "language": "python", 349 | "name": "python3" 350 | }, 351 | "language_info": { 352 | "codemirror_mode": { 353 | "name": "ipython", 354 | "version": 3 355 | }, 356 | "file_extension": ".py", 357 | "mimetype": "text/x-python", 358 | "name": "python", 359 | "nbconvert_exporter": "python", 360 | "pygments_lexer": "ipython3", 361 | "version": "3.6.1" 362 | } 363 | }, 364 | "nbformat": 4, 365 | "nbformat_minor": 2 366 | } 367 | -------------------------------------------------------------------------------- /10 Fixed Income.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "data": { 10 | "text/plain": [ 11 | "0.019999999999048713" 12 | ] 13 | }, 14 | "execution_count": 1, 15 | "metadata": {}, 16 | "output_type": "execute_result" 17 | } 18 | ], 19 | "source": [ 20 | "from scipy.optimize import fsolve\n", 21 | "def value(r,price,fv,year,cr):\n", 22 | " final_pay = fv/(1+r)**year\n", 23 | " coupon_payment = (fv*cr)\n", 24 | " annuity_value = coupon_payment*(1-(1+r)**(-year))/r\n", 25 | " return annuity_value+final_pay-price\n", 26 | "def findYield(price,fv,year,cr):\n", 27 | " return fsolve(value, cr,(price,fv,year,cr))[0]\n", 28 | "findYield(1141.40378526,1000,5,.05)" 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 2, 34 | "metadata": {}, 35 | "outputs": [ 36 | { 37 | "name": "stdout", 38 | "output_type": "stream", 39 | "text": [ 40 | "0.10319016332\n", 41 | "0.04563955259127317\n" 42 | ] 43 | } 44 | ], 45 | "source": [ 46 | "print(findYield(800,1000,5,.05))\n", 47 | "print((1000/800)**(1/5)-1)" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": 3, 53 | "metadata": {}, 54 | "outputs": [ 55 | { 56 | "name": "stdout", 57 | "output_type": "stream", 58 | "text": [ 59 | " TB3MS TB6MS TB1YR GS5 GS10 GS30\n", 60 | "DATE \n", 61 | "2016-01-01 0.26 0.43 0.52 1.52 2.09 2.86\n", 62 | "2016-02-01 0.31 0.44 0.52 1.22 1.78 2.62\n", 63 | "2016-03-01 0.29 0.46 0.64 1.38 1.89 2.68\n", 64 | "2016-04-01 0.23 0.37 0.54 1.26 1.81 2.62\n", 65 | "2016-05-01 0.27 0.41 0.57 1.30 1.81 2.63\n", 66 | "2016-06-01 0.27 0.40 0.54 1.17 1.64 2.45\n", 67 | "2016-07-01 0.30 0.39 0.50 1.07 1.50 2.23\n", 68 | "2016-08-01 0.30 0.44 0.55 1.13 1.56 2.26\n", 69 | "2016-09-01 0.29 0.46 0.58 1.18 1.63 2.35\n", 70 | "2016-10-01 0.33 0.47 0.64 1.27 1.76 2.50\n", 71 | "2016-11-01 0.45 0.57 0.71 1.60 2.14 2.86\n", 72 | "2016-12-01 0.51 0.63 0.84 1.96 2.49 3.11\n", 73 | "2017-01-01 0.51 0.61 0.80 1.92 2.43 3.02\n" 74 | ] 75 | } 76 | ], 77 | "source": [ 78 | "import pandas_datareader.data as web\n", 79 | "import datetime\n", 80 | "start = datetime.datetime(2016, 1, 1)\n", 81 | "end = datetime.datetime(2017, 1, 1)\n", 82 | "bondYields = web.DataReader([\"TB3MS\",\"TB6MS\",\"TB1YR\",\"GS5\",\"GS10\",\"GS30\"], 'fred', start, end)\n", 83 | "print(bondYields)" 84 | ] 85 | }, 86 | { 87 | "cell_type": "code", 88 | "execution_count": 4, 89 | "metadata": {}, 90 | "outputs": [ 91 | { 92 | "name": "stdout", 93 | "output_type": "stream", 94 | "text": [ 95 | "TB3MS 0.51\n", 96 | "TB6MS 0.61\n", 97 | "TB1YR 0.80\n", 98 | "GS5 1.92\n", 99 | "GS10 2.43\n", 100 | "GS30 3.02\n", 101 | "Name: 2017-01-01 00:00:00, dtype: float64\n" 102 | ] 103 | } 104 | ], 105 | "source": [ 106 | "print(bondYields.iloc[-1,:])" 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "execution_count": 5, 112 | "metadata": {}, 113 | "outputs": [ 114 | { 115 | "data": { 116 | "image/png": "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\nGFNIyQAAAABJRU5ErkJggg==\n", 117 | "text/plain": [ 118 | "" 119 | ] 120 | }, 121 | "metadata": {}, 122 | "output_type": "display_data" 123 | } 124 | ], 125 | "source": [ 126 | "import matplotlib.pyplot as plt\n", 127 | "plt.plot([.25,.5,1,5,10,30],bondYields.iloc[-1,:])\n", 128 | "plt.title(\"Yield Curve\")\n", 129 | "plt.xlabel(\"Maturity\")\n", 130 | "plt.ylabel(\"Yield\")\n", 131 | "plt.show()" 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 6, 137 | "metadata": {}, 138 | "outputs": [ 139 | { 140 | "data": { 141 | "image/png": "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\n", 142 | "text/plain": [ 143 | "" 144 | ] 145 | }, 146 | "metadata": {}, 147 | "output_type": "display_data" 148 | } 149 | ], 150 | "source": [ 151 | "import pandas_datareader.data as web\n", 152 | "import datetime\n", 153 | "start = datetime.datetime(2010, 1, 1)\n", 154 | "end = datetime.datetime(2017, 1, 1)\n", 155 | "bondYields = web.DataReader([\"TB3MS\",\"TB6MS\",\"TB1YR\",\"GS5\",\"GS10\",\"GS30\"], 'fred', start, end)\n", 156 | "plt.plot([.25,.5,1,5,10,30],bondYields.iloc[0,:])\n", 157 | "plt.plot([.25,.5,1,5,10,30],bondYields.iloc[-1,:])\n", 158 | "plt.title(\"Yield Curve\")\n", 159 | "plt.xlabel(\"Maturity\")\n", 160 | "plt.ylabel(\"Yield\")\n", 161 | "plt.legend([\"2010\",\"2017\"])\n", 162 | "plt.show()" 163 | ] 164 | } 165 | ], 166 | "metadata": { 167 | "kernelspec": { 168 | "display_name": "Python 3", 169 | "language": "python", 170 | "name": "python3" 171 | }, 172 | "language_info": { 173 | "codemirror_mode": { 174 | "name": "ipython", 175 | "version": 3 176 | }, 177 | "file_extension": ".py", 178 | "mimetype": "text/x-python", 179 | "name": "python", 180 | "nbconvert_exporter": "python", 181 | "pygments_lexer": "ipython3", 182 | "version": "3.6.1" 183 | } 184 | }, 185 | "nbformat": 4, 186 | "nbformat_minor": 2 187 | } 188 | -------------------------------------------------------------------------------- /11 Duration and Immunization.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "[46.29629629629629, 42.86694101508916, 833.5238530711781]\n", 13 | "922.6870903825636\n" 14 | ] 15 | } 16 | ], 17 | "source": [ 18 | "flows = [50,50,1050]\n", 19 | "period = [1,2,3]\n", 20 | "flowsPV = [x/(1.08)**y for x,y in zip(flows,period)]\n", 21 | "print(flowsPV)\n", 22 | "print(sum(flowsPV))" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 2, 28 | "metadata": {}, 29 | "outputs": [ 30 | { 31 | "name": "stdout", 32 | "output_type": "stream", 33 | "text": [ 34 | "[0.05017551104687177, 0.04645880652488127, 0.9033656824282469]\n" 35 | ] 36 | } 37 | ], 38 | "source": [ 39 | "weights = [x/922.6870903825636 for x in flowsPV]\n", 40 | "print(weights)" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 3, 46 | "metadata": {}, 47 | "outputs": [ 48 | { 49 | "name": "stdout", 50 | "output_type": "stream", 51 | "text": [ 52 | "[0.05017551104687177, 0.09291761304976254, 2.7100970472847408]\n", 53 | "2.853190171381375\n" 54 | ] 55 | } 56 | ], 57 | "source": [ 58 | "weightedYears = [x*y for x,y in zip(weights,period)]\n", 59 | "print(weightedYears)\n", 60 | "print(sum(weightedYears))" 61 | ] 62 | }, 63 | { 64 | "cell_type": "code", 65 | "execution_count": 4, 66 | "metadata": {}, 67 | "outputs": [ 68 | { 69 | "data": { 70 | "text/plain": [ 71 | "2.853190171381375" 72 | ] 73 | }, 74 | "execution_count": 4, 75 | "metadata": {}, 76 | "output_type": "execute_result" 77 | } 78 | ], 79 | "source": [ 80 | "def duration(couponRate,periods,r):\n", 81 | " flows = [couponRate]*periods\n", 82 | " flows[-1]+=1\n", 83 | " periodsAr = list(range(1,periods+1))\n", 84 | " pv = [x/(1+r)**y for x,y in zip(flows,periodsAr)]\n", 85 | " price = sum(pv)\n", 86 | " weights = [x/price for x in pv]\n", 87 | " duration = sum([x*y for x,y in zip(periodsAr,weights)])\n", 88 | " return duration\n", 89 | "duration(.05,3,.08)" 90 | ] 91 | }, 92 | { 93 | "cell_type": "code", 94 | "execution_count": 5, 95 | "metadata": {}, 96 | "outputs": [ 97 | { 98 | "data": { 99 | "image/png": "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\nRU5ErkJggg==\n", 100 | "text/plain": [ 101 | "" 102 | ] 103 | }, 104 | "metadata": {}, 105 | "output_type": "display_data" 106 | } 107 | ], 108 | "source": [ 109 | "import matplotlib.pyplot as plt\n", 110 | "couponRate = [x/100 for x in range(0,21)]\n", 111 | "durationAr = [duration(x,3,.08) for x in couponRate]\n", 112 | "plt.plot(couponRate,durationAr)\n", 113 | "plt.xlabel(\"Coupon Rate\")\n", 114 | "plt.ylabel(\"Duration\")\n", 115 | "plt.title(\"Duration vs. Coupon Rate\")\n", 116 | "plt.show()" 117 | ] 118 | }, 119 | { 120 | "cell_type": "code", 121 | "execution_count": 6, 122 | "metadata": {}, 123 | "outputs": [ 124 | { 125 | "data": { 126 | "image/png": "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\nP9z9pMhvzrzfAAAAAElFTkSuQmCC\n", 127 | "text/plain": [ 128 | "" 129 | ] 130 | }, 131 | "metadata": {}, 132 | "output_type": "display_data" 133 | } 134 | ], 135 | "source": [ 136 | "import matplotlib.pyplot as plt\n", 137 | "r = [x/100 for x in range(0,21)]\n", 138 | "durationAr = [duration(.05,3,x) for x in r]\n", 139 | "plt.plot(couponRate,durationAr)\n", 140 | "plt.xlabel(\"Discount Rate\")\n", 141 | "plt.ylabel(\"Duration\")\n", 142 | "plt.title(\"Duration vs. Discount Rate\")\n", 143 | "plt.show()" 144 | ] 145 | }, 146 | { 147 | "cell_type": "code", 148 | "execution_count": 7, 149 | "metadata": {}, 150 | "outputs": [ 151 | { 152 | "name": "stdout", 153 | "output_type": "stream", 154 | "text": [ 155 | "922.6870903825636\n", 156 | "917.829598293161\n", 157 | "-0.005264506396625337\n" 158 | ] 159 | } 160 | ], 161 | "source": [ 162 | "def bondValue(r,fv,year,cr):\n", 163 | " final_pay = fv/(1+r)**year\n", 164 | " coupon_payment = (fv*cr)\n", 165 | " annuity_value = coupon_payment*(1-(1+r)**(-year))/r\n", 166 | " return annuity_value+final_pay\n", 167 | "p1 = bondValue(.08,1000,3,.05)\n", 168 | "p2 = bondValue(.082,1000,3,.05)\n", 169 | "print(p1)\n", 170 | "print(p2)\n", 171 | "print((p2-p1)/p1)" 172 | ] 173 | }, 174 | { 175 | "cell_type": "code", 176 | "execution_count": 8, 177 | "metadata": {}, 178 | "outputs": [ 179 | { 180 | "name": "stdout", 181 | "output_type": "stream", 182 | "text": [ 183 | "-0.005283685502558101\n" 184 | ] 185 | } 186 | ], 187 | "source": [ 188 | "d = duration(.05,3,.08)\n", 189 | "print(-d/(1.08)*.002)" 190 | ] 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": 9, 195 | "metadata": {}, 196 | "outputs": [ 197 | { 198 | "name": "stdout", 199 | "output_type": "stream", 200 | "text": [ 201 | "0.4875188402851868\n", 202 | "438.76695625666815\n" 203 | ] 204 | } 205 | ], 206 | "source": [ 207 | "print((p1*d)/(900*6))\n", 208 | "print((p1*d)/(6))" 209 | ] 210 | } 211 | ], 212 | "metadata": { 213 | "kernelspec": { 214 | "display_name": "Python 3", 215 | "language": "python", 216 | "name": "python3" 217 | }, 218 | "language_info": { 219 | "codemirror_mode": { 220 | "name": "ipython", 221 | "version": 3 222 | }, 223 | "file_extension": ".py", 224 | "mimetype": "text/x-python", 225 | "name": "python", 226 | "nbconvert_exporter": "python", 227 | "pygments_lexer": "ipython3", 228 | "version": "3.6.1" 229 | } 230 | }, 231 | "nbformat": 4, 232 | "nbformat_minor": 2 233 | } 234 | -------------------------------------------------------------------------------- /9 Dividend Discount Model.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "data": { 10 | "image/png": "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\n", 11 | "text/plain": [ 12 | "" 13 | ] 14 | }, 15 | "metadata": {}, 16 | "output_type": "display_data" 17 | }, 18 | { 19 | "data": { 20 | "image/png": "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\n", 21 | "text/plain": [ 22 | "" 23 | ] 24 | }, 25 | "metadata": {}, 26 | "output_type": "display_data" 27 | }, 28 | { 29 | "data": { 30 | "image/png": "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\ndTELyWuXAgAAAABJRU5ErkJggg==\n", 31 | "text/plain": [ 32 | "" 33 | ] 34 | }, 35 | "metadata": {}, 36 | "output_type": "display_data" 37 | } 38 | ], 39 | "source": [ 40 | "import matplotlib.pyplot as plt\n", 41 | "def DDM(profit,ROE,r):\n", 42 | " current = profit/ROE\n", 43 | " bAr = [x/20 for x in range(20)]\n", 44 | " gAr = [ROE*x for x in bAr]\n", 45 | " stockPrice = [((1-b)*profit*(1+g))/(r-g) for b,g in zip(bAr,gAr)]\n", 46 | " plt.plot(bAr,stockPrice)\n", 47 | " plt.xlabel(\"Plowback Ratio\")\n", 48 | " plt.ylabel(\"Stock Price\")\n", 49 | " plt.title(\"Dividend Discount Model\")\n", 50 | " plt.show()\n", 51 | "DDM(8,.01,.04)\n", 52 | "DDM(8,.02,.04)\n", 53 | "DDM(8,.03,.04)" 54 | ] 55 | } 56 | ], 57 | "metadata": { 58 | "kernelspec": { 59 | "display_name": "Python 3", 60 | "language": "python", 61 | "name": "python3" 62 | }, 63 | "language_info": { 64 | "codemirror_mode": { 65 | "name": "ipython", 66 | "version": 3 67 | }, 68 | "file_extension": ".py", 69 | "mimetype": "text/x-python", 70 | "name": "python", 71 | "nbconvert_exporter": "python", 72 | "pygments_lexer": "ipython3", 73 | "version": "3.6.1" 74 | } 75 | }, 76 | "nbformat": 4, 77 | "nbformat_minor": 2 78 | } 79 | --------------------------------------------------------------------------------