├── DiscreteHedging.pdf ├── README.md └── DiscreteHedging.ipynb /DiscreteHedging.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarcosCarreira/DermanPapers/HEAD/DiscreteHedging.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DermanPapers 2 | Notebooks that replicate original quantitative finance papers from Emanuel Derman 3 | 4 | Created by Marcos Costa Santos Carreira to help others understand quantitative finance 5 | -------------------------------------------------------------------------------- /DiscreteHedging.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Notebook based on the famous 1998 paper by Emanuel Derman:" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "# When You Cannot Hedge Continuously: The Corrections to Black-Scholes" 15 | ] 16 | }, 17 | { 18 | "cell_type": "markdown", 19 | "metadata": {}, 20 | "source": [ 21 | "The insight behind the Black-Scholes formula for options valuation is the recognition that, if you know the future volatility of a stock, you can replicate an option payoff exactly by a continuous rebalancing of a portfolio consisting of the underlying stock and a risk-free bond. If no arbitrage is possible, then the value of the option should be the cost of the replication strategy.\n", 22 | "It is widely recognized that the Black-Scholes model is imperfect in many respects. It makes the idealized assumption that future stock evolution is lognormal with a known volatility, it ignores transaction costs and market impact, and it assumes that trading can be carried out continuously. Nevertheless the model is rational, and therefore amenable to rational modification of its assumptions and results; the Black-Scholes theory can be used to investigate its own shortcomings. This is an active area of research for the Quantitative Strategies Group at Goldman Sachs.\n", 23 | "In this note we examine the effect of dropping only one of the key Black-Scholes assumptions, that of the possibility of continuous hedging. We examine the error that arises when you replicate a single option throughout its lifetime according to the Black-Scholes replication strategy, with the constraint that only a discrete number of rebalancing trades at regular intervals are allowed. To study the replication error, we carry out Monte Carlo simulations of the Black-Scholes hedging strategy for a single European-style option and analyze the resulting uncertainty (that is, the error) in the replication value. We will show that that these errors follow a simple rule-of-thumb that is related to statistical uncertainty that arises in estimating volatility from a discrete number of observations: the typical error in the replication value is proportional to the vega of the option (its volatility sensitivity, sometimes also called kappa) multiplied by the uncertainty in its observed volatility." 24 | ] 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "metadata": {}, 29 | "source": [ 30 | "## Simulating The Hedging Scenario and Calculating the Replication Error" 31 | ] 32 | }, 33 | { 34 | "cell_type": "markdown", 35 | "metadata": {}, 36 | "source": [ 37 | "Suppose at time t = 0 the option hedger sells a European put with strike K and expiration t = T, and receives the Black-Scholes value as the options premium. We assume that the world operates within the Black-Scholes framework: the underlying stock price evolves lognormally with a fixed known volatility $\\sigma$ that stays constant throughout time. For simplicity, we assume the stock pays no dividends.\n", 38 | "The hedger now follows a Black-Scholes hedging strategy, rehedging at discrete, evenly spaced time intervals as the underlying stock changes. At expiration, the hedger delivers the option payoff to the option holder, and unwinds the hedge. We are interested in understanding the final profit or loss of this strategy:" 39 | ] 40 | }, 41 | { 42 | "cell_type": "markdown", 43 | "metadata": {}, 44 | "source": [ 45 | "Value of Final P&L = Black-Scholes hedge at T - Final option payoff" 46 | ] 47 | }, 48 | { 49 | "cell_type": "markdown", 50 | "metadata": {}, 51 | "source": [ 52 | "### Time to start coding" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": 1, 58 | "metadata": { 59 | "collapsed": true 60 | }, 61 | "outputs": [], 62 | "source": [ 63 | "from __future__ import division" 64 | ] 65 | }, 66 | { 67 | "cell_type": "markdown", 68 | "metadata": {}, 69 | "source": [ 70 | "Import modules" 71 | ] 72 | }, 73 | { 74 | "cell_type": "code", 75 | "execution_count": 2, 76 | "metadata": { 77 | "collapsed": false 78 | }, 79 | "outputs": [ 80 | { 81 | "name": "stderr", 82 | "output_type": "stream", 83 | "text": [ 84 | "/Users/marcoscscarreira/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n", 85 | " warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n" 86 | ] 87 | } 88 | ], 89 | "source": [ 90 | "import numpy as np\n", 91 | "import matplotlib.pyplot as plt\n", 92 | "import pandas as pd\n", 93 | "import scipy.stats as st" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": 3, 99 | "metadata": { 100 | "collapsed": false 101 | }, 102 | "outputs": [], 103 | "source": [ 104 | "%matplotlib inline" 105 | ] 106 | }, 107 | { 108 | "cell_type": "markdown", 109 | "metadata": {}, 110 | "source": [ 111 | "We'll start with the simulation of paths, and that starts with random samples from a standard normal distribution" 112 | ] 113 | }, 114 | { 115 | "cell_type": "code", 116 | "execution_count": 4, 117 | "metadata": { 118 | "collapsed": false 119 | }, 120 | "outputs": [], 121 | "source": [ 122 | "nmdt=pd.Series(np.random.standard_normal(10000))" 123 | ] 124 | }, 125 | { 126 | "cell_type": "markdown", 127 | "metadata": {}, 128 | "source": [ 129 | "They look normal to me:" 130 | ] 131 | }, 132 | { 133 | "cell_type": "code", 134 | "execution_count": 5, 135 | "metadata": { 136 | "collapsed": false 137 | }, 138 | "outputs": [ 139 | { 140 | "data": { 141 | "text/plain": [ 142 | "" 143 | ] 144 | }, 145 | "execution_count": 5, 146 | "metadata": {}, 147 | "output_type": "execute_result" 148 | }, 149 | { 150 | "data": { 151 | "image/png": "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\nSwi5GpwAAAAAAElFTkSuQmCC\n", 152 | "text/plain": [ 153 | "" 154 | ] 155 | }, 156 | "metadata": {}, 157 | "output_type": "display_data" 158 | } 159 | ], 160 | "source": [ 161 | "nmdt.plot(kind='hist', bins=20)" 162 | ] 163 | }, 164 | { 165 | "cell_type": "markdown", 166 | "metadata": {}, 167 | "source": [ 168 | "Auxiliary functions" 169 | ] 170 | }, 171 | { 172 | "cell_type": "code", 173 | "execution_count": 6, 174 | "metadata": { 175 | "collapsed": true 176 | }, 177 | "outputs": [], 178 | "source": [ 179 | "def ca(x,size):\n", 180 | " y=np.empty(size)\n", 181 | " y.fill(x)\n", 182 | " return y" 183 | ] 184 | }, 185 | { 186 | "cell_type": "code", 187 | "execution_count": 7, 188 | "metadata": { 189 | "collapsed": true 190 | }, 191 | "outputs": [], 192 | "source": [ 193 | "def ppzero(s):\n", 194 | " return pd.Series(pd.Series.append(pd.Series([0]),s).values)" 195 | ] 196 | }, 197 | { 198 | "cell_type": "markdown", 199 | "metadata": {}, 200 | "source": [ 201 | "Monte Carlo path generator" 202 | ] 203 | }, 204 | { 205 | "cell_type": "code", 206 | "execution_count": 8, 207 | "metadata": { 208 | "collapsed": false 209 | }, 210 | "outputs": [], 211 | "source": [ 212 | "def mcpath(nsteps, S0, drift, vol, t):\n", 213 | " # generate random numbers\n", 214 | " nmdr=pd.Series(np.random.standard_normal(nsteps))\n", 215 | " # find each step\n", 216 | " dt=t*1/nsteps\n", 217 | " ts=pd.Series(ca(dt,nsteps))\n", 218 | " ts0=ppzero(ts)\n", 219 | " s1=(drift-(vol**2)/2)*dt\n", 220 | " s2=vol*np.sqrt(dt)\n", 221 | " steps=s1*pd.Series(ca(1,nsteps))+s2*nmdr\n", 222 | " steps0=ppzero(steps)\n", 223 | " # add steps\n", 224 | " cmsteps=steps0.cumsum()\n", 225 | " cts=ts0.cumsum()\n", 226 | " # convert steps to path\n", 227 | " Sj=S0*np.exp(cmsteps.values)\n", 228 | " # return timeseries [t,St]\n", 229 | " return pd.Series(Sj,index=cts.values)" 230 | ] 231 | }, 232 | { 233 | "cell_type": "code", 234 | "execution_count": 9, 235 | "metadata": { 236 | "collapsed": false 237 | }, 238 | "outputs": [], 239 | "source": [ 240 | "testpath=mcpath(10,100,0.10,0.20,1)" 241 | ] 242 | }, 243 | { 244 | "cell_type": "code", 245 | "execution_count": 10, 246 | "metadata": { 247 | "collapsed": false 248 | }, 249 | "outputs": [ 250 | { 251 | "data": { 252 | "text/plain": [ 253 | "" 254 | ] 255 | }, 256 | "execution_count": 10, 257 | "metadata": {}, 258 | "output_type": "execute_result" 259 | }, 260 | { 261 | "data": { 262 | "image/png": "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\nif8HlLZZENB8JmoAAAAASUVORK5CYII=\n", 263 | "text/plain": [ 264 | "" 265 | ] 266 | }, 267 | "metadata": {}, 268 | "output_type": "display_data" 269 | } 270 | ], 271 | "source": [ 272 | "testpath.plot()" 273 | ] 274 | }, 275 | { 276 | "cell_type": "markdown", 277 | "metadata": {}, 278 | "source": [ 279 | "Monte Carlo path generator with downsampling (returns both paths, original and downsampled)" 280 | ] 281 | }, 282 | { 283 | "cell_type": "code", 284 | "execution_count": 11, 285 | "metadata": { 286 | "collapsed": false 287 | }, 288 | "outputs": [], 289 | "source": [ 290 | "def mcpathsmpl(nsteps, smpl, S0, drift, vol, t):\n", 291 | " # generate random numbers\n", 292 | " nmdr=pd.Series(np.random.standard_normal(nsteps))\n", 293 | " # find each step\n", 294 | " dt=t*1/nsteps\n", 295 | " ts=pd.Series(ca(dt,nsteps))\n", 296 | " ts0=ppzero(ts)\n", 297 | " s1=(drift-(vol**2)/2)*dt\n", 298 | " s2=vol*np.sqrt(dt)\n", 299 | " steps=s1*pd.Series(ca(1,nsteps))+s2*nmdr\n", 300 | " steps0=ppzero(steps)\n", 301 | " # add steps\n", 302 | " cmsteps=steps0.cumsum()\n", 303 | " cts=ts0.cumsum()\n", 304 | " # convert steps to path\n", 305 | " Sj=S0*np.exp(cmsteps.values)\n", 306 | " # create timeseries [t,St]\n", 307 | " ans1=pd.Series(Sj,index=cts.values)\n", 308 | " # create timeseries [t,St] downsampled\n", 309 | " ans2=pd.Series(Sj.take(range(0,nsteps+1,smpl)),index=cts.values.take(range(0,nsteps+1,smpl)))\n", 310 | " return [ans1, ans2]" 311 | ] 312 | }, 313 | { 314 | "cell_type": "code", 315 | "execution_count": 12, 316 | "metadata": { 317 | "collapsed": false 318 | }, 319 | "outputs": [], 320 | "source": [ 321 | "testpath2=mcpathsmpl(20,4,100,0.10,0.20,1)" 322 | ] 323 | }, 324 | { 325 | "cell_type": "markdown", 326 | "metadata": {}, 327 | "source": [ 328 | "Monte Carlo paths generator with downsampling (returns for each desired path the original and downsampled path)" 329 | ] 330 | }, 331 | { 332 | "cell_type": "code", 333 | "execution_count": 15, 334 | "metadata": { 335 | "collapsed": true 336 | }, 337 | "outputs": [], 338 | "source": [ 339 | "def mcpathssmpl(npaths, nsteps, smpl, S0, drift, vol, t):\n", 340 | " # generate npaths using mcpath\n", 341 | " paths=[mcpathsmpl(nsteps, smpl, S0, drift, vol, t) for j in range(npaths)]\n", 342 | " return paths" 343 | ] 344 | }, 345 | { 346 | "cell_type": "code", 347 | "execution_count": 16, 348 | "metadata": { 349 | "collapsed": true 350 | }, 351 | "outputs": [], 352 | "source": [ 353 | "testpath3=mcpathssmpl(3,20,4,100,0.10,0.20,1)" 354 | ] 355 | }, 356 | { 357 | "cell_type": "markdown", 358 | "metadata": {}, 359 | "source": [ 360 | "Defining the Black&Scholes function" 361 | ] 362 | }, 363 | { 364 | "cell_type": "code", 365 | "execution_count": 33, 366 | "metadata": { 367 | "collapsed": true 368 | }, 369 | "outputs": [], 370 | "source": [ 371 | "def bsv(phi,S,K,r,q,vol,t):\n", 372 | " fwd=S*np.exp((r-q)*t)\n", 373 | " efv=t*(vol**2)\n", 374 | " # calculate d1 and d2\n", 375 | " d1=(np.log(fwd/K)+(efv/2))/(np.sqrt(efv))\n", 376 | " d2=(np.log(fwd/K)-(efv/2))/(np.sqrt(efv))\n", 377 | " # calculate N(d1) and N(d2)\n", 378 | " Nd1=st.norm.cdf(phi*d1)\n", 379 | " Nd2=st.norm.cdf(phi*d2)\n", 380 | " # calculate premium, delta\n", 381 | " de=phi*np.exp(-q*t)*Nd1\n", 382 | " pr=phi*S*np.exp(-q*t)*Nd1-phi*K*np.exp(-r*t)*Nd2\n", 383 | " return [pr,de]" 384 | ] 385 | }, 386 | { 387 | "cell_type": "markdown", 388 | "metadata": {}, 389 | "source": [ 390 | "Defining parameters" 391 | ] 392 | }, 393 | { 394 | "cell_type": "code", 395 | "execution_count": 164, 396 | "metadata": { 397 | "collapsed": true 398 | }, 399 | "outputs": [], 400 | "source": [ 401 | "S0=100\n", 402 | "phi=1\n", 403 | "K=100\n", 404 | "r=0.05\n", 405 | "q=0\n", 406 | "vol=0.20\n", 407 | "T=1/12\n", 408 | "nst1=21\n", 409 | "smpl=4\n", 410 | "nst2=nst1*smpl\n", 411 | "npth=50000" 412 | ] 413 | }, 414 | { 415 | "cell_type": "code", 416 | "execution_count": 39, 417 | "metadata": { 418 | "collapsed": false 419 | }, 420 | "outputs": [ 421 | { 422 | "data": { 423 | "text/plain": [ 424 | "[[2.5120670860398917, 0.54023917666658061],\n", 425 | " [2.0962672705508751, -0.45976082333341939]]" 426 | ] 427 | }, 428 | "execution_count": 39, 429 | "metadata": {}, 430 | "output_type": "execute_result" 431 | } 432 | ], 433 | "source": [ 434 | "[bsv(phi,S0,K,r,q,vol,T),bsv(-phi,S0,K,r,q,vol,T)]" 435 | ] 436 | }, 437 | { 438 | "cell_type": "code", 439 | "execution_count": 40, 440 | "metadata": { 441 | "collapsed": false 442 | }, 443 | "outputs": [ 444 | { 445 | "data": { 446 | "text/plain": [ 447 | "2.5120670860398917" 448 | ] 449 | }, 450 | "execution_count": 40, 451 | "metadata": {}, 452 | "output_type": "execute_result" 453 | } 454 | ], 455 | "source": [ 456 | "callpr=bsv(phi,S0,K,r,q,vol,T)[0]\n", 457 | "callpr" 458 | ] 459 | }, 460 | { 461 | "cell_type": "markdown", 462 | "metadata": {}, 463 | "source": [ 464 | "If the hedger had followed the exact Black-Scholes replication strategy, rehedging continuously as the underlying stock evolved towards its final value at expiration, then, no matter what path the stock took, the final P&L would be exactly zero. This is the essence of the statement that the Black-Scholes formula provides the ''fair'' value of the option. When the replication strategy deviates from the exact Black-Scholes method, the final P&L may deviate from zero. This deviation is called the replication error.\n", 465 | "When the hedger rebalances at discrete rather than continuous intervals, the hedge is imperfect and the replication is inexact. Sometimes this imperfection favors the P&L, sometimes it penalizes it. The more often hedging occurs, the smaller the replication error.\n", 466 | "To examine the range of possibilities, we have carried out Monte Carlo simulations in which we evaluate the outcome of the discrete hedging strategy over 50,000 different, randomly generated scenarios of future stock price evolution, assuming that the future stock price grows at a continuously compounded rate equal to the discount rate r = 5%, and with a volatility $\\sigma$ = 20%. In each scenario we carry out N rehedging trades spaced evenly in time over the life of the option, using the Black-Scholes hedge ratio (also calculated with r = 5%, and $\\sigma$ = 20%).\n", 467 | "Exhibit 1 shows histograms for the final P&L for a one-month at-the-money put hedged, at discrete times, to expiration. The initial stock price is taken to be S0 = 100, with the strike K also at a level of 100 and an option time to expiration of T = 1/12 years. The fair Black-Scholes value of the option is C0=2.512. In Exhibit 1a, the option is hedged, approximately once per business day; in Exhibit 1b the option is hedged 84 times, or four times as frequently. Table 1 summarizes the mean and standard deviation of the final P&L from the 50,000 scenario.\n", 468 | "We can draw several conclusions from these results. First, within the statistical error of the simulations, the average final profit/loss is zero. Hedging discretely does not bias the outcome in either direction when all other parameters (volatility, rates, dividends) are known correctly. Second, hedging more frequently reduces the standard deviation of the P&L. The standard deviation, as a fraction of the option premium is 16.3% for N = 21, and 8.1% for N = 84; hedging four times as frequently roughly halves the standard deviation of the replication error. Third, the final distribution of replication error resembles a normal distribution, which means characterizing risk in terms of a standard deviation of the distribution makes good sense. Even though the standard deviation is 16% of premium for daily rehedging, there is a normally distributed probability of much larger hedging errors, both positive and negative." 469 | ] 470 | }, 471 | { 472 | "cell_type": "code", 473 | "execution_count": 43, 474 | "metadata": { 475 | "collapsed": false 476 | }, 477 | "outputs": [], 478 | "source": [ 479 | "allpaths=mcpathssmpl(npth,nst2,smpl,S0,r-q,vol,T)" 480 | ] 481 | }, 482 | { 483 | "cell_type": "code", 484 | "execution_count": 253, 485 | "metadata": { 486 | "collapsed": true 487 | }, 488 | "outputs": [], 489 | "source": [ 490 | "allpaths84=[allpaths[j][0] for j in range(npth)]\n", 491 | "allpaths21=[allpaths[j][1] for j in range(npth)]" 492 | ] 493 | }, 494 | { 495 | "cell_type": "code", 496 | "execution_count": 44, 497 | "metadata": { 498 | "collapsed": false 499 | }, 500 | "outputs": [ 501 | { 502 | "data": { 503 | "text/plain": [ 504 | "" 505 | ] 506 | }, 507 | "execution_count": 44, 508 | "metadata": {}, 509 | "output_type": "execute_result" 510 | }, 511 | { 512 | "data": { 513 | "image/png": "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\n", 514 | "text/plain": [ 515 | "" 516 | ] 517 | }, 518 | "metadata": {}, 519 | "output_type": "display_data" 520 | } 521 | ], 522 | "source": [ 523 | "allpaths[0][0].plot()\n", 524 | "allpaths[0][1].plot()" 525 | ] 526 | }, 527 | { 528 | "cell_type": "code", 529 | "execution_count": 254, 530 | "metadata": { 531 | "collapsed": false 532 | }, 533 | "outputs": [ 534 | { 535 | "data": { 536 | "text/plain": [ 537 | "" 538 | ] 539 | }, 540 | "execution_count": 254, 541 | "metadata": {}, 542 | "output_type": "execute_result" 543 | }, 544 | { 545 | "data": { 546 | "image/png": "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\n", 547 | "text/plain": [ 548 | "" 549 | ] 550 | }, 551 | "metadata": {}, 552 | "output_type": "display_data" 553 | } 554 | ], 555 | "source": [ 556 | "allpaths84[0].plot()\n", 557 | "allpaths21[0].plot()" 558 | ] 559 | }, 560 | { 561 | "cell_type": "code", 562 | "execution_count": null, 563 | "metadata": { 564 | "collapsed": true 565 | }, 566 | "outputs": [], 567 | "source": [ 568 | "# calculate portfolio given path\n", 569 | "# calculate P&L and cashflow of portfolio" 570 | ] 571 | }, 572 | { 573 | "cell_type": "code", 574 | "execution_count": 89, 575 | "metadata": { 576 | "collapsed": false 577 | }, 578 | "outputs": [], 579 | "source": [ 580 | "def calcpath(path,phi,K,r,q,vol,T):\n", 581 | " ttm=T-path.index\n", 582 | " bsvpath=np.array([[path.index[j],path.values[j]]+bsv(phi,path.values[j],K,r,q,vol,ttm[j])\\\n", 583 | " for j in range(len(path))])\n", 584 | " return pd.DataFrame(bsvpath,columns=['time','spot','premium','delta'])" 585 | ] 586 | }, 587 | { 588 | "cell_type": "code", 589 | "execution_count": 255, 590 | "metadata": { 591 | "collapsed": true 592 | }, 593 | "outputs": [], 594 | "source": [ 595 | "def filldf(path,phi,K,r,q,vol,T):\n", 596 | " nstp=len(path)-1\n", 597 | " # calculate t,S(t),premium(t),delta(t)\n", 598 | " df=calcpath(path,phi,K,r,q,vol,T)\n", 599 | " # cashflows for the option\n", 600 | " df['cfwprem']=0\n", 601 | " df.loc[0,'cfwprem']=-df['premium'][0]\n", 602 | " df.loc[nstp,'cfwprem']=df['premium'][nstp]\n", 603 | " df.loc[nstp,'premium']=0\n", 604 | " # calculate time intervals dt\n", 605 | " df['timechg']=df['time'].diff()\n", 606 | " df.loc[0,'timechg']=0\n", 607 | " # calculate changes in delta\n", 608 | " df.loc[nstp,'delta']=0\n", 609 | " df['dltchg']=df['delta'].diff()\n", 610 | " df.loc[0,'dltchg']=0\n", 611 | " # calculate changes in spot price\n", 612 | " df['spotchg']=df['spot'].diff()\n", 613 | " df.loc[0,'spotchg']=0\n", 614 | " # cashflows for the asset\n", 615 | " df['cfwspot']=0\n", 616 | " df.loc[0,'cfwspot']=df['delta'][0]*df['spot'][0]\n", 617 | " df.loc[1:,'cfwspot']=df['dltchg'][1:]*df['spot'][1:]\n", 618 | " # dividend cashflows\n", 619 | " df['cfwdivid']=0\n", 620 | " df.loc[1:,'cfwdivid']=-((df['delta'][0:nstp]*df['spot'][0:nstp]).values)*(np.exp(q*df['timechg'][1:].values)-1)\n", 621 | " # cashflows before interest\n", 622 | " df['cfwprer']=df['cfwprem']+df['cfwspot']+df['cfwdivid']\n", 623 | " # interest and consolidation of cashflows\n", 624 | " df['balance']=0\n", 625 | " df.loc[0,'balance']=df['cfwprer'][0]\n", 626 | " for j in range(1,nstp+1):\n", 627 | " df.loc[j,'balance']=df['balance'][j-1]*(np.exp(r*df['timechg'][j]))+df['cfwprer'][j]\n", 628 | " # portfolio\n", 629 | " df['portf']=df['premium']-df['delta']*df['spot']+df['balance']\n", 630 | " # consolidated discount factor\n", 631 | " return df" 632 | ] 633 | }, 634 | { 635 | "cell_type": "code", 636 | "execution_count": 215, 637 | "metadata": { 638 | "collapsed": false 639 | }, 640 | "outputs": [], 641 | "source": [ 642 | "#filldf(allpaths[0][0],phi,K,r,q,vol,T)" 643 | ] 644 | }, 645 | { 646 | "cell_type": "code", 647 | "execution_count": 219, 648 | "metadata": { 649 | "collapsed": false 650 | }, 651 | "outputs": [], 652 | "source": [ 653 | "def portfolio(path,phi,K,r,q,vol,T):\n", 654 | " fulldf=filldf(path,phi,K,r,q,vol,T)\n", 655 | " return pd.Series(fulldf['portf'].values)" 656 | ] 657 | }, 658 | { 659 | "cell_type": "code", 660 | "execution_count": 227, 661 | "metadata": { 662 | "collapsed": false 663 | }, 664 | "outputs": [], 665 | "source": [ 666 | "#portfolio(allpaths[0][0],phi,K,r,q,vol,T)" 667 | ] 668 | }, 669 | { 670 | "cell_type": "code", 671 | "execution_count": 257, 672 | "metadata": { 673 | "collapsed": false 674 | }, 675 | "outputs": [], 676 | "source": [ 677 | "def finalpl(path,phi,K,r,q,vol,T):\n", 678 | " portf=portfolio(path,phi,K,r,q,vol,T)\n", 679 | " return portf[len(path)-1]" 680 | ] 681 | }, 682 | { 683 | "cell_type": "code", 684 | "execution_count": 240, 685 | "metadata": { 686 | "collapsed": false 687 | }, 688 | "outputs": [ 689 | { 690 | "data": { 691 | "text/plain": [ 692 | "" 693 | ] 694 | }, 695 | "execution_count": 240, 696 | "metadata": {}, 697 | "output_type": "execute_result" 698 | }, 699 | { 700 | "data": { 701 | "image/png": "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\nBEHQIfwLittFVSvqmboAAAAASUVORK5CYII=\n", 702 | "text/plain": [ 703 | "" 704 | ] 705 | }, 706 | "metadata": {}, 707 | "output_type": "display_data" 708 | } 709 | ], 710 | "source": [ 711 | "allpaths[0][0].plot()\n", 712 | "allpaths[1][0].plot()" 713 | ] 714 | }, 715 | { 716 | "cell_type": "code", 717 | "execution_count": 258, 718 | "metadata": { 719 | "collapsed": false 720 | }, 721 | "outputs": [ 722 | { 723 | "data": { 724 | "text/plain": [ 725 | "0.36989658890500721" 726 | ] 727 | }, 728 | "execution_count": 258, 729 | "metadata": {}, 730 | "output_type": "execute_result" 731 | } 732 | ], 733 | "source": [ 734 | "finalpl(allpaths[0][0],phi,K,r,q,vol,T)" 735 | ] 736 | }, 737 | { 738 | "cell_type": "code", 739 | "execution_count": 259, 740 | "metadata": { 741 | "collapsed": false 742 | }, 743 | "outputs": [ 744 | { 745 | "data": { 746 | "text/plain": [ 747 | "0.41098067330426957" 748 | ] 749 | }, 750 | "execution_count": 259, 751 | "metadata": {}, 752 | "output_type": "execute_result" 753 | } 754 | ], 755 | "source": [ 756 | "finalpl(allpaths[1][0],phi,K,r,q,vol,T)" 757 | ] 758 | }, 759 | { 760 | "cell_type": "code", 761 | "execution_count": 246, 762 | "metadata": { 763 | "collapsed": false 764 | }, 765 | "outputs": [], 766 | "source": [ 767 | "def finalplpaths(paths,phi,K,r,q,vol,T):\n", 768 | " pls=np.array([finalpl(path,phi,K,r,q,vol,T) for path in paths])\n", 769 | " return pd.Series(pls)" 770 | ] 771 | }, 772 | { 773 | "cell_type": "markdown", 774 | "metadata": {}, 775 | "source": [ 776 | "This takes forever to run" 777 | ] 778 | }, 779 | { 780 | "cell_type": "code", 781 | "execution_count": 249, 782 | "metadata": { 783 | "collapsed": false 784 | }, 785 | "outputs": [], 786 | "source": [ 787 | "pl84=finalplpaths(allpaths84,phi,K,r,q,vol,T)" 788 | ] 789 | }, 790 | { 791 | "cell_type": "markdown", 792 | "metadata": {}, 793 | "source": [ 794 | "This takes 1/4 of forever to run" 795 | ] 796 | }, 797 | { 798 | "cell_type": "code", 799 | "execution_count": 260, 800 | "metadata": { 801 | "collapsed": false 802 | }, 803 | "outputs": [], 804 | "source": [ 805 | "pl21=finalplpaths(allpaths21,phi,K,r,q,vol,T)" 806 | ] 807 | }, 808 | { 809 | "cell_type": "markdown", 810 | "metadata": {}, 811 | "source": [ 812 | "## Exhibit 1: Histograms for the final profit/loss of the hedging strategy for (a) 21 and (b) 84 rebalancing trades." 813 | ] 814 | }, 815 | { 816 | "cell_type": "markdown", 817 | "metadata": {}, 818 | "source": [ 819 | "(a)" 820 | ] 821 | }, 822 | { 823 | "cell_type": "code", 824 | "execution_count": 251, 825 | "metadata": { 826 | "collapsed": false 827 | }, 828 | "outputs": [ 829 | { 830 | "data": { 831 | "text/plain": [ 832 | "" 833 | ] 834 | }, 835 | "execution_count": 251, 836 | "metadata": {}, 837 | "output_type": "execute_result" 838 | }, 839 | { 840 | "data": { 841 | "image/png": "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\n", 842 | "text/plain": [ 843 | "" 844 | ] 845 | }, 846 | "metadata": {}, 847 | "output_type": "display_data" 848 | } 849 | ], 850 | "source": [ 851 | "(pl84).plot(kind='hist', bins=30)" 852 | ] 853 | }, 854 | { 855 | "cell_type": "markdown", 856 | "metadata": {}, 857 | "source": [ 858 | "(b)" 859 | ] 860 | }, 861 | { 862 | "cell_type": "code", 863 | "execution_count": 261, 864 | "metadata": { 865 | "collapsed": false 866 | }, 867 | "outputs": [ 868 | { 869 | "data": { 870 | "text/plain": [ 871 | "" 872 | ] 873 | }, 874 | "execution_count": 261, 875 | "metadata": {}, 876 | "output_type": "execute_result" 877 | }, 878 | { 879 | "data": { 880 | "image/png": "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\nAAAAAElFTkSuQmCC\n", 881 | "text/plain": [ 882 | "" 883 | ] 884 | }, 885 | "metadata": {}, 886 | "output_type": "display_data" 887 | } 888 | ], 889 | "source": [ 890 | "(pl21).plot(kind='hist', bins=30)" 891 | ] 892 | }, 893 | { 894 | "cell_type": "markdown", 895 | "metadata": { 896 | "collapsed": true 897 | }, 898 | "source": [ 899 | "## Table 1: Statistical summary of the simulated profit/loss. The fair Black-Scholes value of the option is 2.512" 900 | ] 901 | }, 902 | { 903 | "cell_type": "code", 904 | "execution_count": 268, 905 | "metadata": { 906 | "collapsed": false 907 | }, 908 | "outputs": [ 909 | { 910 | "data": { 911 | "text/html": [ 912 | "
\n", 913 | "\n", 914 | " \n", 915 | " \n", 916 | " \n", 917 | " \n", 918 | " \n", 919 | " \n", 920 | " \n", 921 | " \n", 922 | " \n", 923 | " \n", 924 | " \n", 925 | " \n", 926 | " \n", 927 | " \n", 928 | " \n", 929 | " \n", 930 | " \n", 931 | " \n", 932 | " \n", 933 | " \n", 934 | " \n", 935 | " \n", 936 | " \n", 937 | " \n", 938 | " \n", 939 | " \n", 940 | " \n", 941 | " \n", 942 | "
Mean P&LStandard Dev. of P&LStDev of P&L as a % of option premium
Number of trades
210.0006710.42732417.010864
840.0005520.2169448.636087
\n", 943 | "
" 944 | ], 945 | "text/plain": [ 946 | " Mean P&L Standard Dev. of P&L \\\n", 947 | "Number of trades \n", 948 | "21 0.000671 0.427324 \n", 949 | "84 0.000552 0.216944 \n", 950 | "\n", 951 | " StDev of P&L as a % of option premium \n", 952 | "Number of trades \n", 953 | "21 17.010864 \n", 954 | "84 8.636087 " 955 | ] 956 | }, 957 | "execution_count": 268, 958 | "metadata": {}, 959 | "output_type": "execute_result" 960 | } 961 | ], 962 | "source": [ 963 | "mpl84=pl84.mean()\n", 964 | "mpl21=pl21.mean()\n", 965 | "stpl84=pl84.std()\n", 966 | "stpl21=pl21.std()\n", 967 | "stats21=np.array([mpl21,stpl21,100*stpl21/callpr])\n", 968 | "stats84=np.array([mpl84,stpl84,100*stpl84/callpr])\n", 969 | "dfsumm=pd.DataFrame([stats21,stats84],index=[nst1,nst2],\\\n", 970 | " columns=['Mean P&L', 'Standard Dev. of P&L', 'StDev of P&L as a % of option \\\n", 971 | "premium'])\n", 972 | "dfsumm.index.name='Number of trades'\n", 973 | "dfsumm" 974 | ] 975 | }, 976 | { 977 | "cell_type": "markdown", 978 | "metadata": {}, 979 | "source": [ 980 | "## Understanding the Results Intuitively" 981 | ] 982 | }, 983 | { 984 | "cell_type": "markdown", 985 | "metadata": {}, 986 | "source": [ 987 | "The simulation plots of Exhibit 1 are a compilation of numerical results. We have derived a simple analytical rule that provides good quantitative agreement with these results and lends itself to a simple intuitive interpretation; the standard deviation of the final P&L is given, to a good approximation, by:" 988 | ] 989 | }, 990 | { 991 | "cell_type": "markdown", 992 | "metadata": {}, 993 | "source": [ 994 | "(1) $$\\sigma _{PL}=\\sqrt{\\frac{\\pi }{4}} \\kappa \\frac{\\sigma}{\\sqrt{N}}$$" 995 | ] 996 | }, 997 | { 998 | "cell_type": "markdown", 999 | "metadata": {}, 1000 | "source": [ 1001 | "Here $\\kappa$ is the options vega -- the standard Black- Scholes sensitivity of the option price with respect to volatility, evaluated at the initial spot and trading date:" 1002 | ] 1003 | }, 1004 | { 1005 | "cell_type": "markdown", 1006 | "metadata": { 1007 | "collapsed": true 1008 | }, 1009 | "source": [ 1010 | "(2) $$\\kappa =\\frac{dC}{d\\sigma }\\left(t=0,S=S_0\\right)=\\frac{S_0 \\sqrt{T} \\exp \\left(-d_1^2\\right)}{\\sqrt{2 \\pi }}$$" 1011 | ] 1012 | }, 1013 | { 1014 | "cell_type": "markdown", 1015 | "metadata": {}, 1016 | "source": [ 1017 | "where $d_1$ is given the formula:" 1018 | ] 1019 | }, 1020 | { 1021 | "cell_type": "markdown", 1022 | "metadata": { 1023 | "collapsed": true 1024 | }, 1025 | "source": [ 1026 | "(3) $$d_1=\\frac{\\log \\left(\\frac{S_0}{K}\\right)+T \\left(r+\\frac{\\sigma ^2}{2}\\right)}{\\sigma \\sqrt{T}}$$" 1027 | ] 1028 | }, 1029 | { 1030 | "cell_type": "markdown", 1031 | "metadata": {}, 1032 | "source": [ 1033 | "as is used in the Black-Scholes formula. The number of times the hedger can rebalance is given by N. If you rebalance four times as frequently, you halve the typical size of the hedging error. The numerical prefactor, $\\sqrt{\\frac{\\pi }{4}}$ is slightly less than one: 0.886; for a rough estimate it can be taken to be one.\n", 1034 | "Using a standard Black-Scholes calculator, it easy to verify that the initial vega of the option we have analyzed is $\\kappa$ = 0.115/vol point. Once you know the relevant vega, it is easy to apply equation 1; for N = 21, we would estimate $\\sigma_{PL}$ = 0.443, while $\\sigma_{PL}$ = 0.222. These estimates are quite close to the simulation results of Table 1.\n", 1035 | "There is an even simpler way of using this rule for the case of an option that is struck close to the initial spot price. In this case, since the option price itself is approximately proportional to the volatility, the relation expressing the standard deviation of replication error as a multiple of initial option price becomes:" 1036 | ] 1037 | }, 1038 | { 1039 | "cell_type": "markdown", 1040 | "metadata": { 1041 | "collapsed": true 1042 | }, 1043 | "source": [ 1044 | "(4) $$\\frac{\\sigma _{L P\\&}}{C_0}\\approx \\sqrt{\\frac{\\pi }{4}}\\frac{1}{\\sqrt{N}}$$" 1045 | ] 1046 | }, 1047 | { 1048 | "cell_type": "markdown", 1049 | "metadata": {}, 1050 | "source": [ 1051 | "Observe that the right-hand side of this equation only depends on the number of times you hedge. This simpler approximation remains reasonably accurate: $\\sigma_{PL}/C_0$ is 19.3% for N = 21, 9.7% for N = 84.\n", 1052 | "Equation (1) for the replication error is actually a reasonable approximation of a more complicated formula, which we will not derive here. Although the full formula provides better agreement than Equation (1) for options that are far out-of-the-money, have a longer term to expiration, or are priced under higher interest rates, their qualitative behavior is quite similar. In any case, for a wide range of pricing parameters of practical interest (T < 1 year, r < 10%, strikes close enough to spot, say within 0.25 put-delta), the estimates are quite close.\n", 1053 | "There is an intuitive way of understanding Equations (1) and (2). When you hedge intermittently rather than continuously along some path to expiration, you are sampling the underlyer price discretely, and therefore obtaining only an approximate measure of the true volatility of the underlyer. Therefore, the estimated volatility itself will have an error. The histograms of Exhibit 2 show the range of volatilities estimated from each of the 50,000 paths used in the simulation analysis.\n", 1054 | "The volatility measured over all paths is, on average, close to 20%. But there is considerable variation in the volatility measured from discretely sampled prices --- even, as is the case here, when the underlying process really is lognormal with known constant volatility, and no jumps or other deviations are allowed. The discrete sampling itself introduces this error. This error is analogous to the statistical fluctuations that are seen when flipping a fair coin N times -- the measured frequency of heads will on average be 1/2, but there will be variations around the average roughly of size $1/\\sqrt{N}$. The same $\\sqrt{N}$ shows up here: the standard deviation of the measured volatility based on N samples is $\\sigma/\\sqrt{2N}$.\n", 1055 | "Therefore, in an approximate way, the volatility you may actually experience in hedging the option is:" 1056 | ] 1057 | }, 1058 | { 1059 | "cell_type": "markdown", 1060 | "metadata": { 1061 | "collapsed": true 1062 | }, 1063 | "source": [ 1064 | "(5) $$\\sigma _{\\text{sampled}}\\approx \\sigma \\pm \\frac{\\sigma }{\\sqrt{2 N}}$$" 1065 | ] 1066 | }, 1067 | { 1068 | "cell_type": "markdown", 1069 | "metadata": {}, 1070 | "source": [ 1071 | "Consequently, the option price you may capture by replication is an option price corresponding to a volatility somewhere in this range, so that:" 1072 | ] 1073 | }, 1074 | { 1075 | "cell_type": "markdown", 1076 | "metadata": { 1077 | "collapsed": true 1078 | }, 1079 | "source": [ 1080 | "(6) $$c[\\sigma _{\\text{sampled}}]-c[\\sigma]\\approx \\kappa \\left(\\sigma _{\\text{sampled}}-\\sigma \\right)$$" 1081 | ] 1082 | }, 1083 | { 1084 | "cell_type": "markdown", 1085 | "metadata": {}, 1086 | "source": [ 1087 | "where $C[\\sigma]$ is the fair Black-Scholes option price for volatility $\\sigma$. We have used the option vega, $\\kappa$, to approximately account for the option's sensitivity to this error in volatility. As a result, we should expect an average profit/loss of zero and a standard deviation in profit/loss that is proportional to the standard deviation of measured volatility:" 1088 | ] 1089 | }, 1090 | { 1091 | "cell_type": "markdown", 1092 | "metadata": { 1093 | "collapsed": true 1094 | }, 1095 | "source": [ 1096 | "(7) $$\\sigma _{PL}\\approx \\kappa \\frac{\\sigma }{\\sqrt{2 N}}$$" 1097 | ] 1098 | }, 1099 | { 1100 | "cell_type": "markdown", 1101 | "metadata": {}, 1102 | "source": [ 1103 | "Equation (7), except for the slightly different numerical coefficient, agrees with the more rigorous result obtained in Equation (1), and provides an easily understandable heuristic explanation for the behavior of the replication error displayed in Exhibit 1." 1104 | ] 1105 | }, 1106 | { 1107 | "cell_type": "code", 1108 | "execution_count": 23, 1109 | "metadata": { 1110 | "collapsed": true 1111 | }, 1112 | "outputs": [], 1113 | "source": [ 1114 | "def rets(x):\n", 1115 | " y=x.values\n", 1116 | " return pd.Series(y[1:]/y[:-1]-1)" 1117 | ] 1118 | }, 1119 | { 1120 | "cell_type": "code", 1121 | "execution_count": 24, 1122 | "metadata": { 1123 | "collapsed": false 1124 | }, 1125 | "outputs": [ 1126 | { 1127 | "data": { 1128 | "text/plain": [ 1129 | "0.061427075144669385" 1130 | ] 1131 | }, 1132 | "execution_count": 24, 1133 | "metadata": {}, 1134 | "output_type": "execute_result" 1135 | } 1136 | ], 1137 | "source": [ 1138 | "rets(testpath).std()" 1139 | ] 1140 | }, 1141 | { 1142 | "cell_type": "code", 1143 | "execution_count": 25, 1144 | "metadata": { 1145 | "collapsed": true 1146 | }, 1147 | "outputs": [], 1148 | "source": [ 1149 | "def logrets(x):\n", 1150 | " y=x.values\n", 1151 | " return pd.Series(np.log(y[1:]/y[:-1]))" 1152 | ] 1153 | }, 1154 | { 1155 | "cell_type": "code", 1156 | "execution_count": 26, 1157 | "metadata": { 1158 | "collapsed": false 1159 | }, 1160 | "outputs": [ 1161 | { 1162 | "data": { 1163 | "text/plain": [ 1164 | "0.058529757070119585" 1165 | ] 1166 | }, 1167 | "execution_count": 26, 1168 | "metadata": {}, 1169 | "output_type": "execute_result" 1170 | } 1171 | ], 1172 | "source": [ 1173 | "logrets(testpath).std()" 1174 | ] 1175 | }, 1176 | { 1177 | "cell_type": "code", 1178 | "execution_count": 27, 1179 | "metadata": { 1180 | "collapsed": false 1181 | }, 1182 | "outputs": [], 1183 | "source": [ 1184 | "rlzvols84=pd.Series([logrets(j[0]).std() for j in allpaths])" 1185 | ] 1186 | }, 1187 | { 1188 | "cell_type": "code", 1189 | "execution_count": 28, 1190 | "metadata": { 1191 | "collapsed": false 1192 | }, 1193 | "outputs": [], 1194 | "source": [ 1195 | "rlzvols21=pd.Series([logrets(j[1]).std() for j in allpaths])" 1196 | ] 1197 | }, 1198 | { 1199 | "cell_type": "markdown", 1200 | "metadata": {}, 1201 | "source": [ 1202 | "## Exhibit 2: Histograms showing the volatilities estimated from (a) 21 and (b) 84 simulated returns." 1203 | ] 1204 | }, 1205 | { 1206 | "cell_type": "markdown", 1207 | "metadata": {}, 1208 | "source": [ 1209 | "(a)" 1210 | ] 1211 | }, 1212 | { 1213 | "cell_type": "code", 1214 | "execution_count": 29, 1215 | "metadata": { 1216 | "collapsed": false 1217 | }, 1218 | "outputs": [ 1219 | { 1220 | "data": { 1221 | "text/plain": [ 1222 | "" 1223 | ] 1224 | }, 1225 | "execution_count": 29, 1226 | "metadata": {}, 1227 | "output_type": "execute_result" 1228 | }, 1229 | { 1230 | "data": { 1231 | "image/png": "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\nQmCC\n", 1232 | "text/plain": [ 1233 | "" 1234 | ] 1235 | }, 1236 | "metadata": {}, 1237 | "output_type": "display_data" 1238 | } 1239 | ], 1240 | "source": [ 1241 | "(100*np.sqrt(252)*rlzvols21).plot(kind='hist', bins=20)" 1242 | ] 1243 | }, 1244 | { 1245 | "cell_type": "markdown", 1246 | "metadata": { 1247 | "collapsed": true 1248 | }, 1249 | "source": [ 1250 | "(b)" 1251 | ] 1252 | }, 1253 | { 1254 | "cell_type": "code", 1255 | "execution_count": 30, 1256 | "metadata": { 1257 | "collapsed": false 1258 | }, 1259 | "outputs": [ 1260 | { 1261 | "data": { 1262 | "text/plain": [ 1263 | "" 1264 | ] 1265 | }, 1266 | "execution_count": 30, 1267 | "metadata": {}, 1268 | "output_type": "execute_result" 1269 | }, 1270 | { 1271 | "data": { 1272 | "image/png": "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\nAAAAAElFTkSuQmCC\n", 1273 | "text/plain": [ 1274 | "" 1275 | ] 1276 | }, 1277 | "metadata": {}, 1278 | "output_type": "display_data" 1279 | } 1280 | ], 1281 | "source": [ 1282 | "(100*np.sqrt(252*4)*rlzvols84).plot(kind='hist', bins=20)" 1283 | ] 1284 | }, 1285 | { 1286 | "cell_type": "markdown", 1287 | "metadata": {}, 1288 | "source": [ 1289 | "## Trading Volatility and its Risks" 1290 | ] 1291 | }, 1292 | { 1293 | "cell_type": "markdown", 1294 | "metadata": {}, 1295 | "source": [ 1296 | "In this note we have focused on only one of the many risks of hedging options. Intermittent hedging alone can lead to large replication errors and consequent P&L fluctuations, even when all other option market parameters are known. The only way to reduce this particular error is to rehedge more frequently, or to run a more closely matched book whose gamma is close to zero, thereby avoiding the need to rehedge. In practice, however, the advantage gained by increased rehedging must be weighed against the losses due to transaction costs and potentially adverse market impact.\n", 1297 | "Currently, global index volatilities and their skews are extremely high, perhaps making the idea of selling volatility attractive (See the Global Risk and Option Strategy Perspective section in this Quarterly). If implementing this volatility view requires delta-hedging, then our analysis shows that the premium collected by selling options must be at least large enough to leave a cushion for the replication error induced by discrete hedging. This error is not small; expressed in volatility terms, a one-standard-deviation estimate of this error is approximately \\[Sigma] / Sqrt[N], where N is the number of rehedging trades. Including other sources of hedging risk, such as the possibility of jumps, changes in the future levels of volatility, and transaction costs, will only increase the need for an even larger cushion.\n", 1298 | "Investors interested in trading volatility should be aware that there are other there are other strategies that either allow one to take a volatility position outright, such as volatility swaps, or that contain short volatility exposure link to index exposure -- spreads across options of with different strikes or terms to expirations. Volatility swaps are forward contracts on realized volatility. Much like a standard forward contract, the holder of a long position receives at expiration the difference between the actual volatility of the underlyer over the period and a strike that is set at inception. In this way, the investor can implement a view on volatility while leaving the actual mechanics of capture to the option dealer. More information on volatility trading can be found in the references listed at the end of the note, or from your Goldman Sachs equity derivatives salesperson." 1299 | ] 1300 | }, 1301 | { 1302 | "cell_type": "markdown", 1303 | "metadata": {}, 1304 | "source": [ 1305 | "## References" 1306 | ] 1307 | }, 1308 | { 1309 | "cell_type": "markdown", 1310 | "metadata": {}, 1311 | "source": [ 1312 | "1. Investing in Volatility, E. Derman, Michael Kamal, Iraj Kani, John McClure, Cyrus Pirasteh, Joseph Zou, Quantitative Strategies Research Notes (Goldman Sachs & Co.), October 1996.\n", 1313 | "2. Valuing Derivatives with Payoff based on Future Realized Volatility, Emanuel Derman, Michael Kamal, Iraj Kani, Joseph Zou, Global Derivatives Quarterly Review, Equity Derivatives Research (Goldman Sachs & Co., July 1996)" 1314 | ] 1315 | } 1316 | ], 1317 | "metadata": { 1318 | "kernelspec": { 1319 | "display_name": "Python 2", 1320 | "language": "python", 1321 | "name": "python2" 1322 | }, 1323 | "language_info": { 1324 | "codemirror_mode": { 1325 | "name": "ipython", 1326 | "version": 2 1327 | }, 1328 | "file_extension": ".py", 1329 | "mimetype": "text/x-python", 1330 | "name": "python", 1331 | "nbconvert_exporter": "python", 1332 | "pygments_lexer": "ipython2", 1333 | "version": "2.7.10" 1334 | } 1335 | }, 1336 | "nbformat": 4, 1337 | "nbformat_minor": 0 1338 | } 1339 | --------------------------------------------------------------------------------