{ "metadata": { "name": "CEV1", "zanadu": { "authors": [ "Antoine Jacquier" ], "category": "7", "clearance": "Private", "group_name": "Imperial College", "md5": "393ae999e2e18e7935ac1036e3fdb93f", "notebook_id": "2B65A42E-0A35-4BA6-91E3-D2D8BA06232B", "python_name": null, "reviewer_id": null, "status": "WIP" } }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": "Pricing European Call options under the CEV model with $\\beta=1$\n======\n***" }, { "cell_type": "code", "collapsed": false, "input": "from scipy.stats import norm\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.integrate import quad\nimport pandas as pd", "language": "python", "metadata": { "zanadu": { "code_type": "", "is_hidden": true } }, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": "We consider here the Constant Elasticity of Volatility model $\\mathrm{d}S_t = S_t^{1+\\beta} \\mathrm{d}W_t$, with $S_0 = S_0>0$,\nand where $W$ is a one-dimensional standard Brownian motion.\nWe are interested here in the particular case where $\\beta=1$.\nIn this case, however, the stock price process is a strictly positive strict local martingale.\nWe wish to study how this martingale defect impacts the price of European Calls and Puts." }, { "cell_type": "heading", "level": 1, "metadata": { "zanadu": {} }, "source": "European option pricing" }, { "cell_type": "heading", "level": 2, "metadata": { "zanadu": {} }, "source": "Pricing with closed-form formulae" }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": "In the case $\\beta=1$ considered here, European Calls and Puts, defined as expected values of the final payoff (following Cox-Hobson's Theorem), admit closed-form representations:\n\\begin{align*}\n\\mathbb{E}(S_T - K)_+ & = S_0\\Big(\\mathcal{N}(\\kappa - \\delta) - \\mathcal{N}(-\\delta) + \\mathcal{N}(\\delta) - \\mathcal{N}(\\kappa + \\delta)\\Big)\n - K\\left(\\mathcal{N}(\\kappa + \\delta) - \\mathcal{N}(\\delta - \\kappa) + \\frac{n(\\kappa + \\delta) - n(\\kappa - \\delta)}{\\delta}\\right),\\\\\n\\mathbb{E}(K-S_T)_+ & = S_0K\\sqrt{T}\\left(\\zeta_{+}\\mathcal{N}(\\zeta_+) + n(\\zeta_+) - \\zeta_{-}\\mathcal{N}(\\zeta_-) - n(\\zeta_-)\\right),\n\\end{align*}\nwhere \n$$\n\\delta := \\frac{1}{S_0\\sqrt{T}},\\qquad\n\\kappa := \\frac{1}{K\\sqrt{T}},\\qquad\n\\zeta_{\\pm} := \\frac{1}{\\sqrt{T}}\\left(\\pm\\frac{1}{S_0} - \\frac{1}{K}\\right).\n$$" }, { "cell_type": "code", "collapsed": false, "input": "def n(x):\n return np.exp(-x*x/2.)/np.sqrt(2.*pi)\n\ndef cev2Call_closed(S, K, T):\n delta = 1. / (S*np.sqrt(T))\n kappa = 1. / (K*np.sqrt(T))\n tPlus = n(kappa+delta)\n NMinus = norm.cdf(kappa-delta)\n NPlus = norm.cdf(kappa+delta)\n temp1 = NMinus - norm.cdf(-delta) + norm.cdf(delta) - NPlus\n temp2 = NPlus - (1.-NMinus) + (n(kappa+delta) - n(kappa-delta))/delta\n return S*temp1 - K*temp2\n \ndef cev2Put_closed(S, K, T):\n dp = (1./S - 1./K) / np.sqrt(T)\n dm = -(1./S + 1./K) / np.sqrt(T)\n return S*K*np.sqrt(T)*(dp*norm.cdf(dp) + n(dp) - dm*norm.cdf(dm) - n(dm))", "language": "python", "metadata": { "zanadu": { "is_hidden": true } }, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": { "zanadu": {} }, "source": "Pricing by Put-Call parity" }, { "cell_type": "code", "collapsed": false, "input": "def cev2Call_pc(S, K, T): ##By PC Parity\n return S - K + cev2Put_closed(S, K, T)\n\ndef expectS(S, T): ##Computes the expectation of the stock price at time zero\n return S*(1. - 2.*norm.cdf(-1/(S*np.sqrt(T))))", "language": "python", "metadata": { "zanadu": { "is_hidden": true } }, "outputs": [], "prompt_number": 5 }, { "cell_type": "heading", "level": 2, "metadata": { "zanadu": {} }, "source": "Pricing by integration" }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": "In the case $\\beta=1$ (as well as in the other cases for that matter), the density of the CEV is known in closed form:\n$$\n\\mathbb{P}(S_T \\in \\mathrm{d}z) = \\frac{S_0}{z^3}\\left\\{\\exp\\left(-\\frac{\\left(z^{-1} - S_0^{-1}\\right)^2}{2T}\\right) - \\exp\\left(-\\frac{\\left(z^{-1} + S_0^{-1}\\right)^2}{2T}\\right)\\right\\}\\frac{\\mathrm{d}z}{\\sqrt{2\\pi T}},\n\\qquad \\text{for all }z>0.\n$$" }, { "cell_type": "code", "collapsed": false, "input": "def cev2_density(z, s, T):\n temp1 = -(1./z - 1./s)*(1./z - 1./s)/(2.*T)\n temp2 = -(1./z + 1./s)*(1./z + 1./s)/(2.*T)\n return S0*(np.exp(temp1) - np.exp(temp2))/(z*z*z*np.sqrt(2.*pi*T))\n\ndef cev2Put_int(s, K, T):\n def toIntegrate(z, s, K, T):\n return (K-z)*cev2_density(z, s, T)\n return quad(toIntegrate, 1.E-10, K, args=(s, K, T), epsabs=1.49e-15)[0]\n\ndef cev2Call_int(s, K, T):\n def toIntegrate(z, s, K, T):\n return (z-K)*cev2_density(z, s, T)\n return quad(toIntegrate, K, 40.*s, args=(s, K, T), epsabs=1.49e-15)[0]", "language": "python", "metadata": { "zanadu": { "is_hidden": true } }, "outputs": [], "prompt_number": 6 }, { "cell_type": "heading", "level": 2, "metadata": { "zanadu": {} }, "source": "Numerical tests" }, { "cell_type": "code", "collapsed": false, "input": "strikes = arange(0., 2., 0.1)\nS0, T = 1., 1.\nlowerBound = array([max(S0-K, 0.) for K in strikes])\nupperBound = array([S0 for K in strikes])", "language": "python", "metadata": { "zanadu": { "code_type": "" } }, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": "print \"Expectation S_T= \", expectS(S0, T)", "language": "python", "metadata": { "zanadu": { "code_type": "" } }, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": "Expectation S_T= 0.682689492137\n" } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 3, "metadata": { "zanadu": {} }, "source": "Call option" }, { "cell_type": "code", "collapsed": false, "input": "Vcev2Call_pc = [cev2Call_pc(S0, K, T) for K in strikes]\nVcev2Call_int = [cev2Call_int(S0, K, T) for K in strikes]\nVcev2Call_closed = [cev2Call_closed(S0, K, T) for K in strikes]\n\nplt.figure(figsize=(8,4))\nplt.plot(strikes, lowerBound, 'r', linewidth=2)\nplt.plot(strikes, upperBound, 'r', linewidth=2)\nplt.plot(strikes, Vcev2Call_pc, 'ys', label='Parity')\nplt.plot(strikes, Vcev2Call_int, 'g-', label='Integration', linewidth=2)\nplt.plot(strikes, Vcev2Call_closed, 'bo', label='Closed-form')\nplt.fill_between(strikes, lowerBound, upperBound, where=upperBound>=lowerBound, facecolor='grey', interpolate=True)\n#lt.figtext(.95, .9, \"The shaded area corresponds to the no-arbitrage region, \\\n#nwhile the red plot is its boundary $(S_0 - K)_+$\", size=15)\nplt.title(\"Call option prices in the CEV model with \" r\"$\\beta=1$\")\nplt.legend()\nplt.xlabel(u'strike', fontsize=12)\nprint 'The shaded area corresponds to the no-arbitrage region, while the red plot is its boundary $(S_0 - K)_+$'\nplt.show()", "language": "python", "metadata": { "zanadu": { "is_hidden": true } }, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": "The shaded area corresponds to the no-arbitrage region, while the red plot is its boundary $(S_0 - K)_+$\n" }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAeYAAAEeCAYAAABfUra7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVPX+P/DXwCADgYiA7IuCC2YShhK5oaWgJqlpoZlL\nlmYpeb3en6lZWObWzWtqKt5SU8slv5oraC6omaKVRqWCoiCbGoIKIssMn98fylwGZoZtmAVez3n4\ncOacM+e8Z4bhxeecz/kciRBCgIiIiIyCmaELICIiov9hMBMRERkRBjMREZERYTATEREZEQYzERGR\nEWEwExERGREGMxERkRFhMBMRERkRBjMp+fj44MiRIxofN5ROnTrhxIkTDb6dmtBnLbrelr4+L1Mz\nbtw4zJ07t0bL6uI9rO5z5edE1WEwN0LfffcdgoKCYGtrCzc3NwwcOBCnTp2q9nkSiQQSiUTjY13x\n8fHB0aNHlY///PNP9OrVS+fbqQt91lKfbVV+DwHdf17afo58fHxgbW0NW1tb5b+oqCgAQHh4OD76\n6KMq69u9ezdcXV1RVlamsxprojbviy7ew4qfqz4+p9q4cOECZsyYYZBtU81JDV0A6dbSpUuxePFi\nxMTEICwsDM2aNUNcXBz27NmD7t27G7o8AI9+MRnbSLByuRxSqel8HRr6PdT0c7R37150794dEokE\n+/btQ9++fas8d9y4cZgzZw7mzZunMn3Tpk0YPXo0zMz03x4w1M+brj6nCxcu4Nq1awCAK1euYObM\nmbVex9KlS/HTTz/Bzs6u3vVQAxPUaNy9e1fY2NiIHTt2aFxm4cKFwtfXV9ja2oqOHTuKXbt2Kef5\n+PiII0eOaHxc0cWLF0Xv3r1FixYtxJNPPin27NmjnOft7S0WLlwoOnbsKOzt7cX48eNFUVGREEKI\n0aNHCzMzM2FlZSVsbGzEkiVLhLe3tzh8+HCN1/3vf/9bdO7cWdjZ2YlXX31Vue7KtNVRPn/x4sXi\nqaeeEjKZTMjlcpVabty4IYYOHSqcnJyEg4ODmDJlivK5mZmZYtiwYcLJyUm0bt1aLF++XDlv0aJF\nwt3dXdja2or27dtrfA8rv+6avrbK7+Fnn30mhHj0eWl6vrZ6K6vJz5G2n43CwkJhZ2cnTpw4oZyW\nm5srZDKZSExM1PhefPbZZ+Kpp54SNjY24o033hA3b94U4eHhonnz5uKFF14QeXl5QgjtPx9CCPHb\nb7+JwMBAYWtrK1599VURGRkpPvjggxq9D5pe17p168TgwYOVj/38/MSIESOUjz08PMTvv/+ufC2H\nDx+u0+ekTmJiojh27JjycZ8+fTQuW50NGzaIcePG1fn5pB8M5kYkNjZWSKVSoVAoNC7z/fffi+zs\nbCGEENu2bRNPPPGEuHnzphCi5sFcUlIifH19xcKFC0Vpaak4evSosLW1FcnJyUKIR7+YnnrqKZGR\nkSFyc3NF9+7dlb8Yq9tOTdYdHBwssrOzRW5urvD39xdr1qxR+1qrq8Pb21sEBgaKjIwM5S/G8lrk\ncrno3LmzmD59uigsLBRFRUXip59+EkIIoVAoRJcuXcQnn3wiSktLxbVr10SbNm3EwYMHxeXLl4Wn\np6fyPU5LSxMpKSlq61P3PtT0tan7bDS9N2VlZRrrVacmP0c+Pj4qf1RU9tZbb4k333xT+XjNmjUi\nMDBQ6/pCQkLE7du3RWZmpmjVqpUIDAwUFy5cEEVFRaJv375i3rx5orS0VO3PR1JSkhBCiOLiYuHl\n5SWWLVsm5HK52LFjh7CwsBBz586t0fug6Wf+2rVrokWLFkKIR+Hu7e0tPD09hRBCpKSkCHt7e7Xr\nqM3npMnWrVuV93/55RcxdepU5eOUlBTx/vvva/z3ww8/qKxr/fr1DGYTwGBuRDZv3ixcXFxq9Zyn\nn35a2eKoaTCfOHGiynZGjhwpoqOjlc+LiYlRzjtw4IDw9fXVuN6Kj2uy7m+//VY57//9v/8n3n77\nbbWvrSZ1rF+/vspzjhw5In7++Wfh5OSkNpzOnDkjvLy8VKYtWLBAjB8/Xly9elW0atVKHD58WJSU\nlKitS93rrstrq/zZaHq+tnrVqcnPkbe3t7CxsREtWrRQ/vvqq6+U83/66SfRokULUVxcLIQQ4rnn\nnhPLli3TuD4fHx/x3XffKR+//PLL4p133lE+XrFihRgyZIg4efKk1p+P48ePCzc3N5X5zz33nJg7\nd26N3gdtewI8PT3Fb7/9JrZs2SImTpwogoODxeXLl8W6devESy+9pHYdtfmc1MnKyhInT54UiYmJ\nIioqSgwePFhkZWWpXbYm2GI2DaZzUI2q5eDggJycHJSVlWk8jrdx40b85z//QWpqKgCgoKAAOTk5\ntdpOVlYWPD09VaZ5e3sjKytL+bjifC8vL5V59V23i4uL8r6VlZXWdVdXR+VtlUtPT4e3t7fa9zEt\n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\n", "text": "" } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 3, "metadata": { "zanadu": {} }, "source": "Put options" }, { "cell_type": "code", "collapsed": false, "input": "lowerBound = array([max(K-S0, 0.0) for K in strikes])\nupperBound = array([K for K in strikes])\nVcev2Put_closed = [cev2Put_closed(S0, K, T) for K in strikes]\nVcev2Put_int = [cev2Put_int(S0, K, T) for K in strikes]\n\nplt.figure(figsize=(8,4))\nplt.plot(strikes, lowerBound, 'r', linewidth=2)\nplt.plot(strikes, upperBound, 'r', linewidth=2)\nplt.plot(strikes, Vcev2Put_closed, 'bo', label='Closed-form')\nplt.plot(strikes, Vcev2Put_int, 'g-', label='Integration', linewidth=2)\nplt.fill_between(strikes, lowerBound, upperBound, where=upperBound>=lowerBound, facecolor='grey', interpolate=True)\nplt.title(\"Put option prices in the CEV model with \" r\"$\\beta=1$\")\nplt.legend(loc='upper left')\nplt.xlabel(u'strike', fontsize=12)\nprint 'The shaded area corresponds to the no-arbitrage region, while the red plot is its boundary $(K-S_0)_+$'\nplt.show()", "language": "python", "metadata": { "zanadu": { "code_type": "", "is_hidden": true } }, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": "The shaded area corresponds to the no-arbitrage region, while the red plot is its boundary $(K-S_0)_+$\n" }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAeYAAAEeCAYAAABfUra7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VPW9//HXJBMSQgIJgYTsYSdsIRgIO9FbBFEQt1to\nK4h4RatQL9deXGuwVMTrpS5U620rVlGx5aeVLbiHPQEEQUEIBLKQYDCQQAJkP78/Qsbs6yQzk7yf\necwD5pwzZz4zZybvfM/5nu8xGYZhICIiInbBydYFiIiIyE8UzCIiInZEwSwiImJHFMwiIiJ2RMEs\nIiJiRxTMIiIidkTBLCIiYkcUzCIiInZEwSw2NXToULZv327rMtq8Dms+X1hYGF988YVV1tWe3HPP\nPTz99NONWtYa72FD21TbSRpLwdwOhYWF4e7ujqenJ7169WL+/Plcvny5UY/78ssvW7Wu6uv/7rvv\nmDRpUqs9Z2O1dR3Nfb7a3kOTyYTJZLJWabz33ntERUXh6elJQEAA06dPZ9euXZbnr/hsVdwWL14M\nwLRp03jmmWdqrO/jjz/G39+fsrIyq9XYGE15X6zxHlbepm2xnZrim2++4dFHH7XJc0vTKZjbIZPJ\nxKZNm8jLy+PAgQPs37+f5cuXN+pxrTlCa2uvvzlKSkpsXUKTtPZ7uGrVKv7zP/+Tp556inPnzpGe\nns5DDz3Exo0bLc9f8dmquL3yyitAeQt17dq1Ndb5zjvv8Ktf/Qonp7b/dWOrz5u1ttM333zDhx9+\nyIcffsjKlSubtY5Vq1bx7LPPcv78+RbXI21DwdzOBQQEMG3aNI4cOQKAk5MTp06dssyv2N03d+5c\n0tLSmDFjBp6enrz44ou1ru/7778nJiYGb29vhg4davmFDeWthOeff54hQ4bQvXt37r33XgoLCwG4\n++67a11/5d17Da37f//3f4mIiMDLy4vZs2db1l2b+moJCwvjhRdeYPjw4Xh6elJaWlpjN2N6ejq3\n3347vr6+9OjRg0WLFgGQmZnJHXfcga+vL3369OHVV1+1PGblypUEBQXRtWtXBg0aVO/eh8otqsa+\ntrreQ4CDBw/W+fj6aq7s4sWLPPPMM7z22mvMmjWLzp074+zszM0338zzzz9f52upcOutt3L+/Hl2\n7NhhmZaTk8PmzZuZO3dune/Diy++aNkWCxYsICsri5tuuolu3boxZcoUcnNzgfo/HxXvwciRI+na\ntSuzZ8+moKCgye9BdWvWrGHmzJmW+/379+ff//3fLfeDg4M5fPiw5bV88cUXzd5O1X377bfk5uZy\n++23c/vtt/PJJ580qubqlixZwq233tqsx4qNGNLuhIWFGZ9//rlhGIaRlpZmDBkyxPjd735nGIZh\nmEwmIzk52bLsPffcYzz99NOWx33xxRd1rreoqMjo27evsWLFCqO4uNj48ssvDU9PTyMpKckwDMMI\nDQ01hg0bZpw5c8a4cOGCMX78eOOpp56qUlf19VdMa8y6o6OjjbNnzxoXLlwwwsPDjT//+c911lpf\nLaGhoUZkZKRx5swZo6CgoEZtJSUlxvDhw40lS5YYV65cMQoKCoxdu3YZZWVlxsiRI43f//73RnFx\nsXHq1CmjT58+xieffGIcO3bMCA4ONs6ePWsYhmGkpqZWeZ9r20YVz9eU11bbe1jf40tLS+usubq4\nuDjDbDYbpaWl9dZd8dmqzX/8x38Y9913n+X+n//8ZyMyMrLe9Y0dO9Y4d+6ckZGRYfj6+hqRkZHG\nN998YxQUFBg33HCDsWzZMqO4uLjWz8fx48cNwzCMwsJCIyQkxHjppZeMkpISY/369YaLi4vx9NNP\n17vd6ntfDcMwTp06ZXh5eRmGYRgZGRlGaGioERwcbBiGYSQnJxve3t61rqOp26k269ats/x///79\nxqJFiyz3k5OTjccee6zO27/+9a8q61qzZo1xzz331PlcYl8UzO1QaGio4eHhYXh5eRmhoaHGQw89\nZAmglgTz9u3bjV69elWZNmfOHCM2Ntby+DfeeMMyb8uWLUbfvn0t9+sL5sas+91337XM++///m/j\ngQceqLPW+moJCwsz1qxZU2sdhmEYu3fvNnr27FkjoBISEoyQkJAq05577jlj/vz5xsmTJw1fX1/j\n888/N4qKiuqsq7bna8prq+s9rOvx9dVc3dq1a2tsg+oqf7Yqbn/9618t83fu3Gl4eXkZhYWFhmEY\nxrhx44yXXnqpzvWFhYUZ7733nuX+HXfcYfz617+23H/11VeNWbNmGTt27Kj387Ft2zYjICCgyvxx\n48YZTz/9dKPeg/o++8HBwcaBAweM999/37j//vuN6Oho49ixY8abb75p3HrrrbWuo6nbqbrMzExj\nx44dxuHDh43FixcbM2bMMDIzM2tdtjHeeustBbMDMdu6xS7WZzKZ+Pjjj7nhhhusut7MzEyCg4Or\n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\npk+fzq5du2zS2clkMtX7vI8++iivvfYaeXl5REREtGFlIiJ2rlogl5hM7I6M5K7ISHbOng3dutm6\nQgu76JVdm82bt/PKK59SWGjG1bWExYtv5OabJ7XpOlatWsXKlSt54403mDp1Kp06dWLr1q1s2LAB\nd3f3pr6kVmUYBmlpaQwePLhZjy8rK9MF2kWk/TlyhMuPPUbnTZvoAhSZTOwfMYKEmBjyunXjx61b\nbV1hDXb5m3jz5u385jef8Omny9m2LZZPP13Ob37zCZs3b2+zdVy8eJFnnnmG1157jVmzZtG5c2ec\nnZ25+eabWblyZY1TvDZs2MCQIUPw9vbm+uuv59ixY5Z5K1euJCgoiK5duzJo0CC+/PJLoDxMn3/+\nefr160ePHj34+c9/Tk5OjuVx77zzDqGhofTo0YPnnnuuzloLCwvx9PSktLSUiIgI+vfvD8D3339P\nTEwM3t7eDB06lI0bN1oec8899/Dggw8yffp0PDw8+OqrrwgLC+PFF19k+PDheHp6smDBArKysrjp\nppvo1q0bU6ZMITc3t1Hvn4iITdXRQl79yCN8duut5NlRC7k6uwzmV175lOTkP1SZlpz8B1599bM2\nW8eePXsoKCjgtttua3DZpKQkfvGLX/DKK6+QnZ3N9OnTmTFjBsXFxRw/fpw//elP7N+/n0uXLvHp\np58SFhZ2rcZX2LBhA9u3b+fs2bN4e3vz0EMPAXD06FF+/etf8+6775KZmcn58+c5c+ZMrc/v6upK\nfn4+AIcPH+bEiRMUFxczY8YMpk2bxo8//sirr77KL3/5S5KSkiyPe//993n66afJz89nwoQJmEwm\nPvzwQ7744guOHz/Opk2buOmmm3j++ec5d+4cZWVlvPLKK416/0REbMKBA7mCXQZzYWHte9gLCpzb\nbB3nz5+nR48ejdq9+8EHH3DLLbfwb//2bzg7O/Poo49y9epV9uzZg7OzM4WFhRw5coTi4mJCQkLo\n06cPAG+88QbLly8nICAAFxcXnnnmGdavX09paSnr169nxowZTJgwgU6dOvH73/++SbuaExISuHz5\nMo899hhms5nrr7+eW265hffff9+yzKxZsxg7dixQHu4AixYtomfPngQEBDBx4kTGjh1LREQErq6u\n3HbbbRw8eLDRNYiItJl2EMgV7PIYs6trSa3T3dxK22wdPj4+ZGdnN+rYa2ZmJiEhIZb7JpOJ4OBg\n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\nrkJggg==\n", "text": "" } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 3, "metadata": { "zanadu": {} }, "source": "At-the money comparison: $K = S_0$" }, { "cell_type": "code", "collapsed": false, "input": "myK = 1.\nmyCol = ['Value']\nmyTable = pd.DataFrame.from_items([\n('Put by closed form', [cev2Put_closed(S0, myK, T)]),\n('Put by integration', [cev2Put_int(S0, myK, T)]),\n('Call by integration', [cev2Call_int(S0, myK, T)]),\n('Call by parity', [cev2Call_pc(S0, myK, T)]),\n('Call by closed form', [cev2Call_closed(S0, myK, T)]),\n('Expectation', [expectS(S0, T)])\n],orient='index', columns=myCol)\nprint myTable\nprint \"\\nNote that by Put-Call Parity, \\\nthe Call (evaluated by PC parity) and the Put have the same price\"", "language": "python", "metadata": { "zanadu": { "is_hidden": true } }, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": " Value\nPut by closed form 0.390452\nPut by integration 0.390452\nCall by integration 0.072992\nCall by parity 0.390452\nCall by closed form 0.073141\nExpectation 0.682689\n\nNote that by Put-Call Parity, the Call (evaluated by PC parity) and the Put have the same price\n" } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 3, "metadata": { "zanadu": {} }, "source": "Low-strike comparison" }, { "cell_type": "code", "collapsed": false, "input": "###################################################################\n###################################################################\nmyK = 0.001\nprint \"************************************\"\nprint \"************************************\"\nprint \"Strike = \", myK\nmyCol = ['Value']\nmyTable = pd.DataFrame.from_items([\n('Put by closed form', [cev2Put_closed(S0, myK, T)]),\n('Put by integration', [cev2Put_int(S0, myK, T)]),\n('Call by integration', [cev2Call_int(S0, myK, T)]),\n('Call by parity', [cev2Call_pc(S0, myK, T)]),\n('Call by closed form', [cev2Call_closed(S0, myK, T)]),\n('E(S_T)', [expectS(S0, T)])\n],orient='index', columns=myCol)\nprint myTable\n", "language": "python", "metadata": { "zanadu": { "is_hidden": true } }, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": "************************************\n************************************\nStrike = 0.001\n Value\nPut by closed form 0.000000\nPut by integration 0.000000\nCall by integration 0.681538\nCall by parity 0.999000\nCall by closed form 0.681689\nE(S_T) 0.682689\n" } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": { "zanadu": {} }, "source": "\\begin{bibliography}\n@article{Andersen,\n author = {Leif Andersen},\n title = {Option pricing with quadratic volatility: a revisit},\n journal = {Finance and Stochastics},\n year = {2011},\n volume = {15},\n issue = {2},\n pages = {191-219}\n}\n@article{CoxHobson,\n author = {Alex Cox and David Hobson},\n title = {Local martingales, bubbles and option prices},\n journal = {Finance and Stochastics},\n year = {2005},\n volume = {9},\n pages = {477-49}\n}\n\\end{bibliography}" } ], "metadata": {} } ] }