diff --git a/examples/generate_strategies.ipynb b/examples/generate_strategies.ipynb new file mode 100644 index 0000000..f33f02a --- /dev/null +++ b/examples/generate_strategies.ipynb @@ -0,0 +1,600 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generate Strategies\n", + "\n", + "Sometimes it can be useful to compare different strategies against each other. This module is intended to help the user to quickly put\n", + "together common option trading strategies.\n", + "\n", + "This is (so far) based on this [Investopedia's article](https://www.investopedia.com/trading/options-strategies/).\n", + "\n", + "**Caveat: Options are very risky derivatives and, like any other type of financial vehicle, trading options requires due diligence. Transactions shown as examples of trading strategies with options in this notebook are not recommendations.**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2024-03-24T20:28:33.679298Z", + "start_time": "2024-03-24T20:28:32.978640Z" + } + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "\n", + "import datetime as dt\n", + "import sys\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from numpy import zeros\n", + "\n", + "from optionlab import VERSION, Inputs, StrategyEngine, Outputs, plot_pl\n", + "from optionlab.strategies import generate_strategies\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2024-03-13T02:19:27.622407Z", + "start_time": "2024-03-13T02:19:27.617891Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Python version: 3.10.13 (main, Aug 24 2023, 12:59:26) [Clang 15.0.0 (clang-1500.0.40.1)]\n", + "OptionLab version: 0.1.7\n" + ] + } + ], + "source": [ + "print(\"Python version: %s\" % sys.version)\n", + "print(\"OptionLab version: %s\" % VERSION)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The underlying asset is Apple stock (ticker: APPL). We consider the stock price on January 18, 2021. Here we can iterate through each of the supported strategies and see which one has the highest PoP and return." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2024-03-24T20:28:34.664840Z", + "start_time": "2024-03-24T20:28:34.662146Z" + } + }, + "outputs": [], + "source": [ + "stockprice = 164.04\n", + "volatility = 0.272\n", + "startdate = dt.date(2021, 11, 22)\n", + "targetdate = dt.date(2021, 12, 17)\n", + "interestrate = 0.04\n", + "minstock = stockprice - round(stockprice * 0.5, 2)\n", + "maxstock = stockprice + round(stockprice * 0.5, 2)\n", + "\n", + "\n", + "def print_outputs(out: Outputs):\n", + " print(\"Days remaining to the target date: %d\" % st.days_to_target)\n", + " print(\"Strategy cost: %.2f\" % out.strategy_cost)\n", + " print(\"Minimum return: %.2f\" % out.minimum_return_in_the_domain)\n", + " print(\"Maximum return: %.2f\" % out.maximum_return_in_the_domain)\n", + " print(\"Profitable stock price range:\")\n", + "\n", + " for low, high in out.profit_ranges:\n", + " print(\" %.2f ---> %.2f\" % (low, high))\n", + "\n", + " print(\"Probability of Profit (PoP): %.1f%%\" % (out.probability_of_profit * 100.0))" + ] + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "## Covered call" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Days remaining to the target date: 18\n", + "Strategy cost: -16885.00\n", + "Minimum return: -8683.00\n", + "Maximum return: 615.00\n", + "Profitable stock price range:\n", + " 168.86 ---> inf\n", + "Probability of Profit (PoP): 34.6%\n", + "\n", + "\n", + "P/L profile diagram:\n", + "--------------------\n", + "The vertical green dashed line corresponds to the position of the stock's spot price. The right and left arrow markers indicate the strike prices of calls and puts, respectively, with blue representing long and red representing short positions.\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABccUlEQVR4nO3dd1xV9f8H8Ne9bFDAwRBFcOTAmYqG2yLRTEBNCfdIszDFvVdp5sgcKaQZaI6cwE39abhNyb1z5kBFwAVX9uXez+8P8n69CQh44cDl9Xw8eHjH5577Op/i8r5nvWVCCAEiIiIiKvHkUgcgIiIiIv1gYUdERERkIFjYERERERkIFnZEREREBoKFHREREZGBYGFHREREZCBY2BEREREZCBZ2RERERAbCWOoAhkij0SAmJgZly5aFTCaTOg4RERGVYEIIvHjxAk5OTpDLc98mx8KuEMTExMDZ2VnqGERERGRA7t+/jypVquQ6hoVdIShbtiyArP8A1tbWEqchouJIrVHjfOx5AEBjx8YwkhtJG4iIii2lUglnZ2dtfZEbFnaF4OXuV2traxZ2RJSt5IxkvL/5fQBA0uQkWJlaSZyIiIq7vBzexZMniIiIiAwECzsiIiIiA8HCjoiIiMhAsLAjIiIiMhAs7IiIiIgMBAs7IiIiIgPBy50QEUnAxMgEM9vN1N4mItIHFnZERBIwNTLFrPazpI5BRAaGu2KJiIiIDAS32BERSUAjNLj6+CoAoK5dXchl/J5NRG+PhR0RkQRSVamoH1QfAFuKEZH+8CsiERERkYFgYUdERERkIFjYERERERkIHmNHREQQQmD9+vU4d+6c1FGI6D/S09PzPJaFHRERYcGCBZg0aZLUMYjoLbGwIyIq5Xbt2oXJkycDAAYOHAhHR0eJExHRq9LT0/HDDz/kaSwLOyIiCZgYmWCcxzjtbalcvXoV/v7+EEJg+PDhCAoKkiwLEWVPqVTmubCTCSFEIecpdZRKJWxsbJCYmAhra2up4xARZev58+do3rw5bt26hXbt2uGPP/6Aqamp1LGI6D/yU1fwrFgiolIoMzMTfn5+uHXrFlxdXbF161YWdUQGgLtiiYgkoBEaRCdGAwCq2lQt8pZi48ePR2RkJKysrBAREQE7O7sifX8iKhws7IiIJJCqSkW1pdUAFH1LsZCQECxZsgQAsG7dOjRs2LDI3puIChd3xRIRlSLHjx/H8OHDAQCzZ89G9+7dJU5ERPrEwo6IqJS4f/8+unfvjoyMDPTo0QPTpk2TOhIR6RkLOyKiUiAlJQW+vr6Ii4tDo0aNsHbtWsjl/BNAZGj4W01EZOCEEBgyZAjOnj0LOzs7REREwMqq6I7pI6Kiw8KOiMjAfffdd/jtt99gbGyM7du3w8XFRepIRFRIWNgRERkwhUKBqVOnAgBWrFiBNm3aSJyIiAoTL3dCRCQBY7kxvmz2pfZ2Ybhy5Qr69OkDIQQCAgIwbNiwQnkfIio+2FKsELClGBFJ7enTp2jevDlu376NDh06YO/evTAxka4nLREVHFuKERGVYiqVCr169cLt27dRrVo1bN26lUUdUSnBXbFERBIQQuBJyhMAQEXLipDJZHpb9tixY3HgwAGUKVMGCoUCFSpU0Nuyiah44xY7IiIJpKhSYL/IHvaL7JGiStHbcn/++WcsX74cALB+/XrUr1//9UHp6QCPwiEySCzsiIgMxJ9//okvv8w6IeObb76Bj4/P64Pu3wdcXIAWLYC9e1ngERkYFnZERAYgOjoa3bt3h0qlQs+ePbWXOHnN48dAXBxw5gzQqRMLPCIDw8IuBytWrICrqyvMzc3RokULnDx5UupIRETZSk5Oho+PDx4/fox3330XISEhbz5mT6PJ+vfsWRZ4RAaEhV02Nm/ejDFjxmDmzJk4e/YsGjVqBC8vL8THx0sdjYhIhxACgwYNwvnz52Fvb4/w8PD8tQtTq7P+ZYFHZBBY2GVj8eLFGDp0KAYNGgQ3NzcEBwfD0tISv/zyi9TRiIh0zJ07V3s5kx07dqBq1aoFWxALPCKDwMud/EdGRgbOnDmDyZMnax+Ty+Xw9PREVFRUvpaVHpuO9OT01x6Xm8phUsFEZxxy+OyUmchgWtH0f/niMiA02Q+WGctgavfK2PgMCHUOY41kMLV/ZezjDIjMHMbKZTB1eGXskwwIVU6BATNHM+1d1VMVNBma7McCMKv0ytjnKmjSch5r6miq3b30xrEOppDJs8ZmJmZCnaLOeay9KWRG/45VZkKdnPNYEzsTyI2zvg9lvsiEOimXsRVNIDf5d2xSJtQvchlbwQRy06yx6mQ1MpWZOY8tbwK52b9jU9TITMx5rLGtMYwsjLLGpqqRmZDHsWlqZD7PZay1MYysssZq0jVQPVPlONaorBGMy2R91GgyNFA9zWVsGSMYl/13rEoD1ZNcxloZwdj637GZGqge5zLW0gjGNlljhVogIz4jx7FyCzlMbLN+P4VGICMul7HmcpiU+3esEMiIzWWsmRwm5f/3e5/xKAPlX5TX3jY2/d/HcV4/IxT/p8D06dMBAEFBQWjVqtWbPyNyTPivfws8cfYsZJ06Ae7uwDffIOPd9hA5/C/Mz4j/4WfEv2P5GZE19i0+I9If/a9+SH/xei2RExZ2//HkyROo1Wo4ODjoPO7g4IBr165l+5r09HSkp/9v0pVKJQDgZO2TsMLru0RsP7BF432NtfdPuZ3K8RfE+j1rNIlqor1/uulpZDzM/n8MqwZWcL/orr1/rs05pN5IzXaseQ1zvHfrPe39i14XkXQuKduxpo6maPmopfb+Zd/LUB5TZjvWqKwR2ij/14vy795/4/kfz7MdCyOgfWZ77d3rQ67jSdiT7McCaJvWFjKzrA/Xm1/dRPyGnHeNt3raSvsL8s+Ef/Bo1aMcx753/z2YVzEHANyddRcPfniQ49jm15rDsrYlACB6fjSi50bnOLbpmaYo26QsAODh8oe4M+VOjmMbH20M29a2AIBHax7h1qhbOY5tuKchyntlFQRxG+NwY+iNHMfW214Pdt3tAABPwp/gau+rOY6t82sdOPZ1BAA8/+M5LvtcznFsreBacPrcCQCQcDQBFz+8mOPYGt/XgPMYZwDAizMvcK7luRzHun7jCtdprgCAlKspON3odI5jq06qiurzqgMA0u6m4eQ7OR8HW/mrynhn2TsAsr7wRDnl/CXNcYgj6vxcBwCgTlLnOtb+U3u4bXIDkPXHILexFbpWQANFA+39i7UuYnvGdgDAhe8v6IzNy2fEbdzGCIwAAIwcORJDhgwBkIfPiFCjHDO+SvafLXgqCzfcSh2M52j62lh+RvwPPyOy8DMiy9t8Rvzl+hdERtYXpGQk5/i6/2Jhpwfz5s3D7NmzX39CDiCb45dffkvU3jeSATl91v7n8dzGvvxGqe+xb5VBnvexkL/+XjnJbblvM7awMkCW9+W+cewr0yaTvSGD7D+3cxmrc7B9YWVAPjK8YexrB5Loaex/fz8LK4PMSAZhlPNW8v+OfXXZiSIR0zTTkIpUNLdpju+//z7Hsa8tJ7/+LfCsUv9GTSzHKaPQ18fwM+Ltl8vPiP/hZ0TW+7z6GSEA5LwBWvd17BWrKyMjA5aWlti2bRt8fX21jw8YMAAJCQmIiIh47TXZbbFzdnZmr1gi0juVSoWOHTvi0KFDqFGjBk6cOJG/zhJnzwJNX9/qliMjo6zizt0d+PZbwNMz/6GJ6K2wV+xbMDU1RdOmTbF//37tYxqNBvv374eHh0e2rzEzM4O1tbXODxFRboQQSM5IRnJGMvLz/Xr06NE4dOgQypYti4iIiMJrF2b076aFJk2APXuAEydY1BGVANwVm40xY8ZgwIABaNasGZo3b44lS5YgOTkZgwYNkjoaERmIFFUKyswrAwBImpwEK9M3X6Lkp59+wooVKyCTybBhwwbUq1dP/8FebqFr0gT45hugY0dAj31siahwsbDLhp+fHx4/fowZM2YgNjYWjRs3xp49e147oYKIqKgcOXIEI0ZknSwxd+5cdO3aVb9vwIKOyCCwsMvBiBEjtB+iRERSunfvHnr06IHMzEx8+umnmDRpkv4WzoKOyKCwsCMiKsaSkpLg7e2NJ0+eoEmTJlizZs2b24XlhVye1VaMBR2RQWFhR0RUTGk0GgwcOBAXL16Eg4MDwsPDYWlp+XYLtbcHHB0BZ2cWdEQGiIUdEVExNWfOHGzfvh2mpqYICwuDs7Pz2y+0ShXg7l3A1JQFHZEBYmFHRFQM7dixAzNnzgQABAcH53i5pQIxM3vzGCIqkVjYERFJwEhuhE/cPtHeftWFCxfQr18/AEBgYCAvtUREecbOE4UgP1eIJiJ61ePHj+Hu7o579+7hww8/xO7du2FszO/gRKUZO08QEZVAGRkZ+OSTT3Dv3j3UrFkTmzdvZlFHRPnCwo6IqJgYNWoUjhw5grJly0KhUKBcuXJSRyKiEoZfBYmIJJCckazTUmzdmnUIDg6GTCbDpk2bULduXYkTElFJxC12REQSO3L4CEaOHAkA+O6779ClSxeJExFRScXCjohISs+Bvv59kZmZiT59+mD8+PFSJyKiEoyFHRGRVNIBbAKePX2GZs2aYfXq1fppF0ZEpRYLOyIiCWg0GiAMQDzg4JjVLszCwkLqWERUwrGwIyKSwLdzvgWuATACNm3ZhMqVK0sdiYgMAAs7IqIitnXrVnw397usO12B5i2aSxuIiAwGL3dCRFSEzp8/j4EDBwIAqn1UDXV71n2tpRgRUUGxsCMiKiLx8fHw8fFBSkoKOnXqhJ2KnTAyYlFHRPrDXbFEREUgIyMDPXr0QHR0NGrVqoVNmzaxqCMivWNhR0RUyIQQGDFiBP7880/Y2NhAoVDA1tZW6lhEZIBY2BERFbKVK1di9erVkMvl2LRpE2rXro3kjGRYfWsFq2+tkJyRLHVEIjIQPMaOiKgQHThwAKNGjQIAzJ8/H507d9Y+l6JKkSoWERkobrEjIiokt2/fRs+ePaFWq9GvXz+MHTtW6khEZOBY2BERFYIXL17A29sbz549Q/PmzbFq1Sq2CyOiQsfCjohIzzQaDfr27YsrV66gUqVKCAsLg7m5udSxiKgUYGFHRKRnM2bMgEKhgJmZGcLDw+Hk5CR1JCIqJVjYERHp0ebNmzF37lwAwM8//4zmzdkujIiKDs+KJSLSk7Nnz2LQoEEAgAkTJqBv3745jpXL5Gjn0k57m4hIH2RCCCF1CEOjVCphY2ODxMREWFtbSx2HiIpAXFwcmjVrhgcPHuCjjz6CQqFgZwki0ov81BX8mkhE9JbS09PRvXt3PHjwALVr18bGjRtZ1BGRJFjYERG9BSEEvvzySxw/fhy2trZQKBSwsbGROhYRlVIs7IiI3sLy5cvxyy+/QC6XY/PmzahVq1aeXpeckQy7hXawW2jHlmJEpDc8eYKIqID27duHMWPGAAAWLVqEjh075uv1T1KeFEYsIirFuMWOiKgAbt26hV69ekGtVmPgwIEIDAyUOhIREQs7IqL8UiqV8Pb2xvPnz/Hee+8hODiY7cKIqFhgYUdElA9qtRp9+vTB1atXUblyZezYsQNmZmZSxyIiAsDCjogoX6ZPn46dO3fC3Nwc4eHhqFSpktSRiIi0WNgREeXRpk2bMG/ePADAL7/8gmbNmkmciIhIF8+KJSLKg9OnT2Pw4MEAgEmTJsHf3/+tlieXydHMqZn2NhGRPrClWCFgSzEiw/Lo0SO4u7vj4cOH+PjjjxEeHs7OEkRUZNhSjIhIT162C3v48CHq1q2LDRs2sKgjomKLhR0RUQ6EEBg+fDj++usvlCtXDgqFglvhiahYY2FHRJSDJUuWIDQ0FEZGRtiyZQtq1qypt2WnqFLgusQVrktckaJK0dtyiah048kTRETZ+OOPPzBu3DgAwOLFi+Hp6anX5QshcC/xnvY2EZE+cIsdEdF/3LhxA35+ftBoNBg8eDC++uorqSMREeUJCzsiolckJibC29sbCQkJaNmyJVauXMl2YURUYrCwIyL6l1qtRu/evXH9+nVUqVKF7cKIqMRhYUdE9K8pU6Zg9+7dsLCwQEREBBwcHKSORESULyzsiIgArF+/HgsWLAAAhISEoEmTJhInIiLKP54VS0Sl3qlTp/DZZ58BAKZOnQo/P79Cf0+ZTAY3OzftbSIifWBLsULAlmJEJUdMTAzc3d0RExMDb29vhIWFQS7nzgwiKj7YUoyIKA/S0tLQrVs3xMTEoF69evj1119Z1BFRicZPMCIqlYQQGDZsGE6ePIny5csjIiKCW9iJqMRjYUdEpdLixYvx66+/wsjICFu3bkWNGjWK9P1TVCmot7Ie6q2sx5ZiRKQ3PHmCiEqd//u//8OECRMAZPWDff/994s8gxACfz/+W3ubiEgfuMWOiEqV69evw9/fHxqNBkOHDkVAQIDUkYiI9IaFHRGVGgkJCfD29kZiYiJat26NH3/8kZcaISKDwsKOiEoFtVqNTz/9FDdu3EDVqlWxfft2mJqaSh2LiEivWNgRUakwceJE7N27F5aWloiIiIC9vb3UkYiI9I6FHREZvHXr1uH7778HAISGhqJx48bSBiIiKiQ8K5aIDNpff/2FoUOHAgCmT5+Onj17Spwoi0wmg4uNi/Y2EZE+sKVYIWBLMaLi4eHDh2jWrBliY2Ph6+uL7du3s7MEEZU4bClGRKVeamoqfH19ERsbiwYNGrBdGBGVCvyUIyKDI4TA0KFDcfr0aVSoUAEREREoU6aM1LGIiAodCzsiMjgLFy7Ehg0bYGxsjG3btqFatWpSR3pNqioV7qvd4b7aHamqVKnjEJGB4MkTRGRQdu3ahUmTJgEAli1bhvbt20sbKAcaocHpmNPa20RE+sAtdkRkMK5evYrevXtDCIHhw4fjiy++kDoSEVGRYmFHRAbh+fPn8Pb2hlKpRNu2bbF06VKpIxERFTkWdkRU4mVmZsLPzw+3bt2Ci4sLtm3bxnZhRFQqsbAjohJvwoQJiIyMhJWVFRQKBezs7KSOREQkiRJR2N29exdDhgxBtWrVYGFhgRo1amDmzJnIyMjQGXfx4kW0adMG5ubmcHZ2xoIFC15b1tatW1GnTh2Ym5ujQYMG2L17t87zQgjMmDEDlSpVgoWFBTw9PXHz5s1CXT8iKriQkBD88MMPALJahzVs2FDiRERE0ikRhd21a9eg0Wjw008/4cqVK/jhhx8QHByMKVOmaMcolUp07NgRLi4uOHPmDBYuXIhZs2Zh1apV2jHHjx+Hv78/hgwZgnPnzsHX1xe+vr64fPmydsyCBQuwbNkyBAcH48SJE7CysoKXlxfS0tKKdJ2J6M2ioqIwfPhwAMCsWbPQvXt3iRPlT0XLiqhoWVHqGERkQEpsS7GFCxciKCgIt2/fBgAEBQVh6tSpiI2N1R5bM2nSJISHh+PatWsAAD8/PyQnJ2Pnzp3a5bz33nto3LgxgoODIYSAk5MTxo4di3HjxgEAEhMT4eDggNDQUHz66ad5ysaWYkSF78GDB2jWrBni4uLQo0cPbNmyhZ0liMgglYqWYomJiShfvrz2flRUFNq2batzwLSXlxeuX7+O58+fa8d4enrqLMfLywtRUVEAgDt37iA2NlZnjI2NDVq0aKEdk5309HQolUqdHyIqPCkpKfD19UVcXBwaNmyI0NBQFnVERCihhd2tW7ewfPlyfP7559rHYmNj4eDgoDPu5f3Y2Nhcx7z6/Kuvy25MdubNmwcbGxvtj7OzcwHXjIjeRAiBIUOG4MyZM6hYsSLbhRERvULSwm7SpEmQyWS5/rzcjfrSw4cP0alTJ/Ts2RNDhw6VKLmuyZMnIzExUftz//59qSMRGazvvvsOv/32G4yNjbF9+3a4urpKHalAUlWpaB/aHu1D27OlGBHpjaQtxcaOHYuBAwfmOqZ69era2zExMejQoQNatmypc1IEADg6OiIuLk7nsZf3HR0dcx3z6vMvH6tUqZLOmMaNG+eY0czMDGZmZrmuBxG9vd9//x1Tp04FAKxYsQJt27aVOFHBaYQGh+8d1t4mItIHSQs7Ozu7PF9v6uHDh+jQoQOaNm2KkJCQ146n8fDwwNSpU6FSqWBiYgIAiIyMRO3atVGuXDntmP379yMwMFD7usjISHh4eAAAqlWrBkdHR+zfv19byCmVSpw4cYKtiYgkduXKFW27sC+//BLDhg2TOhIRUbFTIo6xe/jwIdq3b4+qVati0aJFePz4MWJjY3WOe+vduzdMTU0xZMgQXLlyBZs3b8bSpUsxZswY7ZhRo0Zhz549+P7773Ht2jXMmjULp0+fxogRIwAAMpkMgYGBmDNnDhQKBS5duoT+/fvDyckJvr6+Rb3aRPSvZ8+ewcfHB0lJSWjfvj2WLFkidSQiomJJ0i12eRUZGYlbt27h1q1bqFKlis5zL6/WYmNjgz/++AMBAQFo2rQpKlasiBkzZuh8q2/ZsiU2btyIadOmYcqUKXjnnXcQHh6O+vXra8dMmDABycnJGDZsGBISEtC6dWvs2bMH5ubmRbOyRKQjMzMTvXr1wj///INq1aph69at2q3yRESkq8Rex64443XsiPRn1KhRWLZsGaysrBAVFYUGDRpIHUkvkjOSUWZe1tm8SZOTYGVqJXEiIiquSsV17IjI8K1ZswbLli0DAKxfv95gijoiosJSInbFElHpc+zYMe1JS998841BHudqaWIpdQQiMjAs7Iio2ImOjkb37t2hUqnQs2dP7SVODImVqRWSpyRLHYOIDAx3xRJRsZKcnAwfHx/Ex8ejcePGCAkJgUwmkzoWEVGJwMKOiIoNIQQGDRqE8+fPw87ODhEREbCy4kkFRER5xcKOiIqNb7/9Vns5kx07dqBq1apSRyo0aZlp6LKxC7ps7IK0zDSp4xCRgeAxdkRULERERGDatGkAgJUrV6J169YSJypcao0au2/u1t4mItIHbrEjIsldvnwZffv2BQB89dVX+OyzzyRORERUMrGwIyJJPX36FN7e3khKSsIHH3yAxYsXSx2JiKjEYmFHRJJ5eTmTO3fuoHr16ti8eTOMjXmECBFRQbGwIyLJjB49GgcPHkSZMmWgUChQoUIFqSMREZVoLOyISBKrVq3CihUrIJPJsHHjRtSrV0/qSEREJR4LOyIqckeOHEFAQAAAYM6cOejatavEiYiIDAMPZiGiInXv3j306NEDmZmZ8PPzw+TJk6WOJAkrUyuImULqGERkYLjFjoiKzMt2YU+ePEGTJk3wyy+/sF0YEZEesbAjoiKh0WgwYMAAXLhwAQ4ODggPD4elpaXUsYiIDAoLOyIqEnPmzMH27du17cKcnZ2ljiSptMw09NzaEz239mRLMSLSGxZ2RFToduzYgZkzZwIAgoOD0bJlS4kTSU+tUWPb39uw7e9tbClGRHrDwo6ICtXFixfRv39/AEBgYCAGDx4scSIiIsPFwo6ICs3jx4/h7e2N5ORkfPjhh1i4cKHUkYiIDBoLOyIqFC/bhd27dw81a9bEb7/9xnZhRESFjIUdERWKUaNG4fDhwyhbtiwUCgXKly8vdSQiIoPHwo6I9C4oKAhBQUGQyWTYtGkT6tatK3UkIqJSgYUdEenV4cOHMXLkSADAvHnz0KVLF4kTERGVHjzghYj05s6dO9p2Yb1798aECROkjlRsWZpYImlykvY2EZE+sLAjIr1ISkqCj48Pnj59imbNmuHnn39mu7BcyGQyWJlaSR2DiAwMd8US0VvTaDTo378/Ll26BEdHR4SFhcHCwkLqWEREpQ4LOyJ6a7Nnz0ZYWBhMTU0RFhaGKlWqSB2p2EvPTMfA8IEYGD4Q6ZnpUschIgPBwo6I3sq2bdvw9ddfAwBWrVqF9957T+JEJUOmJhNrL6zF2gtrkanJlDoOERkIFnZEVGDnz5/HgAEDAABjxozR3iYiImmwsCOiAomPj4ePjw9SUlLg5eWF+fPnSx2JiKjUY2FHRPmWkZGBTz75BNHR0ahVqxbbhRERFRMs7IgoX4QQGDFiBI4ePQpra2soFArY2tpKHYuIiMDCjojyaeXKlVi9ejVkMhl+++031K5dW+pIRET0LxZ2RJRnBw4cwKhRowAACxYsQOfOnSVOREREr+JBMUSUJ7dv30bPnj2hVqvRt29fjB07VupIJZqliSXix8VrbxMR6QMLOyJ6oxcvXsDb2xvPnj1D8+bNtbtiqeBkMhnsrOykjkFEBoa7YokoVxqNBv369cOVK1dQqVIlhIWFwdzcXOpYRESUDRZ2RJSrmTNnIiIiAmZmZggPD4eTk5PUkQxCemY6AnYFIGBXAFuKEZHesLAjohxt3rwZc+bMAQCsXr0azZs3lziR4cjUZGLl6ZVYeXolW4oRkd6wsCOibJ09exaDBg0CAIwfPx79+vWTOBEREb0JCzsiek1cXBx8fX2RmpqKzp07Y968eVJHIiKiPChwYXf27FlcunRJez8iIgK+vr6YMmUKMjIy9BKOiIpeeno6unfvjvv376N27drYuHEjjIyMpI5FRER5UODC7vPPP8eNGzcAZF3f6tNPP4WlpSW2bt2KCRMm6C0gERUdIQQCAgJw/Phx2NjYsF0YEVEJU+DC7saNG2jcuDEAYOvWrWjbti02btyI0NBQbN++XV/5iKgI/fjjj1izZg3kcjk2b96MWrVqSR2JiIjyocCFnRACGo0GALBv3z589NFHAABnZ2c8efJEP+mIqMjs27cPo0ePBgAsXLgQXl5eEiciIqL8KnDniWbNmmHOnDnw9PTE4cOHERQUBAC4c+cOHBwc9BaQiArfrVu30KtXL6jVagwYMEBb4FHhsTCxwJ1Rd7S3iYj0ocCF3ZIlS9CnTx+Eh4dj6tSpqFmzJgBg27ZtaNmypd4CElHhUiqV8PHxwfPnz/Hee+8hODiY7cKKgFwmh6utq9QxiMjAyIQQQp8LTEtLg5GREUxMTPS52BJFqVTCxsYGiYmJsLa2ljoOUY7UajV8fX2xc+dOVK5cGadOnUKlSpWkjkVERK/IT11R4GPs7t+/jwcPHmjvnzx5EoGBgVi3bl2pLuqISpLp06dj586dMDc3R1hYGIu6IpShzsD4P8Zj/B/jkaHmJaKISD8KXNj17t0bBw8eBADExsbiww8/xMmTJzF16lR8/fXXegtIRIVj06ZN2gsPr1mzBu7u7hInKl1UahUWRS3CoqhFUKlVUschIgNR4MLu8uXL2r6RW7ZsQf369XH8+HFs2LABoaGh+spHRIXgzJkzGDx4MABg4sSJ6N27t8SJiIhIHwpc2KlUKpiZmQHIukyCt7c3AKBOnTp49OiRftIRkd7FxsbCx8cHaWlp6NKlC+bOnSt1JCIi0pMCF3b16tVDcHAwjh49isjISHTq1AkAEBMTgwoVKugtIBHpz8t2YQ8fPkTdunXZLoyIyMAUuLCbP38+fvrpJ7Rv3x7+/v5o1KgRAEChUGh30RJR8SGEwPDhwxEVFYVy5cpBoVDwrG0iIgNT4OvYtW/fHk+ePIFSqUS5cuW0jw8bNgyWlpZ6CUdE+rN06VKEhoZq24W9vPYkEREZjgIXdgBgZGSEzMxM/PnnnwCA2rVrw9XVVR+5iEiP/vjjD4wdOxYAsHjxYnz44YcSJyIiosJQ4MIuOTkZX331FdatW6ftGWtkZIT+/ftj+fLl3GpHVEzcvHkTfn5+0Gg0GDx4MEaOHCl1JEJWG7HLX1zW3iYi0ocCH2M3ZswYHD58GL///jsSEhKQkJCAiIgIHD58WLtlgIiklZiYCG9vbyQkJKBly5ZYuXIl24UVE3KZHPXs66GefT3IZQX+KCYi0lHglmIVK1bEtm3b0L59e53HDx48iF69euHx48f6yFcisaUYFQdqtRre3t7YvXs3qlSpglOnTsHR0VHqWERElE/5qSsKvCs2JSUFDg4Orz1ub2+PlJSUgi6WiPRk6tSp2L17NywsLBAREcGirpjJUGfg26PfAgCmtJkCUyNTiRMRkSEo8PZ/Dw8PzJw5E2lpadrHUlNTMXv2bHh4eOglHBEVzIYNGzB//nwAQEhICJo0aSJxIvovlVqF2YdnY/bh2WwpRkR6U+AtdkuXLoWXlxeqVKmivYbdhQsXYGZmhj/++ENvAYkof06dOoUhQ4YAAKZMmQI/Pz+JExERUVEpcGFXv3593Lx5Exs2bMC1a9cAAP7+/ujTpw8sLHiGF5EUHj16BF9fX6Snp6Nr16745ptvpI5ERERF6K2uY2dpaYmhQ4fqPHb79m0MHz6cW+2IilhaWhq6deuGmJgYuLm5Yf369ZDLebYlEVFpovdP/RcvXmD//v36XiwR5UIIgWHDhuHEiRNsF0ZEVIrx6zyRAVi8eDF+/fVXGBkZYevWrahRo4bUkYiISAIs7IhKuD179mDChAkAgCVLluCDDz6QOBEREUnlrY6xIyJpXb9+HZ9++ik0Gg0+++wzBAQESB2J8sjc2BwnPzupvU1EpA/53mL37rvvokmTJjn+FPalFdLT09G4cWPIZDKcP39e57mLFy+iTZs2MDc3h7OzMxYsWPDa67du3Yo6derA3NwcDRo0wO7du3WeF0JgxowZqFSpEiwsLODp6YmbN28W5ioRFUhCQgK8vb2RmJiI1q1bY8WKFWwXVoIYyY3gXtkd7pXdYSQ3kjoOERmIfG+x8/HxkfSPx4QJE+Dk5IQLFy7oPK5UKtGxY0d4enoiODgYly5dwuDBg2Fra4thw4YBAI4fPw5/f3/MmzcPH3/8MTZu3AhfX1+cPXsW9evXBwAsWLAAy5Ytw9q1a1GtWjVMnz4dXl5e+Pvvv2Fuzm/VVDyo1Wr4+/vjxo0bcHZ2xvbt22Fqys4FRESlnsin5OTk/L5Eb3bv3i3q1Kkjrly5IgCIc+fOaZ9buXKlKFeunEhPT9c+NnHiRFG7dm3t/V69eokuXbroLLNFixbi888/F0IIodFohKOjo1i4cKH2+YSEBGFmZiY2bdqU55yJiYkCgEhMTMzvKhLlybhx4wQAYWFhofN7QCVHema6WPDnArHgzwUiPTP9zS8golIrP3VFvnfFVqxYER9//DFWrVqF2NhYfdeZOYqLi8PQoUPx66+/wtLS8rXno6Ki0LZtW52tFl5eXrh+/TqeP3+uHePp6anzOi8vL0RFRQEA7ty5g9jYWJ0xNjY2aNGihXZMdtLT06FUKnV+iArLunXrsGjRIgDA2rVr0bhxY2kDUYGo1CpM2DcBE/ZNYEsxItKbfBd2V69ehZeXF7Zs2QJXV1e0aNECc+fOxaVLlwojH4Cs494GDhyI4cOHo1mzZtmOiY2NhYODg85jL++/LEBzGvPq86++Lrsx2Zk3bx5sbGy0P87OzvlYO6K8O3HihPbQgunTp6Nnz54SJyIiouIk34Wdi4sLvvrqK+zbtw9xcXEIDAzEpUuX0KZNG1SvXh2BgYE4cOAA1Gr1G5c1adIkyGSyXH+uXbuG5cuX48WLF5g8eXKBVrKwTZ48GYmJidqf+/fvSx2JDNDDhw/RrVs3pKenw9fXF7NmzZI6EhERFTNvdbkTGxsb+Pv7w9/fHyqVCocOHYJCocCgQYPw4sULLF++HH369Mnx9WPHjsXAgQNzfY/q1avjwIEDiIqKgpmZmc5zzZo1Q58+fbB27Vo4OjoiLi5O5/mX9x0dHbX/Zjfm1edfPlapUiWdMbnt7jIzM3stG5E+paamolu3bnj06BHq16+PdevWsV0YERG9psCFXXR0NJydnbVnyJqYmODDDz+Ep6cnxo0bh2fPniEzMzPXZdjZ2cHOzu6N77Vs2TLMmTNHez8mJgZeXl7YvHkzWrRoAQDw8PDA1KlToVKpYGJiAgCIjIxE7dq1Ua5cOe2Y/fv3IzAwULusyMhIeHh4AACqVasGR0dH7N+/X1vIKZVKnDhxAl988UXeJoZIz4QQGDp0KE6dOoUKFSpAoVCgbNmyUsciIqJiqMCFXbVq1fDo0SPY29vrPP7s2TNUr149T7ti86pq1ao698uUKQMAqFGjBqpUqQIA6N27N2bPno0hQ4Zg4sSJuHz5MpYuXYoffvhB+7pRo0ahXbt2+P7779GlSxf89ttvOH36NFatWgUAkMlkCAwMxJw5c/DOO+9oL3fi5OQEX19fva0PUX4sWrQIGzZs0LYLq1atmtSRiIiomCpwYSeEyPZ6dklJSZJc783GxgZ//PEHAgIC0LRpU1SsWBEzZszQHmgOAC1btsTGjRsxbdo0TJkyBe+88w7Cw8O117ADsq6Tl5ycjGHDhiEhIQGtW7fGnj17eA07ksTu3bsxceJEAFlbrjt06CBxIiIiKs5kQgiRnxeMGTMGALB06VIMHTpU59IjarUaJ06cgJGREY4dO6bfpCWIUqmEjY0NEhMTYW1tLXUcKqGuXr2K9957D0qlEp9//jmCgoLYWcKAqDVqHI0+CgBoU7UNu08QUY7yU1fke4vduXPnAGRtsbt06ZLOdeNMTU3RqFEjjBs3Lr+LJaJXPH/+HD4+PlAqlWjbti2WLVvGos7AGMmN0N61vdQxiMjA5LuwO3jwIABg0KBBWLp0KbdIEelZZmYm/Pz8cPPmTbi4uGDbtm1sF0ZERHlS4GPsQkJC9JmDiP41YcIEREZGwtLSEhEREXk6c5xKHpVahVVnsk7cGtZ0GEyMTCRORESGIF+FXffu3REaGgpra2t0794917E7dux4q2BEpVFoaKj2TO5169ahUaNGEieiwpKhzsCI/xsBABjYeCALOyLSi3wVdjY2NtrjfKytrXnMD5EeRUVF4fPPPwcAzJw5Ez169JA4ERERlTT5Kuy6deumvexHaGhoYeQhKpUePHiAbt26ISMjA927d8eMGTOkjkRERCVQvnoSdevWDQkJCQAAIyMjxMfHF0YmolIlNTUVvr6+iIuLQ8OGDbF27Vq2CyMiogLJ118POzs7/PXXXwByvkAxEeWdEAJDhgzBmTNnULFiRURERGg7qxAREeVXvnbFDh8+HD4+PpDJZJDJZHB0dMxxrD5bihEZqvnz52PTpk0wNjbGtm3b4OrqKnUkIiIqwfJV2M2aNQuffvopbt26BW9vb4SEhMDW1raQohEZtt9//x1TpkwBAPz4449o166dxImIiKiky/d17OrUqYM6depg5syZ6Nmzp05LMSLKm7///ht9+vSBEAJffvml9mxYKj3MjM2w03+n9jYRkT7ku1fsfz1+/BjXr18HANSuXZsXUwV7xVLunj17hubNm+Off/5B+/bt8ccff8DEhNcwIyKi7OWnrijwqXcpKSkYPHgwnJyc0LZtW7Rt2xZOTk4YMmQIUlJSCrpYIoP2sl3YP//8A1dXV2zdupVFHRER6U2BC7vRo0fj8OHDUCgUSEhIQEJCAiIiInD48GGMHTtWnxmJDMa4ceOwb98+WFlZQaFQoGLFilJHIomo1CqEng9F6PlQqNQqqeMQkYEo8K7YihUrYtu2bWjfvr3O4wcPHkSvXr3w+PFjfeQrkbgrlrKzZs0afPbZZwCyWu5169ZN4kQkpeSMZJSZl3Vpm6TJSbAytZI4EREVV0W2K9bBweG1x+3t7bkrlug/jh07hi+++AIA8PXXX7OoIyKiQlHgws7DwwMzZ85EWlqa9rHU1FTMnj0bHh4eeglHZAiio6PRvXt3qFQq9OzZE9OmTZM6EhERGah8X+7kpSVLlqBTp06oUqUKGjVqBAC4cOECzM3NsXfvXr0FJCrJUlJS4Ovri/j4eDRu3BghISHs2EJERIWmwIVdgwYNcPPmTWzYsAHXrl0DAPj7+6NPnz6wsLDQW0CikkoIgUGDBuHcuXOws7NDeHg4rKx4HBURERWeAhV2KpUKderUwc6dOzF06FB9ZyIyCN9++y22bNkCExMT7NixAy4uLlJHIiIiA1egY+xMTEx0jq0jIl0RERHaY+lWrFiB1q1bS5yIiIhKgwKfPBEQEID58+cjMzNTn3mISrzLly+jb9++AIARI0ZwqzZly8zYDFs+2YItn2xhSzEi0psCX8euW7du2L9/P8qUKYMGDRq8duzQjh079BKwJOJ17Eqvp0+fwt3dHXfu3MH777+PPXv2sLMEERG9lfzUFQU+ecLW1hY9evQo6MuJDM7Ly5ncuXMH1atX1x5fR0REVFTyXdhpNBosXLgQN27cQEZGBt5//33MmjWLZ8JSqTdmzBgcPHgQZcqUgUKhQIUKFaSORMVYpiYTYVfDAADd6naDsbzA37OJiLTyfYzd3LlzMWXKFJQpUwaVK1fGsmXLEBAQUBjZiEqM1atX48cff4RMJsOGDRtQr149qSNRMZeemY5e23qh17ZeSM9MlzoOERmIfBd269atw8qVK7F3716Eh4fj999/x4YNG6DRaAojH1Gxd/ToUe2Xmzlz5sDb21viREREVFrlu7CLjo7GRx99pL3v6ekJmUyGmJgYvQYjKgnu3buHHj16QKVSwc/PD5MnT5Y6EhERlWL5LuwyMzNhbm6u85iJiQlUKpXeQhGVBMnJyfDx8cHjx4/x7rvv4pdffmG7MCIiklS+j9YVQmDgwIEwM/vfdZfS0tIwfPhwnUuelObLnZDhe/l7cOHCBdjb2yMiIgKWlpZSxyIiolIu34XdgAEDXnvs5cVYiUqLOXPmYNu2bdp2Yc7OzlJHIiIiyn9hFxISUhg5iEqMsLAwzJgxAwAQHByMVq1aSZyIiIgoCy+cRJQPly5dQr9+/QAAo0aNwuDBgyVORCWVqZEpQnxCtLeJiPShwC3FKGdsKWaYnjx5And3d9y9exeenp74v//7Pxgb87sREREVrvzUFfk+K5aoNFKpVPjkk09w9+5d1KhRA5s3b2ZRR0RExQ7/MhHlwahRo3D48GGULVsWCoUC5cuXlzoSlXCZmkzsvbUXAOBV04stxYhIL/hJQvQGwcHBCAoKgkwmw8aNG+Hm5iZ1JDIA6Znp+HjTxwCApMlJMDblxzERvT3uiiXKxeHDh/HVV18BAL799lt8/PHHEiciIiLKGQs7ohzcvXsXn3zyCTIzM+Hv74+JEydKHYmIiChXLOyIspGUlAQfHx88efIETZs2xZo1a9gujIiIij0WdkT/odFo0L9/f1y8eBEODg4IDw+HhYWF1LGIiIjeiIUd0X98/fXXCAsLg6mpKcLCwlClShWpIxEREeUJCzuiV2zfvh2zZ88GAKxatQoeHh4SJyIiIso7nl9P9K8LFy6gf//+AIDRo0djwIABEiciQ2ZqZIofO/+ovU1EpA9sKVYI2FKs5ImPj4e7uzuio6PRsWNH7Nq1i50liIioWGBLMaJ8yMjIwCeffILo6Gi88847+O2331jUERFRicS/XlSqCSHw1Vdf4ejRo7C2toZCoUC5cuWkjkWlgFqjxtHoowCANlXbwEhuJHEiIjIELOyoVAsKCsKqVasgk8mwadMm1KlTR+pIVEqkZaahw9oOALJailmZWkmciIgMAXfFUql18OBBjBw5EgAwf/58fPTRRxInIiIiejss7KhUun37Nnr27Am1Wo2+ffti3LhxUkciIiJ6ayzsqNR58eIFfHx88PTpU7i7u2t3xRIREZV0LOyoVNFoNOjXrx8uX76MSpUqISwsjO3CiIjIYLCwo1Jl5syZiIiIgJmZGcLCwlC5cmWpIxEREekNCzsqNbZs2YI5c+YAAFavXo0WLVpInIiIiEi/eLkTKhXOnTuHgQMHAgDGjRuHfv36SRuISj0TIxMs8FygvU1EpA9sKVYI2FKseImLi4O7uzvu37+PTp06YefOnTAy4sVgiYioZGBLMaJ/ZWRkoEePHrh//z5q166NTZs2sagjIiKDxV2xZLCEEPjyyy9x7Ngx2NjYICIiAra2tlLHIgKQ1VLs7KOzAIAmlZqwpRgR6QULOzJYP/74I9asWQO5XI7Nmzejdu3aUkci0krLTEPzn5sDYEsxItIf7oolg7R//36MHj0aALBw4UJ4eXlJnIiIiKjwsbAjg/PPP/9o24X1799fW+AREREZOhZ2ZFCUSiW8vb3x/PlztGjRAj/99BPbhRERUanBwo4MhkajQd++ffH333/DyckJYWFhMDc3lzoWERFRkWFhRwZj+vTp+P3332FmZobw8HBUqlRJ6khERERFioUdGYRNmzbh22+/BQCsWbMG7u7uEiciIiIqerzcCZV4Z86cweDBgwEAEydORJ8+fSRORPRmJkYmmNlupvY2EZE+sKVYIWBLsaITGxsLd3d3PHjwAF26dEFERAQ7SxARkUFhSzEqFdLT09G9e3c8ePAAderUwYYNG1jUERFRqVaiCrtdu3ahRYsWsLCwQLly5eDr66vzfHR0NLp06QJLS0vY29tj/PjxyMzM1Blz6NAhNGnSBGZmZqhZsyZCQ0Nfe58VK1bA1dUV5ubmaNGiBU6ePFmIa0UFIYTAF198gaioKNja2kKhUMDGxkbqWER5phEaXIm/givxV6ARGqnjEJGBKDGF3fbt29GvXz8MGjQIFy5cwLFjx9C7d2/t82q1Gl26dEFGRgaOHz+OtWvXIjQ0FDNmzNCOuXPnDrp06YIOHTrg/PnzCAwMxGeffYa9e/dqx2zevBljxozBzJkzcfbsWTRq1AheXl6Ij48v0vWl3C1btgwhISHadmHvvPOO1JGI8iVVlYr6QfVRP6g+UlWpUschIkMhSgCVSiUqV64sfv755xzH7N69W8jlchEbG6t9LCgoSFhbW4v09HQhhBATJkwQ9erV03mdn5+f8PLy0t5v3ry5CAgI0N5Xq9XCyclJzJs3L895ExMTBQCRmJiY59dQ3u3du1fI5XIBQPzwww9SxyEqkKT0JIFZEJgFkZSeJHUcIirG8lNXlIgtdmfPnsXDhw8hl8vx7rvvolKlSujcuTMuX76sHRMVFYUGDRrAwcFB+5iXlxeUSiWuXLmiHePp6amzbC8vL0RFRQEAMjIycObMGZ0xcrkcnp6e2jEkrZs3b8LPzw8ajQaDBg3CqFGjpI5ERERUbJSIwu727dsAgFmzZmHatGnYuXMnypUrh/bt2+PZs2cAss6OfLWoA6C9Hxsbm+sYpVKJ1NRUPHnyBGq1OtsxL5eRnfT0dCiVSp0f0r/ExET4+PggISEBHh4eCAoKYrswIiKiV0ha2E2aNAkymSzXn2vXrkGjyTqweOrUqejRoweaNm2KkJAQyGQybN26VcpVAADMmzcPNjY22h9nZ2epIxkctVqNPn364OrVq6hSpQp27NgBMzMzqWMREREVK5JeoHjs2LEYOHBgrmOqV6+OR48eAQDc3Ny0j5uZmaF69eqIjo4GADg6Or529mpcXJz2uZf/vnzs1THW1tawsLCAkZERjIyMsh3zchnZmTx5MsaMGaO9r1QqWdzp2dSpU7Fr1y6Ym5sjPDw81/8eREREpZWkhZ2dnR3s7OzeOK5p06YwMzPD9evX0bp1awCASqXC3bt34eLiAgDw8PDA3LlzER8fD3t7ewBAZGQkrK2ttQWhh4cHdu/erbPsyMhIeHh4AABMTU3RtGlT7N+/X3spFY1Gg/3792PEiBE55jMzM+PWo0K0YcMGzJ8/HwAQEhKCpk2bSpyIiIioeCoRLcWsra0xfPhwzJw5E87OznBxccHChQsBAD179gQAdOzYEW5ubujXrx8WLFiA2NhYTJs2DQEBAdqia/jw4fjxxx8xYcIEDB48GAcOHMCWLVuwa9cu7XuNGTMGAwYMQLNmzdC8eXMsWbIEycnJGDRoUNGvOOHUqVP47LPPAGRtGf30008lTkSkHyZGJhjnMU57m4hIL4rgLF29yMjIEGPHjhX29vaibNmywtPTU1y+fFlnzN27d0Xnzp2FhYWFqFixohg7dqxQqVQ6Yw4ePCgaN24sTE1NRfXq1UVISMhr77V8+XJRtWpVYWpqKpo3by7++uuvfGXl5U70IyYmRjg5OQkAomvXrkKtVksdiYiIqMjlp65gr9hCwF6xby8tLQ3t27fHiRMn4ObmhqioKM4lERGVSvmpK0rErlgqXYQQGD58OE6cOIFy5cpBoVCwqCODoxEaRCdmnfxV1aYq5LIScfUpIirmWNhRsfPDDz9g7dq1MDIywtatW1GjRg2pIxHpXaoqFdWWVgMAJE1OgpWplcSJiMgQ8CsiFSt79+7F+PHjAWQVeB988IHEiYiIiEoOFnZUbNy4cUPbLuyzzz7L9RIzRERE9DoWdlQsJCQkwNvbG4mJiWjVqhVWrFjBdmFERET5xMKOJKdWq+Hv74/r16/D2dkZ27dvh6mpqdSxiIiIShwWdiS5yZMnY8+ePbCwsEBERAQcHBykjkRERFQisbAjSf3666/aLiKhoaF49913JU5ERERUcvFyJySZEydOYOjQoQCAadOmoVevXhInIio6xnJjfNnsS+1tIiJ9YOeJQsDOE28WExODZs2a4dGjR/Dx8cGOHTsgl3MDMhER0X/lp67gX1IqcqmpqfD19cWjR49Qr149/PrrryzqiIiI9IDb/6lICSEwbNgwnDp1CuXLl4dCoUDZsmWljkVU5IQQeJLyBABQ0bIiL+9DRHrBwo6K1KJFi7B+/XoYGRlh27ZtqF69utSRiCSRokqB/SJ7AGwpRkT6w/1fVGR2796NiRMnAgCWLl2KDh06SJyIiIjIsLCwoyJx7do1+Pv7a3fFfvnll1JHIiIiMjgs7KjQPX/+HN7e3lAqlWjTpg2WL1/O44mIiIgKAQs7KlSZmZnw9/fHzZs34eLiwnZhREREhYiFHRWqiRMnYu/evbC0tERERATs7OykjkRERGSwWNhRoQkNDcXixYsBAOvWrUOjRo0kTkRERGTYeLkTKhRRUVH4/PPPAQAzZ85Ejx49JE5EVLwYy40xoNEA7W0iIn1gS7FCUNpbij148ADu7u6IjY1Ft27dsG3bNnaWICIiKiC2FCPJvGwXFhsbiwYNGmDdunUs6oiIiIoIt/+T3gghMGTIEJw5cwYVK1aEQqFAmTJlpI5FVCwJIZCiSgEAWJpY8hJARKQX3JRCerNgwQJs2rQJxsbG2LZtG1xdXaWORFRspahSUGZeGZSZV0Zb4BERvS0WdqQXO3fuxOTJkwEAy5cvR7t27SROREREVPqwsKO39vfff6N3794QQuCLL77A8OHDpY5ERERUKrGwo7fy7Nkz+Pj44MWLF2jXrh2WLl0qdSQiIqJSi4UdFVhmZib8/Pxw69YtuLq6YuvWrTAxMZE6FhERUanFwo4KbNy4cdi3bx+srKzYLoyIiKgYYGFHBfLLL79od7v++uuvaNiwocSJiIiIiNexo3w7duyY9gSJ2bNno1u3bhInIip5jORG+MTtE+1tIiJ9YEuxQmDILcWio6Ph7u6O+Ph4fPLJJ9i8eTM7SxARERUithSjQpGSkgJfX1/Ex8ejUaNGCA0NZVFHRERUjPCvMuWJEAKDBw/GuXPnYGdnh4iICFhZWUkdi4iIiF7Bwo7yZN68edi8eTOMjY2xfft2uLi4SB2JqERLzkiGbLYMstkyJGckSx2HiAwECzt6I4VCgalTpwIAVq5ciTZt2kiciIiIiLLDwo5ydeXKFfTp0wcAEBAQgKFDh0qciIiIiHLCwo5y9PTpU3h7eyMpKQkdOnTADz/8IHUkIiIiygULO8qWSqVCr169cPv2bVSrVo3twoiIiEoAFnaUrbFjx+LAgQMoU6YMFAoFKlSoIHUkIiIiegMWdvSa1atXY/ny5QCA9evXo379+hInIiIiorxgSzHS8eeffyIgIAAAMGfOHPj4+EiciMgwGcmN8NE7H2lvExHpA1uKFYKS2lIsOjoazZo1w+PHj+Hn54dNmzZBJpNJHYuIiKhUY0sxyrfk5GT4+Pjg8ePHePfdd/HLL7+wqCMiIiphWNgRhBAYOHAgzp8/D3t7e4SHh8PS0lLqWERERJRPLOwIc+bMwbZt22BiYoIdO3agatWqUkciMnjJGcmw+tYKVt9asaUYEekNT54o5cLCwjBjxgwAQFBQEFq1aiVxIqLSI0WVInUEIjIw3GJXil26dAn9+vUDAIwcORJDhgyROBERERG9DRZ2pdSTJ0/g7e2N5ORkeHp64vvvv5c6EhEREb0lFnalkEqlQs+ePXH37l3UqFEDmzdvhrEx98oTERGVdCzsSqHAwEAcOnQIZcuWRUREBMqXLy91JCIiItIDFnalzE8//YSVK1dCJpNhw4YNqFevntSRiIiISE+4/60UOXLkCEaMGAEA+Pbbb9G1a1eJExGVXnKZHO1c2mlvExHpA1uKFYLi2FLs7t27cHd3x5MnT+Dv748NGzawswQREVEJwJZipCMpKQk+Pj548uQJmjZtip9//plFHRERkQFiYWfgNBoNBgwYgIsXL8LBwYHtwoiIiAwYCzsD980332DHjh0wNTVFWFgYqlSpInUkIkJWSzG7hXawW2jHlmJEpDc8ecKAbd++HbNmzQIABAcHw8PDQ9pARKTjScoTqSMQkYHhFjsDdeHCBfTv3x8AMHr0aAwaNEjiRERERFTYWNgZoMePH8PHxwcpKSn48MMPsWDBAqkjERERURFgYWdgMjIy8Mknn+DevXuoWbMm24URERGVIizsDMzIkSNx5MgRWFtbQ6FQoFy5clJHIiIioiLCws6ABAUF4aeffoJMJsOmTZtQt25dqSMRERFREeI+OgNx8OBBjBw5EgDw3Xff4aOPPpI4ERHlRi6To5lTM+1tIiJ9YGFnAO7cuYOePXsiMzMTffr0wfjx46WORERvYGFigVNDT0kdg4gMDL8mlnAvXryAt7c3nj59Cnd3d6xevZrtwoiIiEopFnYlmEajQf/+/XH58mVUqlQJYWFhsLCwkDoWERERSYSFXQk2a9YshIeHw8zMDGFhYahcubLUkYgoj1JUKXBd4grXJa5IUaVIHYeIDASPsSuhtm7dim+++QYAsGrVKrRo0ULiRESUH0II3Eu8p71NRKQPJWaL3Y0bN+Dj44OKFSvC2toarVu3xsGDB3XGREdHo0uXLrC0tIS9vT3Gjx+PzMxMnTGHDh1CkyZNYGZmhpo1ayI0NPS191qxYgVcXV1hbm6OFi1a4OTJk4W5avl27tw5DBgwAAAwduxYbeswIiIiKt1KTGH38ccfIzMzEwcOHMCZM2fQqFEjfPzxx4iNjQUAqNVqdOnSBRkZGTh+/DjWrl2L0NBQzJgxQ7uMO3fuoEuXLujQoQPOnz+PwMBAfPbZZ9i7d692zObNmzFmzBjMnDkTZ8+eRaNGjeDl5YX4+PgiX+fsxMXFwcfHB6mpqejUqRPmz58vdSQiIiIqLkQJ8PjxYwFAHDlyRPuYUqkUAERkZKQQQojdu3cLuVwuYmNjtWOCgoKEtbW1SE9PF0IIMWHCBFGvXj2dZfv5+QkvLy/t/ebNm4uAgADtfbVaLZycnMS8efPynDcxMVEAEImJiflb0TdIT08XrVq1EgBErVq1xPPnz/W6fCIqOknpSQKzIDALIik9Seo4RFSM5aeuKBFb7CpUqIDatWtj3bp1SE5ORmZmJn766SfY29ujadOmAICoqCg0aNAADg4O2td5eXlBqVTiypUr2jGenp46y/by8kJUVBSArD6rZ86c0Rkjl8vh6empHZOd9PR0KJVKnR99E0IgICAAx44dg42NDRQKBWxtbfX+PkRERFRylYiTJ2QyGfbt2wdfX1+ULVsWcrkc9vb22LNnj7YXamxsrE5RB0B7/+Xu2pzGKJVKpKam4vnz51Cr1dmOuXbtWo755s2bh9mzZ7/1euZmxYoV+PnnnyGXy7Fp0ybUrl27UN+PiIiISh5Jt9hNmjQJMpks159r165pt1bZ29vj6NGjOHnyJHx9fdG1a1c8evRIylUAAEyePBmJiYnan/v37+t1+fv370dgYCAAYMGCBejcubNel09ERU8mk8HNzg1udm68qDgR6Y2kW+zGjh2LgQMH5jqmevXqOHDgAHbu3Innz5/D2toaALBy5UpERkZi7dq1mDRpEhwdHV87ezUuLg4A4OjoqP335WOvjrG2toaFhQWMjIxgZGSU7ZiXy8iOmZkZzMzM8rTO+fXPP/+gV69eUKvV6N+/P8aMGVMo70NERcvSxBJXvrwidQwiMjCSFnZ2dnaws7N747iUlKyLd8rluhsY5XI5NBoNAMDDwwNz585FfHw87O3tAQCRkZGwtraGm5ubdszu3bt1lhEZGQkPDw8AgKmpKZo2bYr9+/fD19cXQFZ3h/3792PEiBEFX9ECUiqV8Pb2xrNnz9CiRQv89NNP/GZPREREOSoRJ094eHigXLlyGDBgAC5cuIAbN25g/Pjx2suXAEDHjh3h5uaGfv364cKFC9i7dy+mTZuGgIAA7da04cOH4/bt25gwYQKuXbuGlStXYsuWLRg9erT2vcaMGYPVq1dj7dq1uHr1Kr744gskJydj0KBBRbrOGo0Gffv2xd9//w0nJyfs2LED5ubmRZqBiIiISphCP0dXT06dOiU6duwoypcvL8qWLSvee+89sXv3bp0xd+/eFZ07dxYWFhaiYsWKYuzYsUKlUumMOXjwoGjcuLEwNTUV1atXFyEhIa+91/Lly0XVqlWFqampaN68ufjrr7/ylVUflzuZMmWKACDMzMzEyZMnC7wcIiqekjOShdsKN+G2wk0kZyRLHYeIirH81BUyIdjLRt+USiVsbGyQmJioPSYwPzZv3oxPP/0UALB+/Xr06dNH3xGJSGLJGckoM68MACBpchKsTK0kTkRExVV+6ooSsSu2NDlz5ox2t++ECRNY1BEREVGesbArRmJjY+Hr64vU1FR89NFH+Pbbb6WORERERCUIC7tiIj09HT169MCDBw9Qp04dbNy4EUZGRlLHIiIiohKEhV0xIITAF198gePHj8PW1hYRERGwsbGROhYRERGVMCzsioFly5YhJCQEcrkcmzdvRq1ataSORERERCVQiegVa8giIyO13SQWLVqEjh07SpyIiIqCTCaDi42L9jYRkT6wsJPQzZs34efnB41Gg4EDB2r7wRKR4bM0scTdwLtSxyAiA8NdsRJRKpXw8fHB8+fP4eHhgeDgYH5rJyIiorfCwk4CarUavXv3xtWrV1GlShXs2LFD2/aMiIiIqKBY2Elg2rRp2LVrF8zNzREeHg5HR0epIxFREUtVpcJ9tTvcV7sjVZUqdRwiMhA8xq6Ibdy4Ed999x0A4JdffkHTpk0lTkREUtAIDU7HnNbeJiLSB26xK0KnT5/GkCFDAACTJ0+Gv7+/xImIiIjIkLCwKyKPHj2Cr68v0tLS8PHHH2POnDlSRyIiIiIDw8KuCKSlpaFbt254+PAh6tatiw0bNkAu59QTERGRfrG6KGRCCAwfPhwnTpxAuXLloFAoYG1tLXUsIiIiMkAs7ArZkiVLsHbtWhgZGWHLli2oWbOm1JGIiIjIQPGs2EK0b98+jBs3DgCwePFieHp6SpyIiIqTipYVpY5ARAZGJoQQUocwNEqlEjY2NrC2toZSqcSQIUOwevVqdpYgIiKifHtZVyQmJr7xcC7uii1ESqUSLVu2xIoVK1jUERERUaFjYVeInJyc2C6MiIiIigwLu0K0adMmODg4SB2DiIqhVFUq2oe2R/vQ9mwpRkR6w5MnClHjxo2ljkBExZRGaHD43mHtbSIifeAWOyIiIiIDwcKOiIiIyECwsCMiIiIyECzsiIiIiAwECzsiIiIiA8GzYomIJGJpYil1BCIyMCzsiIgkYGVqheQpyVLHICIDw12xRERERAaChR0RERGRgWBhR0QkgbTMNHTZ2AVdNnZBWmaa1HGIyEDwGDsiIgmoNWrsvrlbe5uISB+4xY6IiIjIQLCwIyIiIjIQLOyIiIiIDAQLOyIiIiIDwcKOiIiIyEDwrNhCIIQAACiVSomTEFFxlZyRDPx7lROlUgm1Kc+MJaLsvawnXtYXuZGJvIyifHnw4AGcnZ2ljkFEREQG5P79+6hSpUquY1jYFQKNRoOYmBiULVsWMplM6jiFSqlUwtnZGffv34e1tbXUcSTBOeAcAJwDgHMAcA4AzgGg/zkQQuDFixdwcnKCXJ77UXTcFVsI5HL5GytqQ2NtbV1qf4Ff4hxwDgDOAcA5ADgHAOcA0O8c2NjY5GkcT54gIiIiMhAs7IiIiIgMBAs7eitmZmaYOXMmzMzMpI4iGc4B5wDgHACcA4BzAHAOAGnngCdPEBERERkIbrEjIiIiMhAs7IiIiIgMBAs7IiIiIgPBwo5ec+TIEXTt2hVOTk6QyWQIDw/XeV4IgRkzZqBSpUqwsLCAp6cnbt68qTPm2bNn6NOnD6ytrWFra4shQ4YgKSmpCNfi7eQ2ByqVChMnTkSDBg1gZWUFJycn9O/fHzExMTrLMOQ5+K/hw4dDJpNhyZIlOo+Xhjm4evUqvL29YWNjAysrK7i7uyM6Olr7fFpaGgICAlChQgWUKVMGPXr0QFxcXBGuxdt50xwkJSVhxIgRqFKlCiwsLODm5obg4GCdMSV9DubNmwd3d3eULVsW9vb28PX1xfXr13XG5GUdo6Oj0aVLF1haWsLe3h7jx49HZmZmUa5Kgb1pDp49e4avvvoKtWvXhoWFBapWrYqRI0ciMTFRZzmGPAevEkKgc+fO2f7OFPYcsLCj1yQnJ6NRo0ZYsWJFts8vWLAAy5YtQ3BwME6cOAErKyt4eXkhLS1NO6ZPnz64cuUKIiMjsXPnThw5cgTDhg0rqlV4a7nNQUpKCs6ePYvp06fj7Nmz2LFjB65fvw5vb2+dcYY8B68KCwvDX3/9BScnp9eeM/Q5+Oeff9C6dWvUqVMHhw4dwsWLFzF9+nSYm5trx4wePRq///47tm7disOHDyMmJgbdu3cvqlV4a2+agzFjxmDPnj1Yv349rl69isDAQIwYMQIKhUI7pqTPweHDhxEQEIC//voLkZGRUKlU6NixI5KTk7Vj3rSOarUaXbp0QUZGBo4fP461a9ciNDQUM2bMkGKV8u1NcxATE4OYmBgsWrQIly9fRmhoKPbs2YMhQ4Zol2Hoc/CqJUuWZNt5qkjmQBDlAoAICwvT3tdoNMLR0VEsXLhQ+1hCQoIwMzMTmzZtEkII8ffffwsA4tSpU9ox//d//ydkMpl4+PBhkWXXl//OQXZOnjwpAIh79+4JIUrPHDx48EBUrlxZXL58Wbi4uIgffvhB+1xpmAM/Pz/Rt2/fHF+TkJAgTExMxNatW7WPXb16VQAQUVFRhRW10GQ3B/Xq1RNff/21zmNNmjQRU6dOFUIY3hwIIUR8fLwAIA4fPiyEyNs67t69W8jlchEbG6sdExQUJKytrUV6enrRroAe/HcOsrNlyxZhamoqVCqVEKL0zMG5c+dE5cqVxaNHj177nSmKOeAWO8qXO3fuIDY2Fp6entrHbGxs0KJFC0RFRQEAoqKiYGtri2bNmmnHeHp6Qi6X48SJE0WeuSgkJiZCJpPB1tYWQOmYA41Gg379+mH8+PGoV6/ea88b+hxoNBrs2rULtWrVgpeXF+zt7dGiRQud3S5nzpyBSqXS+X2pU6cOqlatqv19KelatmwJhUKBhw8fQgiBgwcP4saNG+jYsSMAw5yDl7sXy5cvDyBv6xgVFYUGDRrAwcFBO8bLywtKpRJXrlwpwvT68d85yGmMtbU1jI2zupeWhjlISUlB7969sWLFCjg6Or72mqKYAxZ2lC+xsbEAoPM/5cv7L5+LjY2Fvb29zvPGxsYoX768dowhSUtLw8SJE+Hv76/tCVga5mD+/PkwNjbGyJEjs33e0OcgPj4eSUlJ+O6779CpUyf88ccf6NatG7p3747Dhw8DyJoDU1NTbcH/0qu/LyXd8uXL4ebmhipVqsDU1BSdOnXCihUr0LZtWwCGNwcajQaBgYFo1aoV6tevDyBv6xgbG5vt5+bL50qS7Obgv548eYJvvvlG59CL0jAHo0ePRsuWLeHj45Pt64piDoz1shSiUkqlUqFXr14QQiAoKEjqOEXmzJkzWLp0Kc6ePZvtcSSlgUajAQD4+Phg9OjRAIDGjRvj+PHjCA4ORrt27aSMV2SWL1+Ov/76CwqFAi4uLjhy5AgCAgLg5OSkswXLUAQEBODy5cv4888/pY4imTfNgVKpRJcuXeDm5oZZs2YVbbgikt0cKBQKHDhwAOfOnZMwGbfYUT693LT837O94uLitM85OjoiPj5e5/nMzEw8e/Ys203TJdXLou7evXuIjIzUbq0DDH8Ojh49ivj4eFStWhXGxsYwNjbGvXv3MHbsWLi6ugIw/DmoWLEijI2N4ebmpvN43bp1tWfFOjo6IiMjAwkJCTpjXv19KclSU1MxZcoULF68GF27dkXDhg0xYsQI+Pn5YdGiRQAMaw5GjBiBnTt34uDBg6hSpYr28byso6OjY7afmy+fKylymoOXXrx4gU6dOqFs2bIICwuDiYmJ9jlDn4MDBw7gn3/+ga2trfZzEQB69OiB9u3bAyiaOWBhR/lSrVo1ODo6Yv/+/drHlEolTpw4AQ8PDwCAh4cHEhIScObMGe2YAwcOQKPRoEWLFkWeuTC8LOpu3ryJffv2oUKFCjrPG/oc9OvXDxcvXsT58+e1P05OThg/fjz27t0LwPDnwNTUFO7u7q9d7uDGjRtwcXEBADRt2hQmJiY6vy/Xr19HdHS09velJFOpVFCpVJDLdf+UGBkZabdoGsIcCCEwYsQIhIWF4cCBA6hWrZrO83lZRw8PD1y6dEnny87LL4T//XJQHL1pDoCsvwUdO3aEqakpFAqFztnhgOHPwaRJk177XASAH374ASEhIQCKaA70cgoGGZQXL16Ic+fOiXPnzgkAYvHixeLcuXPaMz6/++47YWtrKyIiIsTFixeFj4+PqFatmkhNTdUuo1OnTuLdd98VJ06cEH/++ad45513hL+/v1SrlG+5zUFGRobw9vYWVapUEefPnxePHj3S/rx6VpMhz0F2/ntWrBCGPwc7duwQJiYmYtWqVeLmzZti+fLlwsjISBw9elS7jOHDh4uqVauKAwcOiNOnTwsPDw/h4eEh1Srl25vmoF27dqJevXri4MGD4vbt2yIkJESYm5uLlStXapdR0ufgiy++EDY2NuLQoUM6v+8pKSnaMW9ax8zMTFG/fn3RsWNHcf78ebFnzx5hZ2cnJk+eLMUq5dub5iAxMVG0aNFCNGjQQNy6dUtnTGZmphDC8OcgO/jPWbFFMQcs7Og1Bw8eFABe+xkwYIAQIuuSJ9OnTxcODg7CzMxMfPDBB+L69es6y3j69Knw9/cXZcqUEdbW1mLQoEHixYsXEqxNweQ2B3fu3Mn2OQDi4MGD2mUY8hxkJ7vCrjTMwZo1a0TNmjWFubm5aNSokQgPD9dZRmpqqvjyyy9FuXLlhKWlpejWrZt49OhREa9Jwb1pDh49eiQGDhwonJychLm5uahdu7b4/vvvhUaj0S6jpM9BTr/vISEh2jF5Wce7d++Kzp07CwsLC1GxYkUxduxY7aVAirs3zUFO/58AEHfu3NEux5DnIKfX/PcSQYU9B7J/35iIiIiISjgeY0dERERkIFjYERERERkIFnZEREREBoKFHREREZGBYGFHREREZCBY2BEREREZCBZ2RERERAaChR0RERGRgWBhR0RUiEJDQ2Fra1sk73Xo0CHIZLLXmtETUenBwo6ISoXHjx/jiy++QNWqVWFmZgZHR0d4eXnh2LFj2jEymQzh4eHShXxLLVu2xKNHj2BjYyN1FCKSiLHUAYiIikKPHj2QkZGBtWvXonr16oiLi8P+/fvx9OlTqaPphUqlgqmpKRwdHaWOQkQS4hY7IjJ4CQkJOHr0KObPn48OHTrAxcUFzZs3x+TJk+Ht7Q0AcHV1BQB069YNMplMex8AgoKCUKNGDZiamqJ27dr49ddfX1v+559/DgcHB5ibm6N+/frYuXNntlkeP36MZs2aoVu3bkhPT892jKurK7755hv4+/vDysoKlStXxooVK3TGyGQyBAUFwdvbG1ZWVpg7d262u2KPHTuG9u3bw9LSEuXKlYOXlxeeP38OANBoNJg3bx6qVasGCwsLNGrUCNu2bcvP1BJRMcPCjogMXpkyZVCmTBmEh4fnWEydOnUKABASEoJHjx5p74eFhWHUqFEYO3YsLl++jM8//xyDBg3CwYMHAWQVR507d8axY8ewfv16/P333/juu+9gZGT02nvcv38fbdq0Qf369bFt2zaYmZnlmHnhwoVo1KgRzp07h0mTJmHUqFGIjIzUGTNr1ix069YNly5dwuDBg19bxvnz5/HBBx/Azc0NUVFR+PPPP9G1a1eo1WoAwLx587Bu3ToEBwfjypUrGD16NPr27YvDhw/nYVaJqFgSRESlwLZt20S5cuWEubm5aNmypZg8ebK4cOGCzhgAIiwsTOexli1biqFDh+o81rNnT/HRRx8JIYTYu3evkMvl4vr169m+b0hIiLCxsRHXrl0Tzs7OYuTIkUKj0eSa1cXFRXTq1EnnMT8/P9G5c2edrIGBgTpjDh48KACI58+fCyGE8Pf3F61atcr2PdLS0oSlpaU4fvy4zuNDhgwR/v7+ueYjouKLW+yIqFTo0aMHYmJioFAo0KlTJxw6dAhNmjRBaGhorq+7evUqWrVqpfNYq1atcPXqVQBZW8WqVKmCWrVq5biM1NRUtGnTBt27d8fSpUshk8nemNfDw+O1+y/f86VmzZrluoyXW+yyc+vWLaSkpODDDz/UbtEsU6YM1q1bh3/++eeN+YioeOLJE0RUapibm+PDDz/Ehx9+iOnTp+Ozzz7DzJkzMXDgwAIv08LC4o1jzMzM4OnpiZ07d2L8+PGoXLlygd/vVVZWVgXOlpSUBADYtWvXa3ly20VMRMUbt9gRUanl5uaG5ORk7X0TExPt8Wcv1a1bV+eSKEDWCQlubm4AgIYNG+LBgwe4ceNGju8jl8vx66+/omnTpujQoQNiYmLemO2vv/567X7dunXf+LpXNWzYEPv378/2OTc3N5iZmSE6Oho1a9bU+XF2ds7X+xBR8cEtdkRk8J4+fYqePXti8ODBaNiwIcqWLYvTp09jwYIF8PHx0Y5zdXXF/v370apVK5iZmaFcuXIYP348evXqhXfffReenp74/fffsWPHDuzbtw8A0K5dO7Rt2xY9evTA4sWLUbNmTVy7dg0ymQydOnXSLtvIyAgbNmyAv78/3n//fRw6dCjXS5McO3YMCxYsgK+vLyIjI7F161bs2rUrX+s9efJkNGjQAF9++SWGDx8OU1NTHDx4ED179kTFihUxbtw4jB49GhqNBq1bt0ZiYiKOHTsGa2trDBgwIJ+zTETFgtQH+RERFba0tDQxadIk0aRJE2FjYyMsLS1F7dq1xbRp00RKSop2nEKhEDVr1hTGxsbCxcVF+/jKlStF9erVhYmJiahVq5ZYt26dzvKfPn0qBg0aJCpUqCDMzc1F/fr1xc6dO4UQ/zt54iWVSiW6d+8u6tatK+Li4rLN6+LiImbPni169uwpLC0thaOjo1i6dKnOGGRzosd/T54QQohDhw6Jli1bCjMzM2Frayu8vLy0z2s0GrFkyRJRu3ZtYWJiIuzs7ISXl5c4fPhwHmeWiIobmRBCSF1cEhHR/7i6uiIwMBCBgYFSRyGiEobH2BEREREZCBZ2RERERAaCu2KJiIiIDAS32BEREREZCBZ2RERERAaChR0RERGRgWBhR0RERGQgWNgRERERGQgWdkREREQGgoUdERERkYFgYUdERERkIFjYERERERmI/wdeS5sh+Q48xwAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "strategy = generate_strategies(\n", + " \"covered-call\",\n", + " strike=175,\n", + " premium=1.15,\n", + " prev_pos=170,\n", + ")\n", + "st = StrategyEngine(\n", + " Inputs(\n", + " stock_price=stockprice,\n", + " start_date=startdate,\n", + " target_date=targetdate,\n", + " volatility=volatility,\n", + " interest_rate=interestrate,\n", + " min_stock=minstock,\n", + " max_stock=maxstock,\n", + " strategy=strategy,\n", + " )\n", + ")\n", + "out = st.run()\n", + "print_outputs(out)\n", + "print(\"\\n\")\n", + "plot_pl(st)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-03-24T23:21:26.180567Z", + "start_time": "2024-03-24T23:21:26.081866Z" + } + }, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "## Married put" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Days remaining to the target date: 18\n", + "Strategy cost: -17115.00\n", + "Minimum return: 385.00\n", + "Maximum return: 7487.00\n", + "Profitable stock price range:\n", + " 0.00 ---> inf\n", + "Probability of Profit (PoP): 100.0%\n", + "\n", + "\n", + "P/L profile diagram:\n", + "--------------------\n", + "The vertical green dashed line corresponds to the position of the stock's spot price. The right and left arrow markers indicate the strike prices of calls and puts, respectively, with blue representing long and red representing short positions.\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABk70lEQVR4nO3deVwU9f8H8Ncu7C6Xu3gB4W2WimdqKZmWRaLxLVMzMytAvPEAz/DEE9PyKpHyAOrbpX2zPCojD6zEIzzy1vLARMCLXbmWhf38/uDH5CooIMvA8no+Hvt47M68d/Y1H9n1vTM7MwohhAARERERVXlKuQMQERERUflgY0dERERkI9jYEREREdkINnZERERENoKNHREREZGNYGNHREREZCPY2BERERHZCDZ2RERERDbCXu4AVYHZbEZycjJq1KgBhUIhdxwiIiKqRoQQuH37Njw9PaFU3n+bHBu7EkhOTkaDBg3kjkFERETV2OXLl1G/fv371rCxK4EaNWoAKBhQrVYrcxoiqkryzfk4knIEANDeoz3slHbyBiKiKsdgMKBBgwZSP3I/bOxKoHD3q1arZWNHRKWSmZuJ579+HgCQEZYBZ7WzzImIqKoqyc/BePAEERERkY1gY0dERERkI9jYEREREdkINnZERERENoKNHREREZGNYGNHREREZCN4uhMiIitS2akw+9nZ0n0iImtiY0dEZEVqOzXCnwuXOwYRVRPcFUtERERkI7jFjojIiszCjFPXTgEAWtZtCaWC36eJyHrY2BERWVG2KRutV7cGwEuKEZH18asjERERkY1gY0dERERkI9jYEREREdkINnZERERElVhYWFiJa9nYEREREVVSP//8MyIjI0tcz8aOiIiIqBLS6/UYOnRoqZ7D050QEVmRyk6FSd6TpPtERCU1YcIEXL58GU2aNMGFCxdK9ByFEEJYOVeVZzAYoNPpoNfrodVq5Y5DRERENu6HH36An58fFAoFfvzxR/Tq1atEfQh3xRIRERFVIrdu3cKwYcMAAKGhofD29i7xc9nYERFZkVmYcTH9Ii6mX4RZmOWOQ0RVwPjx45GcnIzmzZtj/vz5pXouf2NHRGRF2aZsNFnRBAAvKUZED/b999/js88+g1KpRExMDBwdHWEymUr8fG6xIyIiIqoErl+/juHDhwMAJk+ejC5dupR6GWzsiIiIiCqB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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "strategy = generate_strategies(\n", + " \"married-put\",\n", + " strike=175,\n", + " premium=1.15,\n", + " prev_pos=170,\n", + " higher_strike=185,\n", + ")\n", + "st = StrategyEngine(\n", + " Inputs(\n", + " stock_price=stockprice,\n", + " start_date=startdate,\n", + " target_date=targetdate,\n", + " volatility=volatility,\n", + " interest_rate=interestrate,\n", + " min_stock=minstock,\n", + " max_stock=maxstock,\n", + " strategy=strategy,\n", + " )\n", + ")\n", + "out = st.run()\n", + "print_outputs(out)\n", + "print(\"\\n\")\n", + "plot_pl(st)\n", + "# FIXME: why 100% PoP?" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-03-24T23:23:26.163761Z", + "start_time": "2024-03-24T23:23:26.062790Z" + } + }, + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [ + "## Bull call" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Days remaining to the target date: 18\n", + "Strategy cost: 0.00\n", + "Minimum return: 0.00\n", + "Maximum return: 1000.00\n", + "Profitable stock price range:\n", + " 175.01 ---> inf\n", + "Probability of Profit (PoP): 18.7%\n", + "\n", + "\n", + "P/L profile diagram:\n", + "--------------------\n", + "The vertical green dashed line corresponds to the position of the stock's spot price. The right and left arrow markers indicate the strike prices of calls and puts, respectively, with blue representing long and red representing short positions.\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "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KVOUmpqqQYMGSaoc4evXr5+5C9flcmncuHEaNmzYOZ0RCwCoHcEOCBz1HrHbvHmztm3bZj5+5513NGjQIP3+979XWVmZV4rr2bOnFi9erDfeeEOdOnXSE088odmzZ2vEiBFmm4cfflj33XefxowZo549e6qgoEDLly9XVFSU2WbhwoVq3769brjhBvXv319XX321GQ4BAOeHYAcEjnpfx65nz5569NFHNWTIEH3//ffq2LGjBg8erI0bN2rAgAGaPXu2l0u1DtexA1BfhWWFipsZJ0kqmFygWEesxRV536WXXqo9e/ZozZo1uu6666wuBwg5frmO3e7du9WtWzdJ0ltvvaVrr71Wr7/+urKysvSvf/2rvi8LAAgyVSN2NZ2QBsB/6h3sDMOQ2+2WJH300Ufq37+/JKlly5Y6evSod6oDAAS0kpIS8yLu7IoFrFfvkyd69OihJ598UhkZGVq7dq3mzp0rqXI2CD7cAFApOiJaex/Ya94PNVWjdQ6HQwkJCRZXA6Dewa7qJIYlS5boscce08UXXyxJWrRokXr37u21AgEgmNltdrVJbGN1GT5z6qwTTCcGWK/ewa5Lly4eZ8VWee655xQWFnZeRQEAggNnxAKBpd7H2B04cEA//PCD+XjDhg0aP368XnvtNUVERHilOAAIdmUVZZr04SRN+nCSyiq8cymoQEKwAwJLvYPdr371K61evVpS5VD8jTfeqA0bNuixxx7TH/7wB68VCADBzFXh0vPZz+v57OflqnBZXY7XEeyAwFLvYPf111/riiuukCS9+eab6tSpkz777DMtXLhQWVlZ3qoPABDACHZAYKl3sHO5XIqMjJRUebmTW265RZLUvn17HTp0yDvVAQACGsEOCCz1DnYdO3bUvHnz9PHHH2vFihXq16+fJOngwYNq2rSp1woEAAQugh0QWOod7J599ln95S9/UZ8+fTR8+HB17dpVkrR06VJzFy0AILQx6wQQWOp9uZM+ffro6NGjcjqdaty4sbl8zJgxiomJ8UpxAIDAxogdEFjqHewkKSwsTOXl5frkk08kSe3atVObNm28URcAIMCVlpYqLy9PEsEOCBT1DnaFhYW677779Nprr5lzxoaFhek3v/mNXn75ZUbtAECV04h9fc/X5v1QUjVaFxER4bHnBoB16n2M3cSJE7V27Vq9++67ysvLU15ent55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Vm1SvZ2tL6677jqjY8eOxurVq43vv//emD9/vhEVFWW88sor5muEQl/cc889RkJCgrFmzRqP74GioiKzzdm2s7y83OjUqZPRt29fY+vWrcby5cuNpKQkY/LkyVZsUr2crR/y8/ONXr16GZ07dza+/fZbjzbl5eWGYYRGPxjGuf2fOJ1OOyvWH31BsGtAVq9ebUg64zZy5EjDMCoveTJlyhSjefPmRmRkpHHDDTcYu3bt8niNY8eOGcOHDzfi4uKM+Ph446677jJOnDhhwdbUX239sHfv3mrXSTJWr15tvkYo9INhnP3/xOmqC3ah0Bfn0g9/+9vfjIsvvtiIiooyunbtaixZssTjNYqLi417773XaNy4sRETE2MMHjzYOHTokJ+35PydrS8OHTpk3HnnnUZqaqoRFRVltGvXzvjjH/9ouN1u8zVCoS9q+h6YP3++2eZctvM///mPcdNNNxnR0dFGs2bNjAcffNC8DEgwOFs/1PT/RZKxd+9e83WCvR8M49z+T1T3nNMvGeTrvrD9/MYAAAAIchxjBwAAECIIdgAAACGCYAcAABAiCHYAAAAhgmAHAAAQIgh2AAAAIYJgBwAAECIIdgAAACGCYAcAXpCVlaXExES/vNeaNWtks9nOmIAeAAh2AELKkSNHdM8996hVq1aKjIxUSkqKMjMz9emnn5ptbDablixZYl2R56l37946dOiQEhISrC4FQIAJt7oAAPCmIUOGqKysTAsWLNBFF12kw4cPa+XKlTp27JjVpXmFy+WSw+FQSkqK1aUACECM2AEIGXl5efr444/17LPP6pe//KVat26tK664QpMnT9Ytt9wiSWrTpo0kafDgwbLZbOZjSZo7d65+8YtfyOFwqF27dvq///u/M17/d7/7nZo3b66oqCh16tRJy5Ytq7aWI0eOqEePHho8eLBKS0urbdOmTRs98cQTGj58uGJjY3XhhRdqzpw5Hm1sNpvmzp2rW265RbGxsXrqqaeq3RX76aefqk+fPoqJiVHjxo2VmZmpn376SZLkdrs1c+ZMtW3bVtHR0eratasWLVpUl64FECQIdgBCRlxcnOLi4rRkyZIaw9TGjRslSfPnz9ehQ4fMx4sXL9YDDzygBx98UF9//bV+97vf6a677tLq1aslVYajm266SZ9++qn+/ve/a8eOHXrmmWcUFhZ2xnscOHBA11xzjTp16qRFixYpMjKyxpqfe+45de3aVVu2bNGjjz6qBx54QCtWrPBoM336dA0ePFjbtm3Tb3/72zNeY+vWrbrhhhuUlpam7OxsffLJJ7r55ptVUVEhSZo5c6Zee+01zZs3T9u3b9eECRP061//WmvXrj2HXgUQVAwACCGLFi0yGjdubERFRRm9e/c2Jk+ebHz55ZcebSQZixcv9ljWu3dvY/To0R7Lhg4davTv398wDMP44IMPDLvdbuzatava950/f76RkJBgfPPNN0bLli2N+++/33C73bXW2rp1a6Nfv34ey26//Xbjpptu8qh1/PjxHm1Wr15tSDJ++uknwzAMY/jw4cZVV11V7XuUlJQYMTExxmeffeaxfNSoUcbw4cNrrQ9A8GHEDkBIGTJkiA4ePKilS5eqX79+WrNmjbp3766srKxan7dz505dddVVHsuuuuoq7dy5U1LlqFiLFi106aWX1vgaxcXFuuaaa3TrrbfqxRdflM1mO2u96enpZzyues8qPXr0qPU1qkbsqvPtt9+qqKhIN954ozmiGRcXp9dee03ffffdWesDEFw4eQJAyImKitKNN96oG2+8UVOmTNH//M//aNq0abrzzjvr/ZrR0dFnbRMZGamMjAwtW7ZMkyZN0oUXXljv9ztVbGxsvWsrKCiQJL333ntn1FPbLmIAwYkROwAhLy0tTYWFhebjiIgI8/izKh06dPC4JIpUeUJCWlqaJKlLly764YcftHv37hrfx2636//+7/90+eWX65e//KUOHjx41to+//zzMx536NDhrM87VZcuXbRy5cpq16WlpSkyMlL79+/XxRdf7HFr2bJlnd4HQOBjxA5AyDh27JiGDh2q3/72t+rSpYsaNWqkL774QrNmzdLAgQPNdm3atNHKlSt11VVXKTIyUo0bN9akSZN022236bLLLlNGRobeffddvf322/roo48kSdddd52uvfZaDRkyRC+88IIuvvhiffPNN7LZbOrXr5/52mFhYVq4cKGGDx+u66+/XmvWrKn10iSffvqpZs2apUGDBmnFihV666239N5779VpuydPnqzOnTvr3nvv1d133y2Hw6HVq1dr6NChatasmR566CFNmDBBbrdbV199tfLz8/Xpp58qPj5eI0eOrGMvAwhoVh/kBwDeUlJSYjz66KNG9+7djYSEBCMmJsZo166d8fjjjxtFRUVmu6VLlxoXX3yxER4ebrRu3dpc/sorrxgXXXSRERERYVx66aXGa6+95vH6x44dM+666y6jadOmRlRUlNGpUydj2bJlhmGcPHmiisvlMm699VajQ4cOxuHDh6utt3Xr1saMGTOMoUOHGjExMUZKSorx4osverRRNSd6nH7yhGEYxpo1a4zevXsbkZGRRmJiopGZmWmud7vdxuzZs4127doZERERRlJSkpGZmWmsXbv2HHsWQLCwGYZhWB0uAaAhatOmjcaPH6/x48dbXQqAEMExdgAAACGCYAcAABAi2BULAAAQIhixAwAACBEEOwAAgBBBsAMAAAgRBDsAAIAQQbADAAAIEQQ7AACAEEGwAwAACBEEOwAAgBBBsAMAAAgR/x9vEEyeDbHbcQAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "strategy = generate_strategies(\n", + " \"bull-call\",\n", + " strike=175,\n", + " premium=1.15,\n", + " prev_pos=170,\n", + " higher_strike=185,\n", + ")\n", + "st = StrategyEngine(\n", + " Inputs(\n", + " stock_price=stockprice,\n", + " start_date=startdate,\n", + " target_date=targetdate,\n", + " volatility=volatility,\n", + " interest_rate=interestrate,\n", + " min_stock=minstock,\n", + " max_stock=maxstock,\n", + " strategy=strategy,\n", + " )\n", + ")\n", + "out = st.run()\n", + "print_outputs(out)\n", + "print(\"\\n\")\n", + "plot_pl(st)\n", + "# FIXME: why is strategy cost 0?" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-03-24T23:23:40.810209Z", + "start_time": "2024-03-24T23:23:40.713004Z" + } + }, + "execution_count": 9 + }, + { + "cell_type": "markdown", + "source": [ + "## Bear put" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Days remaining to the target date: 18\n", + "Strategy cost: 0.00\n", + "Minimum return: 0.00\n", + "Maximum return: 1500.00\n", + "Profitable stock price range:\n", + " 0.00 ---> 174.99\n", + "Probability of Profit (PoP): 81.2%\n", + "\n", + "\n", + "P/L profile diagram:\n", + "--------------------\n", + "The vertical green dashed line corresponds to the position of the stock's spot price. The right and left arrow markers indicate the strike prices of calls and puts, respectively, with blue representing long and red representing short positions.\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "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qpoq3f3W3br7rbtVVVPVrNfSYweguZp9jV2df//733r99de9VkQfNWqUoqKidPvtt+uFF17wRX4AELJYyw5Ac53VUGxiYuJp2xMSEhiKBQAfYCgWQHO1uLDLyMjQo48+qoqKCnNbeXm5HnvsMWVkZPgkOQAIZXVDsTk5Oaqqat4wLoDQ1OKh2GeffVYjRoxQ9+7dNXDgQEnS559/rsjISL377rs+SxAAQlVSUpKio6NVVlamnJwcnXvuuYFOCUAb1+LCbsCAAdq7d6+WLl2qr776SpI0btw4jR8/XlFRUT5LEABClcViUY8ePbRjxw7t27ePwg7AGbWosHO73erdu7dWrFihe+65x9c5AQD+5+TCDgDOpEWFXXh4uNe1dQCA+kWERejVH7xqPm4uJlAAaI4WT56YPHmynnrqKVVXV/syHwAIKmHWMN3W7zbd1u82hVmb/12atewANEeLr7HbtGmTVq1apffee08DBgxQTEyM1/433njjrJMDgFDHWnYAmqPFhV18fLzGjBnjy1wAIOhUe6q1bNcySdItfW5pdq/dyUOxhmHIYrH4PEcAwaPZhZ3H49H8+fO1Z88eVVVV6fvf/77mzJnDTFgAqEdldaVuf/12SVLJzBKF2Zv3sZuamiqLxaLS0lIVFhbWuzA8ANRp9jV2TzzxhH75y18qNjZW55xzjhYuXKjJkyf7IzcACHkRERFKTk6WxAQKAGfW7MLur3/9q55//nm9++67evPNN/X2229r6dKl8ng8/sgPAEIeEygANFWzC7ucnByNGjXKfD5s2DBZLBbl5eX5NLE6hw4d0o9+9CN17txZUVFRGjBggD777DNzv2EYmj17trp166aoqCgNGzZMe/fu9TrG0aNHNX78eMXFxSk+Pl4TJ05USUmJX/IFAF9jAgWApmp2YVddXa3IyEivbeHh4XK73T5Lqs6xY8d0+eWXKzw8XP/973/15Zdf6v/+7//UsWNHM2bevHlauHChFi9erI0bNyomJkaZmZle6+yNHz9eO3fuVFZWllasWKH169dr0qRJPs8XAPyBtewANFWzJ08YhqG77rpLEREnFtqsqKjQvffe67XkiS+WO3nqqaeUnJysl156ydyWnp7ulcuzzz6rX//617rpppsk1Q4VJyYm6s0339TYsWO1a9curVy5Ups2bdKgQYMkSc8995xGjRqlp59+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qamRJM2dO1d//etftXjxYu3cuVPTpk3Tj370I61bt64JrQqgXTEAIIi8/vrrRseOHY3IyEhjyJAhxsyZM43PP//cK0aSsWzZMq9tQ4YMMe655x6vbbfddpsxatQowzAM49133zWsVquxe/fuet/3pZdeMhwOh/HVV18ZycnJxgMPPGB4PJ5Gc01NTTVGjBjhte2HP/yhMXLkSK9cp06d6hWzZs0aQ5Jx7NgxwzAMY9y4ccbll19e73tUVFQY0dHRxscff+y1feLEica4ceMazQ9A+0OPHYCgMmbMGOXl5Wn58uUaMWKE1q5dq4svvlhLlixp9HW7du3S5Zdf7rXt8ssv165duyTV9op1795d559/foPHKC8v15VXXqlbb71VCxYskMViOWO+GRkZpz2ve886gwYNavQYdT129fn6669VVlam6667zuzRjI2N1V//+lft27fvjPkBaF+YPAEg6ERGRuq6667Tddddp1mzZun//b//p0cffVR33XVXi48ZFRV1xpiIiAgNGzZMK1as0IwZM3TOOee0+P1OFhMT0+LcSkpKJEnvvPPOafk0NkQMoH2ixw5A0Ovbt69KS0vN5+Hh4eb1Z3X69OnjtSSKVDshoW/fvpKkCy64QN9884327NnT4PtYrVb97W9/0yWXXKJrrrlGeXl5Z8ztk08+Oe15nz59zvi6k11wwQVatWpVvfv69u2riIgI5eTk6Nxzz/X6SU5Obtb7AGj76LEDEDS+++473XbbbfrJT36iCy64QB06dNBnn32mefPm6aabbjLj0tLStGrVKl1++eWKiIhQx44dNWPGDN1+++266KKLNGzYML399tt644039P7770uSrrrqKg0dOlRjxozRM888o3PPPVdfffWVLBaLRowYYR7bZrNp6dKlGjdunL7//e9r7dq1jS5N8tFHH2nevHm6+eablZWVpddee03vvPNOs8575syZGjBggO677z7de++9stvtWrNmjW677TZ16dJFv/jFLzRt2jR5PB5dccUVKi4u1kcffaS4uDhNmDChma0MoE0L9EV+AOArFRUVxiOPPGJcfPHFhsPhMKKjo41evXoZv/71r42ysjIzbvny5ca5555rhIWFGampqeb2559/3ujRo4cRHh5unH/++cZf//pXr+N/9913xt1332107tzZiIyMNPr372+sWLHCMIwTkyfquN1u49ZbbzX69OljFBQU1Jtvamqq8dhjjxm33XabER0dbSQlJRkLFizwilE9Ez1OnTxhGIaxdu1aY8iQIUZERIQRHx9vZGZmmvs9Ho/x7LPPGr169TLCw8ONrl27GpmZmca6deua2LIA2guLYRhGoItLAAhFaWlpmjp1qqZOnRroVAAECa6xAwAACBIUdgAAAEGCoVgAAIAgQY8dAABAkKCwAwAACBIUdgAAAEGCwg4AACBIUNgBAAAECQo7AACAIEFhBwAAECQo7AAAAILE/w80xJi/tm+TpAAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "strategy = generate_strategies(\n", + " \"bear-put\",\n", + " strike=175,\n", + " premium=1.15,\n", + " prev_pos=170,\n", + " lower_strike=160,\n", + ")\n", + "st = StrategyEngine(\n", + " Inputs(\n", + " stock_price=stockprice,\n", + " start_date=startdate,\n", + " target_date=targetdate,\n", + " volatility=volatility,\n", + " interest_rate=interestrate,\n", + " min_stock=minstock,\n", + " max_stock=maxstock,\n", + " strategy=strategy,\n", + " )\n", + ")\n", + "out = st.run()\n", + "print_outputs(out)\n", + "print(\"\\n\")\n", + "plot_pl(st)\n", + "# FIXME: why is strategy cost 0?" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-03-24T20:29:02.500554Z", + "start_time": "2024-03-24T20:29:02.396158Z" + } + }, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "## Protective collar" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Days remaining to the target date: 18\n", + "Strategy cost: -16500.00\n", + "Minimum return: 1000.00\n", + "Maximum return: 2000.00\n", + "Profitable stock price range:\n", + " 0.00 ---> inf\n", + "Probability of Profit (PoP): 100.0%\n", + "\n", + "\n", + "P/L profile diagram:\n", + "--------------------\n", + "The vertical green dashed line corresponds to the position of the stock's spot price. The right and left arrow markers indicate the strike prices of calls and puts, respectively, with blue representing long and red representing short positions.\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "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vvpKt9xyi8rLyyVJaWlpev/99/XOO+9o+/btmjx5su655x6tWbOmBr0KoEkxAMCLfPTRR0bLli2NgIAA45prrjFSU1ONzZs3u7SRZCxatMhl2TXXXGM89NBDLstGjRplDB061DAMw/jiiy8MHx8fY/fu3VW+79y5c42wsDBj165dRkxMjPH4448bTqfzvLXGxsYagwcPdln261//2hgyZIhLrZMmTXJps2rVKkOScfLkScMwDGP06NHGtddeW+V7FBcXG0FBQca6detclo8bN84YPXr0eesD0PRwxA6AVxk5cqQOHz6sJUuWaPDgwVq9erV69+6tefPmnffndu7cqWuvvdZl2bXXXqudO3dKqjgq1r59e11xxRXVbuP06dO6/vrrNWLECM2ePVsWi+WC9SYlJZ0zX/mela688srzbqPyiF1V9u3bp6KiIt18883mEc2QkBC9//772r9//wXrA9C0MHgCgNcJCAjQzTffrJtvvlnPPvusfvOb3+j555/X/fffX+dtBgYGXrCNzWbTwIEDtXTpUk2dOlWXXHJJnd/vbMHBwXWuraCgQJL02WefnVPP+U4RA2iaOGIHwOslJCSosLDQnPf39zevP6vUpUsXl1uiSBUDEhISEiRJ3bt3108//aQ9e/ZU+z4+Pj763//9X/Xp00c33nijDh8+fMHavvnmm3Pmu3TpcsGfO1v37t21YsWKKtclJCTIZrMpKytLnTp1cnnFxMTU6n0ANH4csQPgNY4fP65Ro0bpwQcfVPfu3dWiRQt99913mjlzpm699VazXceOHbVixQpde+21stlsatmypaZOnao777xTvXr10sCBA/Xpp5/q448/1vLlyyVJN9xwg/r376+RI0fqtddeU6dOnbRr1y5ZLBYNHjzY3Lavr6/mz5+v0aNH61e/+pVWr1593luTfP3115o5c6Zuu+02paena+HChfrss89qtd+pqalKTEzUY489pkceeURWq1WrVq3SqFGj1KZNGz355JOaPHmynE6nrrvuOuXn5+vrr79WaGioxo4dW8teBtCoefoiPwCoL8XFxcbvfvc7o3fv3kZYWJgRFBRkxMfHG88884xRVFRktluyZInRqVMnw8/Pz4iNjTWXv/XWW8all15q+Pv7G1dccYXx/vvvu2z/+PHjxgMPPGC0bt3aCAgIMLp162YsXbrUMIwzgycqORwOY8SIEUaXLl2M3NzcKuuNjY01ZsyYYYwaNcoICgoyoqKijNmzZ7u0URUDPX45eMIwDGP16tXGNddcY9hsNiM8PNxITk421zudTuONN94w4uPjDX9/f6Nt27ZGcnKysWbNmhr2LICmwmIYhuHpcAkAzVHHjh01adIkTZo0ydOlAPASXGMHAADgJQh2AAAAXoJTsQAAAF6CI3YAAABegmAHAADgJQh2AAAAXoJgBwAA4CUIdgAAAF6CYAcAAOAlCHYAAABegmAHAADgJQh2AAAAXuL/A2mjlZaWM+WzAAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "strategy = generate_strategies(\n", + " \"protective-collar\",\n", + " strike=175,\n", + " premium=1.15,\n", + " prev_pos=165,\n", + " higher_strike=185,\n", + ")\n", + "st = StrategyEngine(\n", + " Inputs(\n", + " stock_price=stockprice,\n", + " start_date=startdate,\n", + " target_date=targetdate,\n", + " volatility=volatility,\n", + " interest_rate=interestrate,\n", + " min_stock=minstock,\n", + " max_stock=maxstock,\n", + " strategy=strategy,\n", + " )\n", + ")\n", + "out = st.run()\n", + "print_outputs(out)\n", + "print(\"\\n\")\n", + "plot_pl(st)\n", + "# FIXME: explain why PoP is 100%" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-03-24T23:25:27.498942Z", + "start_time": "2024-03-24T23:25:27.337099Z" + } + }, + "execution_count": 14 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Profit/loss profiles for each leg and the overall strategy are obtained by calling the `get_pl` method and plotted at the option's maturity." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2024-03-13T02:23:46.516713Z", + "start_time": "2024-03-13T02:23:46.355315Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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NXh7a8f370OvXi+O9fRMaA8Nha5dXxzbsGHC+0ZGQufOL469d28j+/e3oUCBApw5c4YePVwSfkecPQMXLoCtHTRrRrU6diZfp08+gUR/C5soV87069+jx4v3xS5e3PR3z4ABcO9e8rEFCmg/l/GGDdO+zsnJnRsSr+s6bpz2/UtO9uywYkXybUKkhTRf8km9gbCwMLV8+XLl6+urfH191YoVK9SzZ8/e5CUtQkhIiAIUhCitnDK9tWtnGm8wJI2JvzVvbhrr6Pji2Pr1TWPz5n1xbI0aprHFir04tmxZ09gKFV4cW6iQaWytWi+OzZXLNLZx4xfH2tubxrZs+eJYUCo2NiG2Y8eXxz55khDbtevLY4OCEmL79Xt57F9/JcSOGPHy2NOnE2InTXp57KFDCbGzZr08dufOhNjFi18e+8svCbGrV7889ocfEmLXrn157MqVCbG//vry2IULE2L37n157PTpCbFHj748dvz4hNhz514eO3RoQuzff788tnfvhNj7918e+8knCbHPnr08FtYqQP32229KqVf7HZEt24tjzf13REiIEiJNxX9+h6TRD9sbrdPl4OBAjx49TB67evUqvXv3ZvvLLhdkEqtWgYND0scLFjS9//33L36N52eA+/lBTEzysblzm95fskT7izo5iYeHgHZVIyws+djni/0ZM1781/Hz5ztpEjx8mHysra3p/dGjoVu35GOtrU3v+/rCBx8kHwumSxX165dw9SQ5/24hCoCPDzRq9OLYxF+LTz6BmjVfHJt4wfAOHbSrDC9SoEDCcatW2tXFFylePOG4eXN42a5bZcsmHDdqpF19e5HKlROO3d3hq69eHJv4vGvUePnViLp1E44rVnx5bOKRCaVKabvZpCSHIkVg2bIXx1avnnDs6gpLl744NvHXIUeOl8cm/p5my/byK4mlSiUc29hoVzefFxkZyZQpn/PgwRF8fHyM26t9+SUQFwdTp8CdO1DjLeN/lud/VubMefHviPgrr/GmTXvxlfPEP78AEydqV/OSk2h9bED7v/zoUfKxjo6m94cOhbt3k4+1t9f+jYnRrrrNng3HjkGJEsnHC5HRvdGK9Mk5efIk1atXJzY2NjVf1qzIivRCiNcxYMAAvvzySwoVKsTp06dxdnY2Dfj9d63P9ddfX15tW5i4OG0Yxp492vCM3bsThg8IkZrS+vNb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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "s, pl_total = st.get_pl()\n", + "leg = []\n", + "\n", + "for i in range(len(strategy)):\n", + " leg.append(st.get_pl(i)[1])\n", + "\n", + "zeroline = zeros(s.shape[0])\n", + "plt.xlabel(\"Stock price\")\n", + "plt.ylabel(\"Profit/Loss\")\n", + "plt.xlim(120, 200)\n", + "plt.ylim(-2000, 2000)\n", + "plt.plot(s, zeroline, \"m-\")\n", + "plt.plot(s, pl_total, \"k-\", label=\"Covered Call\")\n", + "plt.plot(s, leg[0], \"r--\", label=\"Long Stock\")\n", + "plt.plot(s, leg[1], \"b--\", label=\"Short Call\")\n", + "plt.legend(loc=\"upper left\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below one can see some useful results of the calculations made for the strategy, including its PoP." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2024-03-13T02:24:34.070723Z", + "start_time": "2024-03-13T02:24:34.068235Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Days remaining to the target date: 18\n", + "Strategy cost: -16289.00\n", + "Maximum loss: 8087.00\n", + "Maximum profit: 1211.00\n", + "Profitable stock price range:\n", + " 162.90 ---> inf\n", + "Probability of Profit (PoP): 52.4%\n" + ] + } + ], + "source": [ + "print(\"Days remaining to the target date: %d\" % st.days2target)\n", + "print(\"Strategy cost: %.2f\" % out.strategy_cost)\n", + "print(\"Maximum loss: %.2f\" % abs(out.minimum_return_in_the_domain))\n", + "print(\"Maximum profit: %.2f\" % out.maximum_return_in_the_domain)\n", + "print(\"Profitable stock price range:\")\n", + "\n", + "for low, high in out.profit_ranges:\n", + " print(\" %.2f ---> %.2f\" % (low, high))\n", + "\n", + "print(\"Probability of Profit (PoP): %.1f%%\" % (out.probability_of_profit * 100.0))" + ] + } + ], + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/optionlab/models.py b/optionlab/models.py index a85981c..374e9a5 100644 --- a/optionlab/models.py +++ b/optionlab/models.py @@ -41,7 +41,7 @@ class StockStrategy(BaseStrategy): Number of shares. It is mandatory. "action" : string Either 'buy' or 'sell'. It is mandatory. - "prev_pos" : float + "prev_pos" : float # FIXME: is this optional? Stock price effectively paid or received in a previously opened position. If positive, it means that the position remains open and the payoff calculation takes this price diff --git a/optionlab/strategies.py b/optionlab/strategies.py new file mode 100644 index 0000000..2d0eb65 --- /dev/null +++ b/optionlab/strategies.py @@ -0,0 +1,187 @@ +import datetime as dt +from typing import Literal + +from optionlab.models import Strategy, StockStrategy, OptionStrategy + +# TODO: vet and add to this list +NamedStrategy = Literal[ + "covered-call", "married-put", "bull-call", "bear-put", "protective-collar" +] + + +def generate_strategies( + named_strategy: NamedStrategy, + strike: float, + premium: float, + expiration: dt.date | None = None, + n: int = 100, + prev_pos: float | None = None, + higher_strike: float | None = None, + lower_strike: float | None = None, +) -> list[Strategy]: + """Generate common option strategies + Source: https://www.investopedia.com/trading/options-strategies/ + """ + + match named_strategy: + case "covered-call": + return _generate_covered_call_strategy( + strike, premium, n, expiration, prev_pos + ) + case "married-put": + return _generate_married_put_strategy( + strike, premium, n, expiration, prev_pos + ) + case "bull-call": + return _generate_bull_call_strategy( + strike, premium, n, expiration, higher_strike + ) + case "bear-put": + return _generate_bear_put_strategy( + strike, premium, n, expiration, lower_strike + ) + case "protective-collar": + return _generate_protective_collar_strategy( + strike, premium, n, expiration, prev_pos, higher_strike + ) + case _: + raise ValueError("Strategy not defined") + + +def _generate_covered_call_strategy( + strike: float, + premium: float, + n: int, + expiration: dt.date | None, + prev_pos: float | None, +) -> list[Strategy]: + + return [ + StockStrategy(n=n, prev_pos=prev_pos, action="buy"), + OptionStrategy( + n=n, + strike=strike, + premium=premium, + type="call", + action="sell", + expiration=expiration, + ), + ] + + +def _generate_married_put_strategy( + strike: float, + premium: float, + n: int, + expiration: dt.date | None, + prev_pos: float | None, +) -> list[Strategy]: + + return [ + StockStrategy(n=n, prev_pos=prev_pos, action="buy"), + OptionStrategy( + n=n, + strike=strike, + premium=premium, + type="put", + action="buy", + expiration=expiration, + ), + ] + + +def _generate_bull_call_strategy( + strike: float, + premium: float, + n: int, + expiration: dt.date | None, + higher_strike: float | None, +) -> list[Strategy]: + + if higher_strike is None or higher_strike < strike: + raise ValueError("Higher strike price must be provided for bull call strategy") + + return [ + OptionStrategy( + n=n, + strike=strike, + premium=premium, + type="call", + action="buy", + expiration=expiration, + ), + OptionStrategy( + n=n, + strike=higher_strike, + premium=premium, + type="call", + action="sell", + expiration=expiration, + ), + ] + + +def _generate_bear_put_strategy( + strike: float, + premium: float, + n: int, + expiration: dt.date | None, + lower_strike: float | None, +) -> list[Strategy]: + + if lower_strike is None or lower_strike > strike: + raise ValueError("Higher strike price must be provided for bull call strategy") + + return [ + OptionStrategy( + n=n, + strike=strike, + premium=premium, + type="put", + action="buy", + expiration=expiration, + ), + OptionStrategy( + n=n, + strike=lower_strike, + premium=premium, + type="put", + action="sell", + expiration=expiration, + ), + ] + + +def _generate_protective_collar_strategy( + strike: float, + premium: float, + n: int, + expiration: dt.date | None, + prev_pos: float | None, + higher_strike: float | None, +) -> list[Strategy]: + + if higher_strike is None or higher_strike < strike or prev_pos is None: + raise ValueError( + "Higher strike price must be provided for protective caller strategy" + ) + + return [ + StockStrategy(n=n, prev_pos=prev_pos, action="buy"), + OptionStrategy( + n=n, + strike=strike, + premium=premium, + type="put", + action="buy", + expiration=expiration, + ), + OptionStrategy( + n=n, + strike=higher_strike, + premium=premium, + type="call", + action="sell", + expiration=expiration, + ), + ]