{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Davis-Panas-Zariphopoulou model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook presents a model for pricing options in a market with proportional transaction costs. The model is taken from the celebrated work of Davis-Panas-Zariphopoulou 1993 [*link-to-the-paper*](https://web.ma.utexas.edu/users/zariphop/pdfs/TZ-7.pdf). \n",
    "\n",
    "#### This is a very powerful model!\n",
    "\n",
    "However, due to its complexity (and time complexity), it is not very well known to the practitioners.\n",
    "\n",
    "The purpose of this notebook is to explain **in simple terms** the main ideas of the model, and show how to implement it numerically. **The results will surprise you!**\n",
    "\n",
    "## Contents\n",
    "   - [Model description](#sec1)\n",
    "      - [Portfolio dynamics (original)](#sec1.1)\n",
    "      - [Some definitions](#sec1.2)\n",
    "   - [Singular control problem](#sec2)\n",
    "      - [Maximization problem](#sec2.1)\n",
    "      - [Indifference pricing](#sec2.2)\n",
    "   - [Variable reduction](#sec3)\n",
    "      - [Minimization problem](#sec3.1)\n",
    "      - [Portfolio dynamics (2 state variables)](#sec3.2)\n",
    "      - [HJB variational inequality](#sec3.3)\n",
    "      - [Indifference price (explicit form)](#sec3.4)\n",
    "   - [Numerical Solution](#sec4)\n",
    "       - [Discrete SDE](#sec4.1)\n",
    "       - [Algorithm](#sec4.2)\n",
    "   - [Numerical Computations](#sec5)\n",
    "       - [Time complexity](#sec5.1)\n",
    "       - [Is the risk aversion important?](#sec5.2)\n",
    "       - [Is the drift important?](#sec5.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "from IPython.display import display\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec1'></a>\n",
    "# Model Description"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec1.1'></a>\n",
    "### Portfolio dynamics (original)\n",
    "Let us consider a portfolio composed by: \n",
    "- A bank account $\\mathbf{B}$ paying an interest rate $r > 0$. \n",
    "- A stock $\\mathbf{S}$. \n",
    "- A number of shares $\\mathbf{Y}$ of the stock $\\mathbf{S}$. \n",
    "\n",
    "The 3-D state of the portfolio at time $t\\in [t_0,T]$ is $(B_t,Y_t,S_t)$ and evolves following the SDE:\n",
    "\n",
    "\\begin{equation}\n",
    " \\begin{cases}\n",
    " dB_t &=  rB_t dt - (1+\\theta_b)S_{t} dL_t + (1-\\theta_s) S_{t} dM_t \\\\\n",
    " dY_t &=  dL_t - dM_t \\\\\n",
    " dS_t &=  S_{t} \\left( \\mu dt + \\sigma dW_t \\right).\n",
    "\\end{cases}\n",
    "\\end{equation} \n",
    "\n",
    "The parameters $\\theta_b$, $\\theta_s \\geq 0$ are the proportional transaction costs when buying and selling respectively. \n",
    "\n",
    "The processes  $\\{(L_t, M_t)\\}_{t \\in [t_0,T]}$ are the **trading strategies**, i.e. the **controls** of the problem. \n",
    "\n",
    "The process $\\{L_t\\}_{t}$ represents the cumulative number of shares bought up to time $t$, and $\\{M_t\\}_{t}$ represents the number of shares sold up to time $t$. \n",
    "They are right-continuous, finite variation, non-negative and increasing processes. If the time $t$ is a discontinuous point (there is a transaction), the variation of the processes are indicated as\n",
    "$$ \\Delta L_t= L(t)-L(t^-) \\quad \\quad \\Delta M_t= M(t)-M(t^-) $$\n",
    "\n",
    "Let us consider an example. If at time $t$, the investor wants to buy $\\Delta L_t$ shares. Then the portfolio changes as\n",
    "\n",
    "$$ \\Delta Y_t =  \\underbrace{\\Delta L_t}_{\\text{shares bought}} \\quad \\quad\n",
    " \\Delta B_t =  - \\underbrace{(1+\\theta_b)S_t}_{\\text{adjusted price}} \\Delta L_t $$\n",
    "\n",
    "where the **adjusted price** is the real cost of the stock (incorporating the transaction cost).\n",
    "\n",
    "If there are no transactions, the portfolio has the simple well known evolution:\n",
    "\n",
    "$$\n",
    " \\begin{cases}\n",
    " dB_t &=  rB_t dt \\\\\n",
    " dY_t &=  0 \\\\\n",
    " dS_t &=  S_{t} \\left( \\mu dt + \\sigma dW_t \\right).\n",
    "\\end{cases}\n",
    "$$\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec1.2'></a>\n",
    "### Some definitions\n",
    "\n",
    "The **cash value** function $c(y,s) : \\mathbb{R} \\times \\mathbb{R}^+ \\to \\mathbb{R}$, is defined as the value in cash when the shares in the portfolio are liquidated i.e.  \n",
    "long positions are sold and short positions are covered.\n",
    "\n",
    "$$\n",
    "c(y,s) := \\begin{cases} \n",
    "(1+\\theta_b)ys, & \\text{if } y\\leq 0 \\\\ \n",
    "(1-\\theta_s)ys, & \\text{if } y>0 . \n",
    "\\end{cases} \n",
    "$$\n",
    "\n",
    "For $t\\in [t_0,T]$, the **total wealth** process in a portfolio with zero options is defined as:\n",
    "\n",
    "$$ \\mathcal{W}^0_t := B_t + c(Y_t,S_t). $$\n",
    "\n",
    "If the portfolio contains an option with maturity $T$ and strike $K$, then the wealth process becomes:    \n",
    "**Writer**:\n",
    " \n",
    "$$ \\mathcal{W}^{w}_t = \\; B_t + c(Y_t,S_t) \\mathbb{1}_{\\{t < T\\}} +\n",
    " c(Y_t,S_t) \\mathbb{1}_{\\{t = T,\\, S_t(1+ \\theta_b ) \\leq K\\}} +\n",
    " \\biggl( c\\bigl( Y_t-1,S_t \\bigr) + K \\biggr) \\mathbb{1}_{\\{t=T,\\, S_t(1+ \\theta_b ) > K \\}} $$\n",
    " \n",
    "**Buyer**:   \n",
    "\n",
    " $$   \\mathcal{W}^{b}_t = \\; B_t + c(Y_t,S_t) \\mathbb{1}_{\\{t < T\\}} +\n",
    "  c(Y_t,S_t) \\mathbb{1}_{\\{t = T,\\, S_t(1+ \\theta_b ) \\leq K\\}} +\n",
    "  \\biggl( c\\bigl( Y_t+1,S_t \\bigr) - K \\biggr) \\mathbb{1}_{\\{t=T,\\, S_t(1+ \\theta_b ) > K \\}}  $$\n",
    "  \n",
    "For $t_0 \\leq t<T$, the wealths $\\mathcal{W}^{w}_t$ and $\\mathcal{W}^{b}_t$ are equal to $\\mathcal{W}^{0}_t$, but when $t = T$ they differ because of the payoff of the option. The writer gives away a share and recives the strike and the buyer receive a share and pays the strike. \n",
    "\n",
    "Note that considering a market with transaction costs, implies a different condition for the exercise of the option. Now the buyer should exercise if $S_t(1+ \\theta_b ) > K$, because the true price of the share incorporates the value of the transaction costs. Let's see the plot:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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sbFqHklJWW5feslNqVKlhL+/v7hx44a4d++euHv3rvjhhx9EUFCQuH79uliwYIEwNjYWx44d05zbrFkzYWtrKyZPniyuXr0q1q5dK4yMjMSePXuEEEJs27ZN2Nrail27donbt2+L48ePixUrVmjOX716tdi1a5e4fv26OHr0qGjYsKHw9PTUPH/37l1RuHBh0bFjR3Hy5Elx5coVsWbNGnH58mURExMjOnfuLD744AMRFhYmwsLCRFxcXKrk5u7du8LS0lIMHTpUhISEiB07doiiRYtqfam+qR1pWbJkibCwsBDz588XV65cESdOnBDz5s37769EkqhVq5Z45513xKlTp8SxY8dE7dq1RbNmzTTnV6lSRfTo0UOEhISIq1eviq1bt4rg4GARFxcn5s+fL2xtbTXtiomJESdPnhTGxsZi48aN4tatW+LMmTPixx9/TDe+tJKb06dPCwDi119/FcHBwWLZsmXi3Llz4urVq2LixInCwsJC3L59WwghxJ07d0SBAgXEiRMnNOefPXtWGBkZievXrwshhJg7d66wtbUVmzZtEpcvXxZffvmlMDU1FVevXhVCCBEWFiaqVKkixowZo2lHWvtex+SGSEdduSKEjY1MbMaOVR1NKkxuMpDl5CY2NiWLzetHbGyW25decjN//vw3ntumTRsxZswYzc/NmjUT77zzjtYx9erVE1999ZUQQog5c+aI8uXLi/j4+EzFduLECQFA84Xn7e0t3N3d0z2/d+/eon379lr7Xk9uJkyYICpUqCCSXkkEFy9eLKytrUViYmKm2pEWFxcXMXHixDSf27NnjzA2NhahoaGafRcvXhQANMmCjY2N8PPzS/P81z8jIYTw9/cXtra2Ijo6Ot2YXvV6cvPw4UPx0UcfCRsbm1S9Y8kqV64sFi5cqPnZ09NTDBkyRPPzqFGjRPPmzTU/u7i4iO+++07rNerVqyeGDh2q+blGjRqpemfS2vcqJjdEOujpUyGqVZPfPU2bCvFK77euyEpywwHF+UTdunW1fk5MTMR3332H6tWro0iRIrC2tsaePXsQGhqqdVz16tW1fnZ2dkZERAQA4NNPP8Xz589RunRpDBw4EDt27MDLly81xwYFBaF9+/Zwc3ODjY0NmjdvDgCa9wgODkbTpk3favxPSEgIGjVqBKNXBrs1adIEsbGxuHv3bqba8bqIiAjc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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "S = np.linspace(14, 16, 100)\n",
    "K = 15  # strike\n",
    "cost_b = 0.01  # transaction cost\n",
    "\n",
    "plt.plot(S, np.maximum(S - K, 0), color=\"blue\", label=\"Zero cost Payoff\")\n",
    "plt.plot(S, np.maximum(S * (1 + cost_b) - K, 0), color=\"red\", label=\"Transaction costs Payoff\")\n",
    "plt.xlabel(\"S\")\n",
    "plt.ylabel(\"Payoff\")\n",
    "plt.title(\"Payoff comparison\")\n",
    "plt.legend(loc=\"upper left\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec2'></a>\n",
    "## Singular control problem"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec2.1'></a>\n",
    "### Maximization problem\n",
    "\n",
    "The **value function** of the maximization problem for $j=0,w,b$ (corresponding to the three portfolios: no option, writer, buyer) is defined as:\n",
    "\n",
    "\\begin{equation}\n",
    "V^j(t,b,y,s) = \\sup_{L,M} \\;  \\mathbb{E}\\biggl[ \\; \\mathcal{U}( \\mathcal{W}^{j}_T ) \\; \\bigg| \\; B_{t} = b, Y_{t} = y, S_{t} = s \\biggr],             \n",
    "\\end{equation}\n",
    "\n",
    "where $\\mathcal{U}: \\mathbb{R} \\to \\mathbb{R}$ is a concave increasing **utility function**. The **exponential utility** is what we are looking for:\n",
    "\n",
    "\\begin{equation}\n",
    " \\mathcal{U}(x) := 1- e^{-\\gamma x}   \\quad \\quad \\gamma >0 .\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec2.2'></a>\n",
    "### Indifference pricing\n",
    "\n",
    "The writer (buyer) option price is defined as the amount of cash to add (subtract) to the bank account, \n",
    "such that the maximal expected utility of wealth of the writer (buyer) is the same he could get with \n",
    "the zero-option portfolio.\n",
    "\n",
    "* The **writer price** is the value $p^w>0$ such that \n",
    " \\begin{equation}\n",
    "  V^0(t,b,y,s) = V^w(t,b+p^w,y,s),\n",
    " \\end{equation}\n",
    " \n",
    "* The **buyer price** is the value $p^b>0$ such that\n",
    " \\begin{equation}\n",
    "  V^0(t,b,y,s) = V^b(t,b-p^b,y,s).\n",
    " \\end{equation}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec3'></a>\n",
    "## Variable reduction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using the properties of the exponential utility, it is possible to remove $\\mathbf{B}$ from the state variables.\n",
    "\n",
    "$$ V^j(t,b,y,s) = \\sup_{L,M} \\; \\mathbb{E}_{t,b,y,s}\\biggl[  1- e^{-\\gamma \\mathcal{W}^j(T) } \\biggr]   \n",
    "\t     = 1- e^{-\\gamma \\frac{b}{\\delta(t,T)}} Q^j(t,y,s), $$\n",
    "         \n",
    "where $\\delta(t,T) = e^{-r(T-t)}$. (for the full calculations, check the paper. Equations 4.21 -4.25).\n",
    "\n",
    "<a id='sec3.1'></a>\n",
    "### Minimization problem\n",
    "\n",
    "\\begin{equation}\n",
    "Q^j(t,y,s) = \\inf_{L,M} \\; \\mathbb{E}_{t,y,s}\\biggl[ \\;\n",
    "\t     e^{-\\gamma \\bigl[ -\\int_{t}^T (1+\\theta_b) \\frac{S_u}{\\delta(u,T)} dL_u +\n",
    "\t     \\int_{t}^T (1-\\theta_s) \\frac{S_u}{\\delta(u,T)} dM_u \\bigr] } \\; H^j(Y_T,S_T) \\bigg]  \n",
    "\\end{equation}\n",
    "\n",
    "The exponential term inside the expectation can be considered as a discount factor, and the second term is the terminal payoff:\n",
    " - No option:\n",
    " \n",
    " $$ H^0(y,s) = e^{-\\gamma \\, c(y,s)}. $$\n",
    " \n",
    " - Writer:\n",
    " \n",
    " $$ H^w(y,s) = e^{-\\gamma \\bigl[ c(y,s)\\mathbb{1}_{\\{s(1+\\theta_b) \\leq K\\}} + \n",
    " \\bigl( c( y-1,s) + K \\bigr) \\mathbb{1}_{\\{s(1+\\theta_b)>K\\}} \\bigr] }.$$\n",
    " \n",
    " - Buyer:\n",
    "\n",
    "$$  H^b(y,s) = e^{-\\gamma \\bigl[ c(y,s)\\mathbb{1}_{\\{s(1+\\theta_b) \\leq K\\}} + \n",
    " \\bigl( c( y+1,s) - K \\bigr) \\mathbb{1}_{\\{s(1+\\theta_b)>K\\}} \\bigr] }.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec3.2'></a>\n",
    "### Portfolio dynamics (2 state variables)\n",
    "\n",
    "In order to simplify the numerical computations,let us pass to the log-variable $X_t = \\log(S_t)$.\n",
    "\n",
    "The resulting portfolio dynamics is:\n",
    "\n",
    "\\begin{equation}\n",
    " \\begin{cases}\n",
    " dY_t &=  dL_t - dM_t \\\\\n",
    " dX_t &= \\biggl( \\mu - \\frac{1}{2} \\sigma^2 \\biggr) dt + \\sigma dW_t.\n",
    "\\end{cases}\n",
    "\\end{equation} \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec3.3'></a>\n",
    "### HJB variational inequality\n",
    "\n",
    "The Hamilton Jacobi Bellman equation associated to the minimization problem is:\n",
    "\n",
    "$$\n",
    " \\min \\; \\biggl\\{ \\; \\frac{\\partial Q^j}{\\partial t} + (\\mu-\\frac{1}{2}\\sigma^2) \\frac{\\partial Q^j}{\\partial x}\n",
    "+ \\frac{1}{2}\\sigma^2 \\frac{\\partial^2 Q^j}{\\partial x^2}  ,\n",
    " \\; \\frac{\\partial Q^j}{\\partial y} +(1+\\theta_b) e^x \\frac{\\gamma}{\\delta(t,T)}Q^j \\; , \n",
    "\\; -\\biggl( \\frac{\\partial Q^j}{\\partial y}+(1-\\theta_s)e^x \\frac{\\gamma}{\\delta(t,T)} Q^j \n",
    "\\biggr) \\biggr\\} = 0. \n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec3.4'></a>\n",
    "### Indifference price (explicit form)\n",
    "\n",
    "Using again the explicit form of the utility function, we obtain formulas for the option prices:\n",
    "\n",
    "$$\n",
    " p^w(t_0,y,x) = \\frac{\\delta(t_0,T)}{\\gamma} \\log \\biggl( \\frac{Q^w(t_0,y,e^x)}{Q^0(t_0,y,e^x)} \\biggr), $$\n",
    " \n",
    "$$ p^b(t_0,y,x) = \\frac{\\delta(t_0,T)}{\\gamma} \\log \\biggl( \\frac{Q^0(t_0,y,e^x)}{Q^b(t_0,y,e^x)} \\biggr).\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec4'></a>\n",
    "# Numerical Solution"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec4.1'></a>\n",
    "###  Discrete SDE\n",
    "\n",
    "As usual, we introduced the time step $\\Delta t = \\frac{T}{N}$, where we assumed $t_0 = 0$ and $N \\in \\mathbb{N}$. \n",
    "The time $t_n = n \\Delta t$, for $n \\in \\{0,1,2, ..., N\\}$. \n",
    "\n",
    "The space discretization has 2 dimensions:\n",
    "- The space step $h_x$ is defined as $h_x = \\sigma \\sqrt{\\Delta t}$.\n",
    "- The space step is $h_y$. In this computations we choose $h_x = h_y$.\n",
    "\n",
    "The discretized version of the Stochastic Differential equation is: \n",
    "\n",
    "$$\n",
    " \\begin{cases}\n",
    " \\Delta Y_n &= \\; \\Delta L_n - \\Delta M_n \\\\\n",
    " \\Delta X_n &= \\; (\\mu - \\frac{1}{2} \\sigma^2 )  \\Delta t + \\sigma \\Delta W_n\n",
    "\\end{cases}\n",
    "$$\n",
    "\n",
    "Both $\\Delta L_n$ and $\\Delta M_n$ at each time $t_n$ can assume values in $\\{0,h_y\\}$. They cannot be different from zero at the same time (It is quite strange to buy and sell at the same time, right?)\n",
    "\n",
    "The variable $\\Delta W_n$ has $\\frac{1}{2}$ probability of being equal to $h_x$ and $\\frac{1}{2}$ probability of being equal to $-h_x$.\n",
    "\n",
    "The variation $\\Delta X_n$ is $\\pm h_x$ plus the drift component. We obtain a recombining **binomial tree**."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Binomial tree with drift"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2.7080502]\n",
      "[2.61744646 2.82157061]\n",
      "[2.52684272 2.73096687 2.93509101]\n",
      "[2.43623898 2.64036313 2.84448727 3.04861142]\n",
      "[2.34563524 2.54975939 2.75388353 2.95800768 3.16213182]\n",
      "[2.2550315  2.45915565 2.6632798  2.86740394 3.07152809 3.27565223]\n"
     ]
    }
   ],
   "source": [
    "N = 6\n",
    "dt = 1 / N\n",
    "S0 = 15\n",
    "x0 = np.log(S0)\n",
    "mu = 0.1\n",
    "sig = 0.25\n",
    "h_x = sig * np.sqrt(dt)\n",
    "\n",
    "for n in range(N):\n",
    "    x = np.array([x0 + (mu - 0.5 * sig**2) * dt * n + (2 * i - n) * h_x for i in range(n + 1)])\n",
    "    print(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec4.2'></a>\n",
    "###  Algorithm\n",
    "\n",
    "Using the Dynamic Programming Principle (DPP) on the minimization problem we obtain a recursive algorithm on the nodes of the grid.\n",
    "\n",
    "$$ \\begin{aligned}\n",
    " Q^{j}(t_n,Y_n,X_n) = \\min  \n",
    " & \\; \\biggl\\{ \\mathbb{E}_n \\biggl[ Q \\bigl( t_{n+1}, Y_n, X_n + \\Delta X_n \\bigr) \\biggr], \\\\ \\nonumber\n",
    " & \\; \\exp \\biggl(\\frac{\\gamma}{\\delta(t_n,T)} (1+\\theta_b) e^{X_n} \\Delta L_n \\biggr) \n",
    "  \\mathbb{E}_n \\biggl[ Q^{j} \\bigl( t_{n+1}, Y_n+\\Delta L_n, X_n + \\Delta X_n \\bigr) \\biggr], \\\\ \\nonumber\n",
    " & \\; \\exp \\biggl(\\frac{-\\gamma}{\\delta(t_n,T)} (1-\\theta_s) e^{X_n} \\Delta M_n \\biggr)\n",
    "  \\mathbb{E}_n \\biggl[ Q^{j} \\bigl( t_{n+1}, Y_n-\\Delta M_n, X_n + \\Delta X_n \\bigr) \\biggr]\n",
    " \\biggr\\}.\n",
    "\\end{aligned} $$\n",
    "\n",
    "#### How to solve this problem?\n",
    "- Create a **binomial tree** with N time steps. \n",
    "- Create a \"shares vector\" **y** with dimension M. \n",
    "- Initialize a two dimensional grid of size $(N+1)\\times M$, to be filled with the values of the terminal conditions $H^j(y,e^x)$ for $j=0,w,b$ (see [Minimization problem](#sec3.1))\n",
    "- Create a backward loop over time and find $Q^j(0,0,X_0)$\n",
    "\n",
    "#### Computational complexity?  Well... Quite high. \n",
    "- A binomial tree with N time steps has $\\sum_{n=0}^N (n+1) = \\frac{N(N+1)}{2} + (N+1) = (N+1)(\\frac{N}{2}+1)$ nodes. \n",
    "The loop over all the nodes is $\\mathcal{O}(N^2)$.\n",
    "- If we assume $M \\sim N$, the loop over all the values of **y** has another $\\mathcal{O}(N)$.\n",
    "- The minimum search for every point in **y**, produces another $\\mathcal{O}(N)$ operations.\n",
    "\n",
    "Therefore the total computational complexity is of $\\mathcal{O}(N^4)$.\n",
    "\n",
    "\n",
    "#### For space reasons, I will not expose the code here in the notebook. The interested reader can peek the (clear and commented) code inside the class TC_pricer.  [code](./functions/TC_pricer.py)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec5'></a>\n",
    "# Numerical computations\n",
    "\n",
    "Let us import the classes we need:\n",
    " - **Option_param**: creates the option object\n",
    " - **Diffusion_process**: creates the process object\n",
    " - **TC_pricer**: creates the pricer for this model\n",
    " - **BS_pricer**: creates the Black-Scholes pricer, useful for making comparisons.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from FMNM.Parameters import Option_param\n",
    "from FMNM.Processes import Diffusion_process\n",
    "from FMNM.TC_pricer import TC_pricer\n",
    "from FMNM.BS_pricer import BS_pricer\n",
    "\n",
    "# Creates the object with the parameters of the option\n",
    "opt_param = Option_param(S0=15, K=15, T=1, exercise=\"European\", payoff=\"call\")\n",
    "\n",
    "# Creates the object with the parameters of the process\n",
    "diff_param = Diffusion_process(r=0.1, sig=0.25, mu=0.1)\n",
    "\n",
    "# Creates the object of the Transaction Costs pricer\n",
    "TC = TC_pricer(opt_param, diff_param, cost_b=0, cost_s=0, gamma=0.0001)\n",
    "# Creates the object of the Black-Scholes pricer\n",
    "BS = BS_pricer(opt_param, diff_param)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We expect that if the transaction costs are **zero**, and the risk aversion coefficient $\\gamma \\to 0$ (i.e. the investor becomes risk neutral), the price should **converge** to the **Black-Scholes price**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Zero TC price:  2.246375063664713\n",
      "Black Scholes price: 2.246368616746695\n",
      "Difference: 6.446918018099268e-06\n"
     ]
    }
   ],
   "source": [
    "tc = TC.price(N=2000)\n",
    "bs = BS.closed_formula()\n",
    "\n",
    "print(\"Zero TC price: \", tc)\n",
    "print(\"Black Scholes price:\", bs)\n",
    "print(\"Difference:\", np.abs(tc - bs))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Wait a second!!! WE CAN DO BETTER!\n",
    "\n",
    "##### Let us analyze the the writer and buyer prices, for different initial stock values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "S = list(range(5, 21))\n",
    "price_0 = []\n",
    "price_w = []\n",
    "price_b = []\n",
    "\n",
    "for s in S:\n",
    "    TC.S0 = s\n",
    "    TC.cost_b = 0\n",
    "    TC.cost_s = 0\n",
    "    price_0.append(TC.price(N=400))  # zero costs\n",
    "    TC.cost_b = 0.05\n",
    "    TC.cost_s = 0.05\n",
    "    price_w.append(TC.price(N=400, TYPE=\"writer\"))\n",
    "    price_b.append(TC.price(N=400, TYPE=\"buyer\"))\n",
    "TC.cost_b = 0\n",
    "TC.cost_s = 0  # set to 0 for future computations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(S, price_0, color=\"blue\", marker=\"s\", label=\"Zero costs\")\n",
    "plt.plot(S, price_w, color=\"green\", marker=\"o\", label=\"Writer\")\n",
    "plt.plot(S, price_b, color=\"magenta\", marker=\"*\", label=\"Buyer\")\n",
    "BS.plot(axis=[10, 20, 0, 8])  # plot of the Black Scholes line"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec5.1'></a>\n",
    "### Time complexity\n",
    "\n",
    "If we set the \"Time\" argument to True, the method also returns the execution time.\n",
    "Let us verify that the algorithm has time complexity of order $\\mathcal{O}(N^4)$\n",
    "\n",
    "The following operation will be very time consuming. In case you are in a hurry, reduce the NUM."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>N</th>\n",
       "      <th>Price</th>\n",
       "      <th>Time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>50.0</td>\n",
       "      <td>6.531228</td>\n",
       "      <td>0.008018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>100.0</td>\n",
       "      <td>6.533475</td>\n",
       "      <td>0.029627</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>200.0</td>\n",
       "      <td>6.533735</td>\n",
       "      <td>0.136240</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>400.0</td>\n",
       "      <td>6.534301</td>\n",
       "      <td>0.613247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>800.0</td>\n",
       "      <td>6.534227</td>\n",
       "      <td>6.132332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1600.0</td>\n",
       "      <td>6.534322</td>\n",
       "      <td>44.816548</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>3200.0</td>\n",
       "      <td>6.534285</td>\n",
       "      <td>407.323948</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        N     Price        Time\n",
       "0    50.0  6.531228    0.008018\n",
       "1   100.0  6.533475    0.029627\n",
       "2   200.0  6.533735    0.136240\n",
       "3   400.0  6.534301    0.613247\n",
       "4   800.0  6.534227    6.132332\n",
       "5  1600.0  6.534322   44.816548\n",
       "6  3200.0  6.534285  407.323948"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "NUM = 7\n",
    "price_table = pd.DataFrame(columns=[\"N\", \"Price\", \"Time\"])\n",
    "for j, n in enumerate([50 * 2**i for i in range(NUM)]):\n",
    "    price_table.loc[j] = [n] + list(TC.price(n, Time=True))\n",
    "display(price_table)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using the computational times we can estimate the exponent $\\alpha$ of the polinomial growth $\\mathcal{O}(N^\\alpha)$. \n",
    "\n",
    "For higher values of N, the exponent converges to the expected value of $\\alpha = 4$.\n",
    "\n",
    "Here we are quite close."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The exponent is:  3.1840732004452104\n"
     ]
    }
   ],
   "source": [
    "print(\"The exponent is: \", np.log2(price_table[\"Time\"][6] / price_table[\"Time\"][5]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec5.2'></a>\n",
    "### Is the risk aversion important?\n",
    "\n",
    "The coefficient $\\gamma$ measure the risk aversion of the investor. We can see how the option price is affected by this coefficient:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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srK45ZZbiIiIIDg4mJ49e7J79+5q7ykoKOAPf/gDHTp0IDAwkISEBP72t7/V5VsRERERL+NXl5uef/55Fi9ezM9//nOeeOIJ63xiYiL//d//XePnnDx5kqSkJJKTk1m9ejVRUVGkpaXRokWLau+bOHEix44dY8mSJXTq1Injx49TXFxcl29FREREvEydwk1GRga9evWqcD4wMJD8/PwaP+fJJ58kNjaWpUuXWufi4uKqveejjz5i06ZNpKen07JlyxrdIyIiIk1Hnbql4uPj2bt3b4Xzq1evpnv37jV+zqpVq0hMTGTChAlERUXRq1cvFi9eXKN7nnrqKdq1a0eXLl347//+b86dO1dp+YKCAnJzc22HiIiIeK86tdzcf//93HvvvZw/fx7DMNixYwfLly9n3rx5vPLKKzV+Tnp6ujV+53/+53/YsWMH06dPJzAwkFtvvbXKe7Zs2UJQUBDvvvsuJ06c4J577uGnn36qdNzNvHnzePjhh+vybYqIiEgj5DAMw6jLjYsXL+axxx7jyJEjALRr1465c+dy55131vgZAQEBJCYmsm3bNuvc9OnT2blzJ9u3b6/0ntGjR5OamkpOTg7h4eEArFy5kvHjx5Ofn0+zZs1s5QsKCigoKLA+5+bmEhsby+nTpwkLC6txXUVERMRzcnNzCQ8Pr9HP7zq13ABMnTqVqVOncuLECUpLS4mKiqr1M6Kjoyt0Y3Xr1o133nmn2nvatWtnBZuyewzD4Pvvv6dz58628oGBgQQGBta6biIiItI41WnMTUZGBgcPHgSgVatWVrA5ePAghw4dqvFzkpKS2L9/v+3cgQMH6NChQ7X3HD16lDNnztju8fHxISYmphbfhYiIiHijOoWbKVOm2LqSynz66adMmTKlxs+ZOXMmn3zyCY8//jjfffcdb7zxBosWLeLee++1ysyZM8c2/mbSpElERERw++238/XXX7N582buv/9+7rjjjgpdUiIiItL01Cnc7Nmzh6SkpArn+/fvX+ksqqr07duXd999l+XLl9OjRw8effRR5s+fz+TJk60y2dnZZGZmWp+bN2/OunXrOHXqFImJiUyePJmbbrqJ5557ri7fioiIiHiZOg0oDg8PJyUlpcJaN7t372bYsGHk5eXVWwXrW20GJImIiEjDUJuf33VquRk8eDDz5s2ztl0AKCkpYd68eQwaNKgujxQRERGpF3WaLfXUU08xZMgQunbtyuDBgwFITU0lNzeXjz/+uF4rKCIiIlIbdWq56d69O1988QUTJ07k+PHj5OXlceutt/Ltt9/So0eP+q6jiIiISI3VeRG/xkpjbkRERBoflyzi98UXX9CjRw98fHz44osvqi17zTXX1PSxIiIiIvWqxuGmZ8+e5OTkEBUVRc+ePXE4HFTW6ONwOGwDjUVERETcqcbhJiMjg8jISOv3IiIiIg1RjcNN2ZYIRUVFzJ07lz/+8Y907NjRZRUTERERqYtaz5by9/fn3XffdUVdRERERC5bnaaC/+IXv+C9996r56qIiIiIXL46LeLXqVMnHn30UbZt20afPn0ICQmxXZ8+fXq9VE5ERESktuq0zk18fHzVD3Q4SE9Pv6xKuZLWuREREWl8XLLOTXnlZ0uVZSOHw1GXR4mIiIjUqzqNuQFYsmQJPXr0ICgoiKCgIHr06MErr7xSn3UTERERqbU6tdz88Y9/5Nlnn+X3v/89AwYMAGD79u3MnDmTQ4cO8dhjj9VrJUVERERqqk5jblq1asXzzz/Pr3/9a9v55cuX8/vf/54TJ07UWwXrm8bciIiIND61+fldp26pkpISEhMTK5zv06cPxcXFdXmkiIiISL2oU7i55ZZbWLhwYYXzixYtYvLkyZddKREREZG6qtOYGzAHFK9du5b+/fsD8Mknn3DkyBFuvfVWZs2aZZX7y1/+cvm1FBEREamhOoWbr776it69ewOQlpYGQGRkJJGRkXz11VdWOU0PFxEREXerU7jZuHFjfddDREREpF7UeZ0bERERkYZI4UZERES8isKNiIiIeBWFGxEREfEqCjciIiLiVRRuRERExKso3IiIiIhXUbgRERERr6JwIyIiIl5F4UZERES8isKNiIiIeBWFGxEREfEqCjciIiLiVRRuRERExKso3IiIiIhXUbgRERERr6JwIyIiIl5F4UZERES8isKNiIiIeBWFGxEREfEqCjciIiLiVRRuRERExKt4PNxkZWVxyy23EBERQXBwMD179mT37t01unfr1q34+fnRs2dP11ZSREREGg0/T37xkydPkpSURHJyMqtXryYqKoq0tDRatGhxyXtPnz7NrbfeyogRIzh27JjrKysiIiKNgkfDzZNPPklsbCxLly61zsXFxdXo3rvvvptJkybh6+vLe++955oKioiISKPj0W6pVatWkZiYyIQJE4iKiqJXr14sXrz4kvctXbqUtLQ0HnrooUuWLSgoIDc313aIiIiI9/JouElPT2fhwoV07tyZNWvWMG3aNKZPn86yZcuqvOfgwYPMnj2b119/HT+/Szc8zZs3j/DwcOuIjY2tz29BREREGhiPhpvS0lJ69+7N448/Tq9evbj77ruZOnUqCxcurLR8SUkJkyZN4uGHH6ZLly41+hpz5szh9OnT1nHkyJH6/BZERESkgfHomJvo6Gi6d+9uO9etWzfeeeedSsvn5eWxa9cu9uzZw+9+9zvADEiGYeDn58fatWsZPny47Z7AwEACAwNd8w2IiIhIg+PRcJOUlMT+/ftt5w4cOECHDh0qLR8WFsaXX35pO/fSSy/x8ccfs2LFCuLj411WVxEREWkcPBpuZs6cycCBA3n88ceZOHEiO3bsYNGiRSxatMgqM2fOHLKysli2bBk+Pj706NHD9oyoqCiCgoIqnBcREZGmyaNjbvr27cu7777L8uXL6dGjB48++ijz589n8uTJVpns7GwyMzM9WEsRERFpTByGYRieroQ75ebmEh4ezunTpwkLC/N0dURERKQGavPz2+PbL4iIiIjUJ4UbERER8SoKNyIiIuJVFG5ERETEqyjc1KddwHDnryIiIuIRCjf1aRmwEXjV0xURERFpujy6iJ9XOAycABzAm85zC4G+QDegFVD5gssiIiLiAgo3lyuuknNFwG/KfW5SKwmJiIh4lrqlLtdrgG8V13yBRzFbd0RERMQtFG4u12SgpIprJcAfqbx1R0RERFxC4aY+PFrNNV/MgcZlNKNKRETEpRRu6sMUIKKKayXAX4BVmGNvNKNKRETEpRRu6kMM8IHz92Vv1OH8NRjYC9wMXMWFVpx/Ap8Bu9GYHBERkXqk2VL1JQZoA8QCdwJLgCPAWuAaZ5lvypU/DvQp91kzqkREROqFwk19iQEOAQGYrTb/BRQCgZgzqqYAxVXcGwc8gDkWZzAQ4tKaioiIeDV1S9WnQC50Rzmcn8GcUfVpNfcdAv4PuA64AjPgPARsBgpcUVERERHvpZYbd/MBSsv9+hHmCscfAxswx99scR6PAM0ww85w59GbqtfVEREREYUbt4mi8jE5V2F2aU3GHHeTwYWg8zHm2Jy1zgMgHBiGGXRGAN250FokIiIiOAzDaFJDWXNzcwkPD+f06dOEhYW594sXcGFMjsGFMTlVMYCvuRB0UoDTF5VpzYVWneFAx3qtsYiISINQm5/fGnPjTlWNyamKA7NlZzrwHvAjsAN4AhiF2WV1DFgOTAUSgHjMlqE3gOwa1EmLCoqIiJdRuGlMfDF3G38Qs5vqJLAJ+BMwCLOT8RDwN8xurraY3Va/B94FfqrkmVpUUEREvIy6pbzJGcyByGVjdvZgXz/HgTkguQ/Qw/n7cZjjeqKA1c7yrYAObqu1iIjIJdXm57cGFHuT5sBY5wFmS80mLozZ+QZzReTdldyrRQVFRMRLqFvKm7UEfgG8gDkwOQtzQcGh1dzjAG7EbMXJdXUFRURE6p/CTVPSFnMsTgpVDyA2MPfJuh5zQcE+wCwuDGgWERFp4NQt1VSVzdq6eFHBuUAmZndWGubmnp8BzzrL98Bs+RniPNq4rcYiIiI1onDTVFW1qOCdmIsKgtmNlYoZdDZjdm195TxedJbpwoWgMxRo757qi4iIVEWzpZqy2i4q+AP2sPM5FQced8DestMJraAsIiKXrTY/vxVupO5OYU4934wZeHYDJReVieZCq84QtF2EiIjUicJNNRRuXOgMsA0z7GzG3Am98KIyrTA3Ai0LPNegjUBFROSStM6NeEZzYLTzADiHuV1EWTfWNswd0N91HmBuBDqIC91YfQD/S3ydXcADwFNAYv1VX0REvIPCjbhOM8zWmbJ1dQoxu67KurG2YG4E+m/nARAMDORCN1Y/IOii55bfMkLhRkRELqJuKfGcYsxByZvLHRfvfxUI/Ayz+6obcC3aMkJEpAnSmJtqKNw0YKWY083LurE2Ye56XlNN6k+yiEjTUpuf31qhWBoOH8xFAu8F3gSygf3AYiDpEvcOxdwNfT8KOSIiTZzG3EjD5cBcJLALcBfmSsl9qii7yXmA2UU1EDMQJWGOy6lu/R4REfEqCjfS+Fy8ZcSzmN1XW4GdmDOyVjkPMBcq7MuFsDMQMwCJiIhXUriRxqOqLSPGc2HLiELMFp6tmLOxtmKurLzVeZTpyoWwk4TZOqTFBUVEvIIGFEvjUtstIwzgOy6Em63AN5WUi8TeldXnEs8VERG30mypaijcCD8C27nQurMTMzSVF4g5VkddWSIiDYJWKBapTgRwo/MAM9iUdWWVHZV1ZV2JvSurM+rKEhFpgNRyI3Kx8l1ZZeN2vq2knLqyRETcRi03IpfDgdkq0xmY4jz3I+beWGWtOTsxW3f+5TzADDYXz8qKcFelRUSkjMcX8cvKyuKWW24hIiKC4OBgevbsye7du6ssv3LlSkaNGkVkZCRhYWEMGDCANWvWuLHG0iRFADcBTwCpmHtibcPcvPNmzPE4BZgtPU8C/+E81w1zjZ6lwEG0wKCIiBt4tOXm5MmTJCUlkZyczOrVq4mKiiItLY0WLVpUec/mzZsZNWoUjz/+OC1atGDp0qXcdNNNfPrpp/Tq1ct9lZemLRAY4DzuxwwtB7GP2/m23LHEeV8k9nE7vVFXlohIPfPomJvZs2ezdetWUlNTL+s5V111Fb/61a/405/+dMmyGnMjbnMCe1fWLiqflaWuLBGRS2o0e0utWrWKxMREJkyYQFRUFL169WLx4sW1ekZpaSl5eXm0bNmy0usFBQXk5ubaDhG3aIXZPfUkZnfVacyQc6murO7AVODvqCtLRKQOPBpu0tPTWbhwIZ07d2bNmjVMmzaN6dOns2zZsho/45lnniE/P5+JEydWen3evHmEh4dbR2xsbH1VX6R2AjFbZu4H3gOOc6HL6g7MVZPBXGTwFeB2zJWT2wC/AJ7GXJ+n0J2VFhFpfDzaLRUQEEBiYiLbtm2zzk2fPp2dO3eyffv2S96/fPly7rrrLv71r38xcuTISssUFBRQUHChLyA3N5fY2Fh1S0nDdHFX1k4qhpkgKnZlVd5wKSLiNRrNVPDo6Gi6d+9uO9etWzfeeeedS9775ptvcuedd/L2229XGWwAAgMDCQzUiE1pJMq6sv7D+fk8sBv7QOUfMWdslR+q1g37QOVOaIFBEWmyPBpukpKS2L9/v+3cgQMH6NChQ7X3LV++nDvuuIPly5dzww03uLKKIp4VxIXAAub4mwPYw85+zK6ssu4sMDcZvXhWVoDbai0i4lEeDTczZ85k4MCBPP7440ycOJEdO3awaNEiFi1aZJWZM2cOWVlZ1jic5cuXc+utt7JgwQL69+9PTk4OAM2aNSM8PNwj34eI2zgwx+Z0xRynA+ZighfPyjoOvOs8QF1ZItKkeHz7hQ8++IA5c+Zw8OBB4uPjmTVrFlOnTrWuT5kyhUOHDpGSkgLAsGHD2LRpU4Xn3Hbbbfz973+/5NfTVHDxelV1ZV2sO/bWnQTUlSUiDZZ2Ba+Gwo00OQZm11X5sHOgknKtubBX1iCgF+rKEpEGQ+GmGgo3IlTelVXZrKx+2LuyrnBjHUVEymk0s6VExEMiMRcSvNn5+TxmwCkLO9swu7I2O48yZV1Zg5y/dkRdWSLS4CjciIjZSjPIeUDVXVlfO4+yhcRbYx+3o64sEWkA1C0lIjVznIpdWUUXlSnflTUIc2NRdWWJSD1Qt5SI1L8o4OfOAyp2ZW0FfqJiV9ZV2Ft31JUlIi6mcCMidXNxV1YpFbuyDgL7nEfZ8lXqyhIRF1O3lIi4Tk26spphn5WlriwRqYS6pUSkYbi4K+scFWdl/QRsch5lyndlDQLiUVeWiNSYwo2IuE8zYLDzgIpdWVuA76jYldWGil1Z/m6rtYg0MuqWEpGG5Rj2rqzdVN+VVTYrq4X7qigi7qduKRFpvFoDv3AeYO/K2oIZfE5i78pyUHFWlrqyRJoshRsRadgq68r6FvusrO+Ar5zHX53lyrqyylZT7om6skSaCHVLiUjjV9aVtQUz7HxGxa6sYCrOymrhviqKyOVRt5SINC2VdWXtxD4r6ySQ4jzA3pVV1roTh7qyRLyAwo2IeJ9mwBDnARe6sspadrYCaVTsyorGPm6nJ+rKEmmE1C0lIk1TDvZZWdV1ZZW17AwAwt1YRxGxqFtKRORS2gDjnAfYu7LKZmWdomJXVg/srTtxqCtLpIFRuBERgcq7sr7BPisrDfjSebzsLFe+K2sQcC3qyhLxMHVLiYjUVFlXVvlZWcUXlQkGfoZ9VlZ1XVm7gAeAp4DEeq6viBdRt5SIiCtc3JV1loqzsk4BG50H2LuyysbudOBCV9YyZ9lXUbgRqSdquRERqS9lXVnlZ2WlV1IuCrgGswvrb5jT1KOA1YABtMIMQCJiqc3Pb4UbERFXyqbirKyLu7Iq06T+Zha5NHVLiYg0FNHAL50HmF1ZjwPzMFt6qhKDOXan7OgDNHddNUW8iVpuREQ84TPMwHKxzpizsi4OPj6YY3fKB55ugK8L6yjSgKjlRkSksfDBDDJlv/4T6ArsBj4FPnH+mgV84TwWO+8NBfpiDzxt3Fh3kQZK4UZExBOiMINILHAnsAQ44jwfgn3NHTDDzafljl1AHvCx8yjTnordWc1c+H2INEDqlhIR8ZQCIABzWrgBFAKBNby3GPiaCy07nzo/X/w3uh/mzKzygacLZkuRSCOi2VLVULgREa+Vi9miU76FJ6eScuGYe2aVDzyRbqqjSB1pzI2ISFMUBgx3HmC24hzhQtD5BHMsz2lgnfMo0xF72OlFzVuRRBoYhRsREW/lwByD0x6Y4DxXhLk3VvnWnW8xFxtMB5Y7y/kDPbkQdvoDCWiTUGkU1C0lItLUncLcRqL87KwTlZSLwN6d1Q9o6Z4qiqhbSkREaq4FMMp5gNmdlYG9dWcP8CPmFhGry93bGXt31rWYg6RFPEjhRkRE7ByYY3A6Ar92nisEPsceeA6WO15zlgsEemMPPHGoO0vcSuFGREQuLQBzwcC+wO+c534EdmAPPCeB7c6jTCT2sNMPc8aWiIso3IiISN1EANc5DzC7s77DHnb2Aj8AHzgPMFtxrsQeeK5GP5Gk3uiPkoiI1A8H5hiczsAtznPnMcfrlA88GcA3zuPvznLNMFdTLh94YlF3ltSJwo2IiLhOEDDAeZQ5TsXurFxgi/MoE4097CRi7qclcgmaCi4iIp5VCuzHHna+AEouKucDdMceeK5CO6M3Edp+oRoKNyIijcBZ4DPsgSezknLNMVt0ygeetm6qo7iV1rkREZHGLRgY5DzKZGMPOzuBM0CK8ygTQ8Wd0UNcXWFpSBRuRESkcYgGfu48wOy2+gZ74PkK+N55vOMs54s5G6t84LkS7YzuxdQtJSIi3uMM5uagZdtIfAocraRcGOaaPeUDT2s31VHqRN1SIiLSNDUHhjqPMt9jb93ZhTk7a4PzKBNHxZ3Rm7m8xuICHm+Uy8rK4pZbbiEiIoLg4GB69uzJ7t27q71n06ZN9OnTh6CgIDp27MjLL7/sptqKiEijEwP8EngK2AScxlx752XgdswZWA7gEPAmMAtIwmzdSQTuBZZhzugqdW/VpW482nJz8uRJkpKSSE5OZvXq1URFRZGWlkaLFi2qvCcjI4Prr7+eqVOn8tprr7F161buueceIiMj+eUvf+m+youISOPkB/R0Hnc7z+VyYWf0suMYZhfXbuAlZ7kWVNxKopVbai214NExN7Nnz2br1q2kpqbW+J4HH3yQVatW8c0331jnpk2bxueff8727durudOkMTciInJJBubU80+5MH7nM8wVly+WgD3w9MTcQFTqVW1+fnu0W2rVqlUkJiYyYcIEoqKi6NWrF4sXL672nu3btzN69GjbuTFjxrBr1y6KiooqlC8oKCA3N9d2iIiIVMsBdAAmAn8BtmK27uwCXgRuBbo6y6YBbwAzgP6Y3Vn9nZ/fcF5vUlN3PM+j4SY9PZ2FCxfSuXNn1qxZw7Rp05g+fTrLli2r8p6cnBxat7YPaW/dujXFxcWcOHGiQvl58+YRHh5uHbGxsfX+fYiISBPgj7lmzj3AP4BvgZ+ANcAjwPWYm4kWYrb0PAdMBjoBUcANznJrMHdPF5fx6Jib0tJSEhMTefzxxwHo1asX+/btY+HChdx6661V3udw2HdSK+tZu/g8wJw5c5g1a5b1OTc3VwFHRETqxxXAaOcBZgtNOvaxO3uAE8CHzqNMV+zdWddgBii5bB4NN9HR0XTv3t12rlu3brzzzjtV3AFt2rQhJyfHdu748eP4+fkRERFRoXxgYCCBger8FBERN3BgjsFJACY5zxUAn2Mfv5OGOftqP+ZMLDA3Ge2NPfB0QDuj14FHw01SUhL79++3nTtw4AAdOnSo8p4BAwbw/vvv286tXbuWxMRE/P0VeUVEpIEJxJxV1Q/4vfPcCew7o+/A7Kra5jzKtMYedvpijumRanl0ttTOnTsZOHAgDz/8MBMnTmTHjh1MnTqVRYsWMXnyZMDsVsrKyrLG4WRkZNCjRw/uvvtupk6dyvbt25k2bRrLly+v0VRwzZYSEZEGxwAOYu/O2gsUX1TOAXTDHnh60CSW5G1Uu4J/8MEHzJkzh4MHDxIfH8+sWbOYOnWqdX3KlCkcOnSIlJQU69ymTZuYOXMm+/bto23btjz44INMmzatRl9P4UZERBqFc5jjdcoHnkOVlAum4s7oMe6pojs1qnDjbgo3IiLSaB2jYndWZSuctMUedhIxt6ZoxBRuqqFwIyIiXqMUc0p6+dadLzF3TC/PB7P7qnzg6Ya5Y3ojoXBTDYUbERHxavmYqymXDzxHKinXnIo7o0e7qY51oF3BRUREmqoQYLDzKHMUe9jZCZwBNjqPMrGYqyuXhZ3emGN6GhmFGxEREW/XFviF8wCz2+pr7IFnH2YLzxHgbWc5X8zFBcu37nSl+v0NdgEPYO7Cnlif30TNKdyIiIg0Nb7A1c7jLue5PMxgUj7wZGPO2NoDvOwsF465Zk/5wBNZ7tnLMFuDXsVj4UZjbkRERKQiA/gee9jZhTlF/WIxQHfMQctLMRckjAJWO5/TCnO15cugMTciIiJyeRyYY3BigfHOc0XAV9gDzzeYIeh7YG25+3/A3Gi0jBubUjy6K7iIiIg0Iv5AL2AaZgvN18ApYDYVE0VZmPEDXnNT/ZwUbkRERKTuwoF5mDOwKvMpMNl91QGFGxEREalPPhf96sEqiIiIiNRdFNAGc5zNy85f2zjPu5kGFIuIiMjli8Hc2DMAczDyfwGFQKD7q6JwIyIiIvWjfJBx4JFgA+qWEhERES+jcCMiIiJeReFGREREvIrCjYiIiHgVhRsRERHxKgo3IiIi4lUUbkRERMSrKNyIiIiIV1G4EREREa+icCMiIiJepcltv2AYBgC5ubkeromIiIjUVNnP7bKf49VpcuEmLy8PgNjYWA/XRERERGorLy+P8PDwass4jJpEIC9SWlrK0aNHCQ0NxeFw1Ouzc3NziY2N5ciRI4SFhdXrs+UCvWf30Ht2D71n99G7dg9XvWfDMMjLy6Nt27b4+FQ/qqbJtdz4+PgQExPj0q8RFham/+O4gd6ze+g9u4fes/voXbuHK97zpVpsymhAsYiIiHgVhRsRERHxKgo39SgwMJCHHnqIwMBAT1fFq+k9u4fes3voPbuP3rV7NIT33OQGFIuIiIh3U8uNiIiIeBWFGxEREfEqCjciIiLiVRRuRERExKso3NTSSy+9RHx8PEFBQfTp04fU1NRqy2/atIk+ffoQFBREx44defnll91U08atNu85OzubSZMm0bVrV3x8fLjvvvvcV9FGrjbveeXKlYwaNYrIyEjCwsIYMGAAa9ascWNtG6/avOctW7aQlJREREQEzZo148orr+TZZ591Y20br9r+/Vxm69at+Pn50bNnT9dW0IvU5l2npKTgcDgqHN9++63rKmhIjf3zn/80/P39jcWLFxtff/21MWPGDCMkJMQ4fPhwpeXT09ON4OBgY8aMGcbXX39tLF682PD39zdWrFjh5po3LrV9zxkZGcb06dONf/zjH0bPnj2NGTNmuLfCjVRt3/OMGTOMJ5980tixY4dx4MABY86cOYa/v7/x2WefubnmjUtt3/Nnn31mvPHGG8ZXX31lZGRkGK+++qoRHBxs/PWvf3VzzRuX2r7nMqdOnTI6duxojB492rj22mvdU9lGrrbveuPGjQZg7N+/38jOzraO4uJil9VR4aYW+vXrZ0ybNs127sorrzRmz55dafkHHnjAuPLKK23n7r77bqN///4uq6M3qO17Lm/o0KEKNzV0Oe+5TPfu3Y2HH364vqvmVerjPf/iF78wbrnllvqumlep63v+1a9+Zfzv//6v8dBDDync1FBt33VZuDl58qQbamdSt1QNFRYWsnv3bkaPHm07P3r0aLZt21bpPdu3b69QfsyYMezatYuioiKX1bUxq8t7ltqrj/dcWlpKXl4eLVu2dEUVvUJ9vOc9e/awbds2hg4d6ooqeoW6vuelS5eSlpbGQw895Ooqeo3L+TPdq1cvoqOjGTFiBBs3bnRlNZvexpl1deLECUpKSmjdurXtfOvWrcnJyan0npycnErLFxcXc+LECaKjo11W38aqLu9Zaq8+3vMzzzxDfn4+EydOdEUVvcLlvOeYmBh++OEHiouLmTt3LnfddZcrq9qo1eU9Hzx4kNmzZ5Oamoqfn34U1lRd3nV0dDSLFi2iT58+FBQU8OqrrzJixAhSUlIYMmSIS+qp/6K15HA4bJ8Nw6hw7lLlKzsvdrV9z1I3dX3Py5cvZ+7cufzrX/8iKirKVdXzGnV5z6mpqZw5c4ZPPvmE2bNn06lTJ37961+7spqNXk3fc0lJCZMmTeLhhx+mS5cu7qqeV6nNn+muXbvStWtX6/OAAQM4cuQITz/9tMKNp7Vq1QpfX98KyfT48eMVEmyZNm3aVFrez8+PiIgIl9W1MavLe5bau5z3/Oabb3LnnXfy9ttvM3LkSFdWs9G7nPccHx8PwNVXX82xY8eYO3euwk0Vavue8/Ly2LVrF3v27OF3v/sdYHazGoaBn58fa9euZfjw4W6pe2NTX39H9+/fn9dee62+q2fRmJsaCggIoE+fPqxbt852ft26dQwcOLDSewYMGFCh/Nq1a0lMTMTf399ldW3M6vKepfbq+p6XL1/OlClTeOONN7jhhhtcXc1Gr77+PBuGQUFBQX1Xz2vU9j2HhYXx5ZdfsnfvXuuYNm0aXbt2Ze/evfzsZz9zV9Ubnfr6M71nzx7XDs1w29BlL1A2/W3JkiXG119/bdx3331GSEiIcejQIcMwDGP27NnGb37zG6t82VTwmTNnGl9//bWxZMkSTQWvgdq+Z8MwjD179hh79uwx+vTpY0yaNMnYs2ePsW/fPk9Uv9Go7Xt+4403DD8/P+PFF1+0Tec8deqUp76FRqG27/mFF14wVq1aZRw4cMA4cOCA8be//c0ICwsz/vCHP3jqW2gU6vL3RnmaLVVztX3Xzz77rPHuu+8aBw4cML766itj9uzZBmC88847Lqujwk0tvfjii0aHDh2MgIAAo3fv3samTZusa7fddpsxdOhQW/mUlBSjV69eRkBAgBEXF2csXLjQzTVunGr7noEKR4cOHdxb6UaoNu956NChlb7n2267zf0Vb2Rq856fe+4546qrrjKCg4ONsLAwo1evXsZLL71klJSUeKDmjUtt/94oT+Gmdmrzrp988kkjISHBCAoKMq644gpj0KBBxr///W+X1s9hGM4RriIiIiJeQGNuRERExKso3IiIiIhXUbgRERERr6JwIyIiIl5F4UZERES8isKNiIiIeBWFGxEREfEqCjciIiLiVRRuRERExKso3IiIiIhXUbgRERERr6JwIyJulZeXx+TJkwkJCSE6Oppnn32WYcOGcd999wHw2muvkZiYSGhoKG3atGHSpEkcP37cuj8lJQWHw8GaNWvo1asXzZo1Y/jw4Rw/fpzVq1fTrVs3wsLC+PWvf83Zs2et+4YNG8bvf/977rvvPq644gpat27NokWLyM/P5/bbbyc0NJSEhARWr15t3VNSUsKdd95JfHw8zZo1o2vXrixYsMBt70pE6kbhRkTcatasWWzdupVVq1axbt06UlNT+eyzz6zrhYWFPProo3z++ee89957ZGRkMGXKlArPmTt3Li+88ALbtm3jyJEjTJw4kfnz5/PGG2/w73//m3Xr1vH888/b7vnHP/5Bq1at2LFjB7///e/57W9/y4QJExg4cCCfffYZY8aM4Te/+Y0VikpLS4mJieGtt97i66+/5k9/+hP/8z//w1tvveXSdyQil8mle46LiJSTm5tr+Pv7G2+//bZ17tSpU0ZwcLAxY8aMSu/ZsWOHARh5eXmGYRjGxo0bDcBYv369VWbevHkGYKSlpVnn7r77bmPMmDHW56FDhxqDBg2yPhcXFxshISHGb37zG+tcdna2ARjbt2+v8nu45557jF/+8pc1/6ZFxO3UciMibpOenk5RURH9+vWzzoWHh9O1a1fr8549e7j55pvp0KEDoaGhDBs2DIDMzEzbs6655hrr961btyY4OJiOHTvazpXvzrr4Hl9fXyIiIrj66qtt9wC2+15++WUSExOJjIykefPmLF68uEJdRKRhUbgREbcxDAMAh8NR6fn8/HxGjx5N8+bNee2119i5cyfvvvsuYHZXlefv72/93uFw2D6XnSstLa3ynsruK6tX2X1vvfUWM2fO5I477mDt2rXs3buX22+/vUJdRKRh8fN0BUSk6UhISMDf358dO3YQGxsLQG5uLgcPHmTo0KF8++23nDhxgieeeMK6vmvXLo/VNzU1lYEDB3LPPfdY59LS0jxWHxGpGbXciIjbhIaGctttt3H//fezceNG9u3bxx133IGPjw8Oh4P27dsTEBDA888/T3p6OqtWreLRRx/1WH07derErl27WLNmDQcOHOCPf/wjO3fu9Fh9RKRmFG5ExK3+8pe/MGDAAG688UZGjhxJUlIS3bp1IygoiMjISP7+97/z9ttv0717d5544gmefvppj9V12rRpjBs3jl/96lf87Gc/48cff7S14ohIw+Qwyjq7RUQ8ID8/n3bt2vHMM89w5513ero6IuIFNOZGRNxqz549fPvtt/Tr14/Tp0/zyCOPAHDzzTd7uGYi4i0UbkTE7Z5++mn2799PQEAAffr0ITU1lVatWnm6WiLiJdQtJSIiIl5FA4pFRETEqyjciIiIiFdRuBERERGvonAjIiIiXkXhRkRERLyKwo2IiIh4FYUbERER8SoKNyIiIuJV/j9pkUfN+qUSjgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "price_ww = []\n",
    "price_bb = []\n",
    "gammas = [0.0001, 0.001, 0.01, 0.05, 0.1, 0.3, 0.5]\n",
    "TC.cost_b = 0.01\n",
    "TC.cost_s = 0.01\n",
    "\n",
    "for gamma in gammas:\n",
    "    TC.gamma = gamma\n",
    "    price_ww.append(TC.price(N=400, TYPE=\"writer\"))\n",
    "    price_bb.append(TC.price(N=400, TYPE=\"buyer\"))\n",
    "\n",
    "plt.plot(gammas, price_ww, color=\"green\", marker=\"o\", label=\"Writer\")\n",
    "plt.plot(gammas, price_bb, color=\"magenta\", marker=\"*\", label=\"Buyer\")\n",
    "plt.xlabel(\"gamma\")\n",
    "plt.ylabel(\"price\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So far we have found that:\n",
    "\n",
    "- The option pricing is an increasing function of the risk aversion coefficient for the writer, and a decreasing function for the buyer.\n",
    "\n",
    "- The option pricing is an increasing function of the transaction costs for the writer, and a decreasing function for the buyer."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec5.3'></a>\n",
    "### Is the drift important? \n",
    "\n",
    "As we know from the \"classical\" no-arbitrage martingale pricing theory, the option price does not depend on the stock expected value. \n",
    "\n",
    "However, this model is a utility based model i.e. a model that does not consider a risk neutral investor. \n",
    "\n",
    "We can see that in this model the option price depends on the drift. \n",
    "\n",
    "If we consider a high risk aversion coefficient, the option price is not very sensitive to the drift. If instead we choose a small value of $\\gamma$, i.e. the investor is risk neutral, the drift plays the role of the risk neutral expected return $r$ and therefore changing $\\mu$, is like changing $r$.\n",
    "\n",
    "Following Hodges-Neuberger [2], in the practical computations **it is better to set $\\mu=r$.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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0ubNm/XNN98oOjraab/KykodOPBDJ70hQ4YQbAB4pKi8yBFiNhRs0MajG2Wrcv17OqlzktPopeyUbMVExASgxmgPAhpuHnzwQZWWlmrAgAEKDg5WXV2dHn/8cV177bWN7lNUVKTExESnbYmJiaqtrVVJSYmSk50XGps3b54eeeSR1lcyUvYWlJbYKvctNf+RNLyFn90CUVFR6tOnj+N1VlaWYmJitGTJEkcgPPs2UU2Na0e7W265RX/5y180e/ZsLVu2TDfddJOjlaa+vl5ZWVl69dVXXfaLj493qgcAnOtU9SltLtzsNMvvEdsRl3KRoZHKTsl2jF66oPsFSrOmcXsJHgtouHn99de1fPlyvfbaa8rMzNTWrVt1zz33KCUlRdOmTWt0v3Mv8IYfbHcX/pw5czRr1izHa5vNprS0NM8raVGLbg1JkhqWDAmSVH/Wc6dWHOs8WCwWBQUF6fTp047wUVhYqC5dukiydyg+1w033KAHHnhACxYs0K5du5z+O4wcOVKvv/66EhISZLVa/fIdALRPdfV12n18t9PopZ3FO1VvOA8YsciizIRMp9FLmQmZCgliMC9aL6BXz/3336/Zs2frmmuukWS/nXH48GHNmzev0XCTlJSkoiLn5eKLi4sVEhLituNseHi4wsPDvV/5piRISpKUJulXkpZKOnJmuw9VVVU5zs2JEyf0l7/8ReXl5briiivUp08fpaWlae7cuXrssce0f/9+/elPf3I5RpcuXTR16lTdf//9mjBhglJTUx3vXX/99fqf//kfTZkyRY8++qhSU1OVn5+vVatW6f7773cqC6BjKbAVOOaS2XB0gzYd3aTyatdm7+7R3e2tMWdaZbKSsxQdHu3miEDrBTTcVFRUuHR2DQ4ObnIo+EUXXaS3337baduHH36o7Oxsl/42AZMq6ZCkMNlbfn4tqVqSjzPW+++/77gtFx0drQEDBuif//ynLrnkEknSihUrdPvtt2vYsGEaNWqUHnvsMV111VUux/nVr36l1157TTfffLPT9sjISH322Wd68MEHNXXqVJWVlal79+669NJLackBOpCyqjJtOrrJafTS0bKjLuU6h3XWqJRRTrP8drd2D0CN0dFYjACO1Z0+fbo+/vhj/fWvf1VmZqa2bNmiX//617r55pv11FNPSbLfViooKNDLL78syT4UfPDgwbrtttt0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AF7R6nluAAAA2iLCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMJWAh5uCggLdcMMNiouLU2RkpIYPH67Nmzc3Wj43N1cWi8Xl8fXXX/ux1gAAoK0KCeSHnzhxQmPGjFFOTo7ee+89JSQk6MCBA4qNjW12371798pqtTpex8fH+7CmAACgvQhouHnqqaeUlpamZcuWObalp6d7tG9CQoJHIQgAAHQsAb0ttXr1amVnZ+uqq65SQkKCRowYoSVLlni074gRI5ScnKxLL71Ua9asabRcVVWVbDab0wMAAJhXQMPNwYMHtXDhQvXt21cffPCBZsyYobvvvlsvv/xyo/skJydr8eLFWrlypVatWqX+/fvr0ksv1Weffea2/Lx58xQTE+N4pKWl+errAACANsBiGIYRqA8PCwtTdna21q1b59h29913a+PGjVq/fr3Hx7niiitksVi0evVql/eqqqpUVVXleG2z2ZSWlqbS0lKnPjsAAKDtstlsiomJ8ej3O6AtN8nJyRo0aJDTtoEDByo/P79Fxxk9erT279/v9r3w8HBZrVanBwAAMK+AhpsxY8Zo7969Ttv27dunnj17tug4W7ZsUXJysjerBgAA2qmAjpa69957dfHFF+uJJ57Q1VdfrQ0bNmjx4sVavHixo8ycOXNUUFDg6Iczf/58paenKzMzU9XV1Vq+fLlWrlyplStXBuprAACANiSg4WbUqFF68803NWfOHD366KPKyMjQ/Pnzdf311zvKFBYWOt2mqq6u1n333aeCggJ16tRJmZmZ+ve//63JkycH4isAAIA2JqAdigOhJR2SAABA29BuOhQDAAB4G+EGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYSsDDTUFBgW644QbFxcUpMjJSw4cP1+bNm5vc59NPP1VWVpYiIiLUq1cvLVq0yE+1BQAAbV1IID/8xIkTGjNmjHJycvTee+8pISFBBw4cUGxsbKP75OXlafLkybr11lu1fPlyff7557rjjjsUHx+vX/ziF/6rPAAAaJMshmEYgfrw2bNn6/PPP9fatWs93ufBBx/U6tWrtWfPHse2GTNmaNu2bVq/fr1L+aqqKlVVVTle22w2paWlqbS0VFar9fy+AAAA8AubzaaYmBiPfr8Deltq9erVys7O1lVXXaWEhASNGDFCS5YsaXKf9evXa8KECU7bJk6cqE2bNqmmpsal/Lx58xQTE+N4pKWlefU7AACAtiWg4ebgwYNauHCh+vbtqw8++EAzZszQ3XffrZdffrnRfYqKipSYmOi0LTExUbW1tSopKXEpP2fOHJWWljoeR44c8fr3AAAAbUdA+9zU19crOztbTzzxhCRpxIgR2rVrlxYuXKgbb7yx0f0sFovT64Y7a+dul6Tw8HCFh4d7sdYAAKAtC2jLTXJysgYNGuS0beDAgcrPz290n6SkJBUVFTltKy4uVkhIiOLi4nxSTwAA4KFNkv7rzHOABDTcjBkzRnv37nXatm/fPvXs2bPRfS666CJ99NFHTts+/PBDZWdnKzQ01Cf1BAAAHnpZ0hpJrwSuCgENN/fee6+++OILPfHEE/rmm2/02muvafHixbrzzjsdZebMmeN0i2rGjBk6fPiwZs2apT179uhvf/ubli5dqvvuuy8QXwEAAByWtFnSV5JeP7Pt72debz7zvh8FtM/NqFGj9Oabb2rOnDl69NFHlZGRofnz5+v66693lCksLHS6TZWRkaF3331X9957r5577jmlpKRowYIFzHEDAEAgVEhKd7P9uKSss177ceKZgM5zEwgtGScPAECHZkgqkb3l5bCkfDfPrgOVnYVIelHS9c2Ua0ZLfr8D2nIDAAACqEbSt2o8uORLOu3BcaySEiR94+a9LyWN9EZlPUe4AQDArGxqPLgclnRUzd8uskhK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+mrHNjNfb746Z1xrjUtNTVV4eLiys7N155136pZbbnG8549rzfSrglssFqfXhmG4bGuu/LnbW3rM9sjb52306NEaPXq04/0xY8Zo5MiRevbZZ7VgwQJvVTugfHFdcK21XEe41qTWn7cVK1Zo7ty5+te//qWEhASvHLO98PY541pr3Nq1a1VeXq4vvvhCs2fPVp8+fXTttdee1zFbwrThplu3bgoODnZJgsXFxS6JsUFSUpLb8iEhIYqLi2uyTGPHbG98dd7OFRQUpFGjRpniXzitOWee4FrzDjNda9L5nbfXX39dv/rVr/TPf/5TP/7xj53eM/P15qtzdi6utR9kZGRIkoYMGaJjx45p7ty5jnDjj2vNtLelwsLClJWVpY8++shp+0cffaSLL77Y7T4XXXSRS/kPP/xQ2dnZCg0NbbJMY8dsb3x13s5lGIa2bt2q5ORk71Q8gFpzzjzBteYdZrrWpNaftxUrVmj69Ol67bXXdNlll7m8b+brzVfn7Fxca+4ZhqGqqirHa79ca17rmtwGNQxhW7p0qbF7927jnnvuMaKiooxDhw4ZhmEYs2fPNn75y186yjcMab733nuN3bt3G0uXLnUZ0vz5558bwcHBxpNPPmns2bPHePLJJ001XNIwfHPe5s6da7z//vvGgQMHjC1bthg33XSTERISYnz55Zd+/36+0NJzZhiGsWXLFmPLli1GVlaWcd111xlbtmwxdu3a5Xifa611583s15phtPy8vfbaa0ZISIjx3HPPOQ1ZPnnypKOM2a83X5wzrjXX8/aXv/zFWL16tbFv3z5j3759xt/+9jfDarUav/3tbx1l/HGtmTrcGIZhPPfcc0bPnj2NsLAwY+TIkcann37qeG/atGnG+PHjncrn5uYaI0aMMMLCwoz09HRj4cKFLsf85z//afTv398IDQ01BgwYYKxcudLXX8PvvH3e7rnnHqNHjx5GWFiYER8fb0yYMMFYt26dP76K37T0nElyefTs2dOpDNday89bR7jWDKNl5238+PFuz9u0adOcjmn2683b54xrzfW8LViwwMjMzDQiIyMNq9VqjBgxwnj++eeNuro6p2P6+lqzGMaZnp8AAAAmYNo+NwAAoGMi3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3ABoNy655BLddddduueee9SlSxclJiZq8eLFOnXqlG666SZFR0erd+/eeu+99yRJL774omJjY52O8dZbb8lisQSg9gD8hXADoF156aWX1K1bN23YsEF33XWXbr/9dl111VW6+OKL9dVXX2nixIn65S9/qYqKikBXFUCAEG4AtCvDhg3TQw89pL59+2rOnDnq1KmTunXrpltvvVV9+/bV7373O3333Xfavn17oKsKIEAINwDalaFDhzr+HBwcrLi4OA0ZMsSxLTExUZJUXFzs97oBaBsINwDaldDQUKfXFovFaVtDf5r6+noFBQXJMAyn8jU1Nb6vJICAItwAMK34+HiVlZXp1KlTjm1bt24NXIUA+AXhBoBpXXjhhYqMjNRvfvMbffPNN3rttdf04osvBrpaAHyMcAPAtLp27arly5fr3Xff1ZAhQ7RixQrNnTs30NUC4GMW49wb0gAAAO0YLTcAAMBUCDcAAMBUCDcAAMBUCDcAAMBUCDcAAMBUCDcAAMBUCDcAAMBUCDcAAMBUCDcAAMBUCDcAAMBUCDcAAMBU/j8ARu5q+xGSxAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "price_mu1 = []\n",
    "price_mu2 = []\n",
    "mus = [0.01, 0.05, 0.1, 0.2, 0.3]\n",
    "TC.gamma = 1  # high value of risk aversion\n",
    "TC.cost_b = 0.01\n",
    "TC.cost_s = 0.01\n",
    "\n",
    "for mu in mus:\n",
    "    TC.mu = mu\n",
    "    price_mu1.append(TC.price(N=400, TYPE=\"writer\"))\n",
    "    price_mu2.append(TC.price(N=400, TYPE=\"buyer\"))\n",
    "\n",
    "plt.plot(mus, price_mu1, color=\"green\", marker=\"o\", label=\"Writer\")\n",
    "plt.plot(mus, price_mu2, color=\"magenta\", marker=\"*\", label=\"Buyer\")\n",
    "plt.xlabel(\"mu\")\n",
    "plt.ylabel(\"price\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Other references\n",
    "\n",
    "[1] Cantarutti, N., Guerra, J., Guerra, M., and Grossinho, M. (2019). Option pricing in exponential Lévy models with transaction costs. [*ArXiv*](https://arxiv.org/abs/1611.00389). \n",
    "\n",
    "[2] Hodges, S. D. and Neuberger, A. (1989). Optimal replication of contingent claims under transaction costs. The Review of Future Markets, 8(2):222–239."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}