\n",
"$\\newcommand\\indi[1]{{\\mathbf 1}_{\\displaystyle #1}}$\n",
"$\\newcommand\\inde[1]{{\\mathbf 1}_{\\displaystyle\\left\\{ #1 \\right\\}}}$\n",
"$\\newcommand{\\ind}{\\inde}$\n",
"$\\newcommand\\E{{\\mathbf E}}$\n",
"$\\newcommand\\Cov{{\\mathrm Cov}}$\n",
"$\\newcommand\\Var{{\\mathrm Var}}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Le cas européen (calcul d'espérance)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On considère le modèle de Cox-Ross:\n",
"$$\n",
"X_0=x_0, X_{n+1}= X_{n} \\left(d\\inde{U_{n+1}=P}+u\\inde{U_{n+1}=F}\\right).\n",
"$$\n",
"On choisit les valeurs numériques de la façon suivante\n",
"$$\n",
" x_0=100, r_0=0,1, \\sigma=0,3.\n",
"$$\n",
"et l'on définit $p$, $r$, $u$ et $d$ en fonction de $N$ de la façon suivante~:\n",
"$$\n",
"p=1/2,\\;r=r_0/N,\\;u=1+\\frac{\\sigma}{\\sqrt{N}}\\; \\mbox{ et }\\; d=1-\\frac{\\sigma}{\\sqrt{N}}.\n",
"$$\n",
"On cherche à évaluer $\\E(f(N,X_N))$ où \n",
"$$\n",
" f(N,x)=\\frac{1}{(1+r)^N}\\max(K-x,0),\n",
"$$\n",
"avec $K=x_0=100$ et $r=0,05$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Question 1.1.__ Calculer ces prix d'options européennes (call et put) se ramène\n",
" à des calculs d'espérance d'une fonction d'une chaîne de Markov. On\n",
" implémente ici la méthode de calcul d'espérance par ''programmation\n",
" dynamique''."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import math\n",
"import random\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"\n",
"def prix_eu(x_0,r,u,d,p,N,gain):\n",
"# Calcul du prix européen à l'instant 0\n",
"\n",
" U=np.zeros([N+1,N+1])\n",
" # U[n,k] = u(n,x^n_k) avec x^n_k = x_0 * u**k * d**(n-k)\n",
" \n",
" # la condition finale en N\n",
" for k in range(0,N+1): # range(0,N+1) = 0,1,2 ... , N\n",
" U[N,k] = gain(x_0 * u**k * d**(N-k))/(1+r)**N;\n",
" #le temps décroît de N-1 à 0\n",
" for n in range(N-1,-1,-1): # range(N-1,-1,-1) = {N-1,N-2,...,0} !\n",
" for k in range(n+1):\n",
" # écrire l'équation de programmation dynamique\n",
" # U[n,k] = u(n,x^n_k) avec x^n_k = x_0 * u**k * d**(n-k)\n",
" \n",
" ###### A vous de jouer .....\n",
"\n",
" return U[0,0]\n",
"\n",
"def prix_eu_n(n,x_0,r,u,d,p,N,gain):\n",
"# Calcul du prix a l'instant n\n",
"\n",
" # Pour calculer ce prix on ne change rien si ce n'est N en N-n\n",
" return prix_eu(x_0,r,u,d,p,N-n,gain)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" On peut vérifier que lorsque $p=1/2$ (ou $r=0$) et $K=x_0$ le prix\n",
" des puts et des calls coïncident. On le vérifie.\n",
" \n",
" Pour le choix classique\n",
" $p=(1+r-d)/(u-d)$ (et $r\\not=0$), les prix sont différents, ce que\n",
" l'on vérifie aussi."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def main_1():\n",
" r_0=0.05;sigma=0.3;\n",
" N=50;\n",
" d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N);\n",
" r=r_0/N;\n",
"\n",
" x_0=100;K=100;\n",
"\n",
" # Lorsque p=1/2 et K=x_0 le prix du call = le prix du put (exercice!)\n",
" p=1/2;K=x_0;\n",
" \n",
" def gain_put(x): return max(K-x,0) # Payoff du put \n",
" def gain_call(x): return max(x-K,0) # Payoff du call \n",
"\n",
" p_put = prix_eu_n(0,x_0,r,u,d,p,N,gain_put);\n",
" p_call = prix_eu_n(0,x_0,r,u,d,p,N,gain_call);\n",
" if (abs(p_put - p_call) >= 0.000001) :\n",
" print(\"WARNING: ces deux prix devrait coincider: \",p_put,\" <> \",p_call)\n",
" else:\n",
" print(\"Les deux prix coincident: \",p_put,\" <> \",p_call,end='')\n",
" print(\". Parfait!\");\n",
"\n",
" p= (1+r-d)/(u-d)\n",
" print(\"Prix du call : \",prix_eu_n(0,x_0,r,u,d,p,N,gain_call))\n",
" print(\"Prix du put : \",prix_eu_n(0,x_0,r,u,d,p,N,gain_put))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Les deux prix coincident: 11.402142946815882 <> 11.40214294681589. Parfait!\n",
"Prix du call : 14.285050131985198\n",
"Prix du put : 9.410369101110671\n"
]
}
],
"source": [
"main_1()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Le cas américain (arrêt optimal)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On s'intéresse au cas d'un option américaine qui promet (en valeur actualisée en $0$), si on l'exerce à l'instant $n$\n",
"pour une valeur de $X_n$ valant $x$, une valeur $f(n,x)$\n",
"$$\n",
" f(n,x) = \\frac{1}{(1+r)^n}\\max(K-x,0).\n",
"$$\n",
"On cherche à calculer son prix donné par \n",
"$$\n",
"u(0,x_0)=\\sup_{\\tau \\mbox{ t.a.} \\leq N} \\E(f(\\tau,X_\\tau)).\n",
"$$\n",
"On sait (voir le cours) que $u$ se calcule grace à l'équation de programmation dynamique suivante\n",
" \\begin{equation}\\label{eq:rec} \n",
" \\left\\{\n",
" \\begin{array}{l}\n",
" u(n,x) = \\displaystyle \\max\\left[p u(n+1,xu)+(1-p) u(n+1,xd),\\frac{1}{(1+r)^n}(K-x)_+\\right], n 8.461120344261218. C'est parfait!\n"
]
}
],
"source": [
"def main_2():\n",
" sigma=0.3; r_0=0.1;\n",
" K=100;x_0=100;\n",
"\n",
" N=10;\n",
" r=r_0/N;\n",
" d=1-sigma/math.sqrt(N);\n",
" u=1+sigma/math.sqrt(N);\n",
" p= (1+r-d)/(u-d);#p=1/2;\n",
" \n",
" def gain_put(x): return max(K-x,0) # Payoff du put \n",
" def gain_call(x): return max(x-K,0) # Payoff du call \n",
"\n",
" prix_am(x_0,r,u,d,p,N,gain_put)\n",
" prix_slow_am(x_0,r,u,d,p,N,gain_put)\n",
"\n",
" # Les deux algos font ils le même chose ?\n",
" # on verifie : prix_slow(x_0,N) \\approx prix(x_0,N)\n",
" p1=prix_slow_am(x_0,r,u,d,p,N,gain_put);\n",
" p2=prix_am(x_0,r,u,d,p,N,gain_put);\n",
" print(\"Ces deux prix devrait coincider (ou presque) : \",p1,\" <> \",p2,end='');\n",
" if (abs(p1 - p2) >= 0.00001):\n",
" print(\"WARNING: ces deux prix devrait coincider : \",p1,\" <> \",p2);\n",
" else:\n",
" print(\". C'est parfait!\")\n",
"\n",
" N=1000;d=1-sigma/math.sqrt(N);u=1+sigma/math.sqrt(N);\n",
" prix_am(x_0,r,u,d,p,N,gain_put)\n",
"\n",
"main_2()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" __Question 2.5.__ Tracer les courbes de prix américaines et européennes $x\\to v(0,x)$ pour $x\\in [80,120]$ et les\n",
" supperposer au \"payoff\".\n",
" \n",
" On constate que le prix est toujours plus grand que le prix européen et que le gain immédiat."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"