From e85e5f8f6fa593179a735a34d0523caf4d02ffad Mon Sep 17 00:00:00 2001 From: bonochof Date: Wed, 28 Jun 2023 00:07:54 +0900 Subject: [PATCH 1/3] add price_limit example --- examples/price_limit.ipynb | 212 +++++++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 examples/price_limit.ipynb diff --git a/examples/price_limit.ipynb b/examples/price_limit.ipynb new file mode 100644 index 00000000..6ce2268e --- /dev/null +++ b/examples/price_limit.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "58xSRq9jpa-2" + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](http://colab.research.google.com/github/masanorihirano/pams/blob/main/examples/price_limit.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OwaI8_xbpa-5", + "outputId": "1df64bd6-6e6b-4365-8f03-c6f3fc583f5e" + }, + "outputs": [], + "source": [ + "# Please remove comment-out if necessary\n", + "#! pip install pams matplotlib" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "ixLeaU7Epa-5" + }, + "outputs": [], + "source": [ + "config = {\n", + "\t\"simulation\": {\n", + "\t\t\"markets\": [\"Market\"],\n", + "\t\t\"agents\": [\"FCNAgents\"],\n", + "\t\t\"sessions\": [\n", + "\t\t\t{\t\"sessionName\": 0,\n", + "\t\t\t\t\"iterationSteps\": 100,\n", + "\t\t\t\t\"withOrderPlacement\": True,\n", + "\t\t\t\t\"withOrderExecution\": False,\n", + "\t\t\t\t\"withPrint\": True\n", + "\t\t\t},\n", + "\t\t\t{\t\"sessionName\": 1,\n", + "\t\t\t\t\"iterationSteps\": 500,\n", + "\t\t\t\t\"withOrderPlacement\": True,\n", + "\t\t\t\t\"withOrderExecution\": True,\n", + "\t\t\t\t\"withPrint\": True,\n", + "\t\t\t\t\"events\": [\"PriceLimitRule\"]\n", + "\t\t\t}\n", + "\t\t]\n", + "\t},\n", + "\n", + "\t\"PriceLimitRule\": {\n", + "\t\t\"class\": \"PriceLimitRule\",\n", + "\t\t\"referenceMarket\": \"Market\",\n", + "\t\t\"targetMarkets\": [\"Market\"],\n", + "\t\t\"triggerChangeRate\": 0.05,\n", + "\t\t\"enabled\": True\n", + "\t},\n", + "\n", + "\t\"Market\": {\n", + "\t\t\"class\": \"Market\",\n", + "\t\t\"tickSize\": 0.00001,\n", + "\t\t\"marketPrice\": 300.0,\n", + "\t\t\"outstandingShares\": 25000\n", + "\t},\n", + "\n", + "\t\"FCNAgents\": {\n", + "\t\t\"class\": \"FCNAgent\",\n", + "\t\t\"numAgents\": 100,\n", + "\n", + "\t\t\"markets\": [\"Market\"],\n", + "\t\t\"assetVolume\": 50,\n", + "\t\t\"cashAmount\": 10000,\n", + "\n", + "\t\t\"fundamentalWeight\": {\"expon\": [0.2]},\n", + "\t\t\"chartWeight\": {\"expon\": [0.0]},\n", + "\t\t\"noiseWeight\": {\"expon\": [1.0]},\n", + "\t\t\"noiseScale\": 0.001,\n", + "\t\t\"timeWindowSize\": [100, 200],\n", + "\t\t\"orderMargin\": [0.0, 0.1]\n", + "\t}\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "xUUUfulSpa-6" + }, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from pams.runners import SequentialRunner\n", + "from pams.logs.market_step_loggers import MarketStepSaver" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3QXSkEw2pa-6", + "outputId": "fb454d0c-57b3-4cb6-d6ad-4512dbe429c1" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# INITIALIZATION TIME 0.006271\n", + "# EXECUTION TIME 0.119255\n" + ] + } + ], + "source": [ + "saver = MarketStepSaver()\n", + "\n", + "runner = SequentialRunner(\n", + " settings=config,\n", + " prng=random.Random(42),\n", + " logger=saver,\n", + ")\n", + "runner.main()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "id": "P5_pyTa9pa-6" + }, + "outputs": [], + "source": [ + "market_prices = dict(sorted(map(lambda x: (x[\"market_time\"], x[\"market_price\"]), saver.market_step_logs)))\n", + "fundamental_prices = dict(sorted(map(lambda x: (x[\"market_time\"], x[\"fundamental_price\"]), saver.market_step_logs)))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 449 + }, + "id": "c__AgWzapa-7", + "outputId": "456ed7cb-0b14-4774-845c-da50b68a7031" + }, + "outputs": [ + { + "data": { + "image/png": "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yzFp0iScOnUKHTt2BAAsWLAATz75JM6cOQOLxRLSc5aWlsJut6OkpAQ2m61ZXw8RERG1jFB/f8fMmB2n04nFixejoqICWVlZfq+RX4zJ5C5Ibd26Ff3791eCDgCMHTsWpaWlOHDgQMDnqqmpQWlpqeaDiIiI9CnqYSc3NxdJSUmwWq24//77sWTJEmRmZvpcd/bsWbz44ou49957lWMFBQWaoANAuV1QUBDwOWfPng273a58ZGRkNNOrISIiolgT9bDTp08f7N27F9u3b8eMGTMwbdo0HDx4UHNNaWkpJk6ciMzMTDz//PNNfs6cnByUlJQoHydPnmzyYxIREVFsiuoAZQCwWCzo2bMnAGDw4MHYuXMn5s6dizfffBMAUFZWhnHjxqFNmzZYsmQJzGazct+0tDTs2LFD83inT59WzgVitVphtVqb+6UQERFRDIp6Zceby+VCTU0NAHdFZ8yYMbBYLFi6dCni4uI012ZlZSE3NxeFhYXKsdWrV8Nms/ntCiMiIqLWJ6qVnZycHIwfPx5dunRBWVkZFi1ahPXr12PlypVK0KmsrMR7772nGUjcoUMHGI1GjBkzBpmZmbjzzjvxyiuvoKCgAM888wyys7NZuSEiIiIAUQ47hYWFmDp1KvLz82G32zFgwACsXLkS1113HdavX4/t27cDgNLNJTt+/Di6desGo9GIZcuWYcaMGcjKykJiYiKmTZuGP/zhD9F4OURERBSDYm6dnWjgOjtEREQXngtunR0iIiKilsCwQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREumaKdgOIqPUoqarDl7n5qKp1QgAQQijnhAAERP2/2tuea/yfF6oHUZ9LsJhw2xUZWH3wNH46Xxmx10nN48ru7XB17w7K7f0/l2DF/gIIiID3SbCYMGVoF7gEsHTvz7jhsouw8kABBndti1PFVdj943lMGtAZfdLaAACOFJZj6benIITAhP6d0LeTLaS2fbzrJE6cq2jaC6w3olcHDL24XcDzK/bnI/fnkmZ5rmia/ouLkZJo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6rV2lEUFmXaIiCKOYYfIj0CVHVt8w2vsKI9RPyPrqU/3Ib+kCgArO0RE0cCwQ+THHVd1BQBcdXEKAGBod/e/04Z1Dfkx0uzxAIBv8opRXedelLBDUlxzNpOIiEIgCXlObCtWWloKu92OkpIS2Gy2aDeHYoDD6cKO40UYmJGMRKsJ5TUO7DtZjKEXtwtpI1AAOF1ajS1HzypdWF3bJWJw17Yt2GoiotYl1N/fDDtg2CEiIroQhfr7m91YREREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESka1ENO7Nnz8YVV1yBNm3aIDU1FTfddBMOHz6suaagoAB33nkn0tLSkJiYiMsvvxyffvqp5pqioiJMmTIFNpsNycnJmD59OsrLyyP5UoiIiChGRTXsbNiwAdnZ2di2bRtWr16Nuro6jBkzBhUVFco1U6dOxeHDh7F06VLk5ubi5ptvxq233oo9e/Yo10yZMgUHDhzA6tWrsWzZMmzcuBH33ntvNF4SERERxRhJCCGi3QjZmTNnkJqaig0bNmDEiBEAgKSkJMyfPx933nmncl27du3wpz/9Cf/zP/+DQ4cOITMzEzt37sSQIUMAACtWrMCECRPw008/oXPnzg0+b2lpKex2O0pKSmCz2VrmxREREVGzCvX3d0yN2SkpKQEApKSkKMeGDRuGDz/8EEVFRXC5XFi8eDGqq6sxcuRIAMDWrVuRnJysBB0AGD16NAwGA7Zv3+73eWpqalBaWqr5ICIiIn2KmbDjcrkwa9YsDB8+HP369VOOf/TRR6irq0O7du1gtVpx3333YcmSJejZsycA95ie1NRUzWOZTCakpKSgoKDA73PNnj0bdrtd+cjIyGi5F0ZERERRFTNhJzs7G/v378fixYs1x5999lkUFxfjq6++wq5du/DII4/g1ltvRW5ubqOfKycnByUlJcrHyZMnm9p8IiIiilGmaDcAAGbOnKkMLE5PT1eOHz16FH//+9+xf/9+XHrppQCAgQMH4uuvv8a8efOw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34quXbsKi8UiOnToIEaNGqUEHSH4PjXEO+zw/fK47bbbRKdOnYTFYhEXXXSRuO222zTrxvC90vr8889Fv379hNVqFZdccol46623NOdj5We8JIQQzVcnIiIiIootHLNDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0QXpPXr10OSJJ99igIZOXIkZs2a1aJtIqLYxLBDRBcE77AybNgw5Ofnw263R69RRHRBMEW7AUREjWGxWHS3izQRtQxWdogo5t11113YsGED5s6dC0mSIEkS3nnnHZ9urM2bN2PkyJFISEhA27ZtMXbsWJw/f97vY37xxRew2+14//33Abi7xa688kokJiYiOTkZw4cPx48//hiJl0dELYxhh4hi3ty5c5GVlYV77rkH+fn5yM/PR0ZGhuaavXv3YtSoUcjMzMTWrVuxadMmXH/99XA6nT6Pt2jRIvzmN7/B+++/jylTpsDhcOCmm27C1VdfjX379mHr1q249957IUlSpF4iEbUgdmMRUcyz2+2wWCxISEhQuq6+++47zTWvvPIKhgwZgjfeeEM5dumll/o81rx58/D000/j888/x9VXXw0AKC0tRUlJCSZNmoQePXoAAPr27dtSL4eIIoxhh4h0Ye/evbjllluCXvPJJ5+gsLAQmzdvxhVXXKEcT0lJwV133YWxY8fiuuuuw+jRo3HrrbeiU6dOLd1sIooAdmMRkS7Ex8c3eM2gQYPQoUMH/Otf/4IQQnNu4cKF2Lp1K4YNG4YPP/wQvXv3xrZt21qquUQUQQw7RHRBsFgsfsffyAYMGIA1a9YEfYwePXpg3bp1+Oyzz/C73/3O5/ygQYOQk5ODLVu2oF+/fli0aFGT201E0cewQ0QXhG7dumH79u04ceIEzp49C5fLpTmfk5ODnTt34oEHHsC+ffvw3XffYf78+Th79qzmut69e2PdunX49NNPlXV7jh8/jpycHGzduhU//vgjVq1ahR9++IHjdoh0gmGHiC4Ijz32GIxGIzIzM9GhQwfk5eVpzvfu3RurVq3Ct99+iyuvvBJZWVn47LPPYDL5Dk3s06cP1q5diw8++ACPPvooEhIS8N1332Hy5Mno3bs37r33XmRnZ+O+++6L1MsjohYkCe+OayIiIiIdYWWHiIiIdI1hh4iIiHSNYYeIiIh0jWGHiIiIdI1hh4iIiHSNYYeIiIh0jWGHiIiIdI1hh4iIiHSNYYeIiIh0jWGHiIiIdI1hh4iIiHSNYYeIiIh07f8HSlj2AtkOpToAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(list(market_prices.keys()), list(market_prices.values()))\n", + "plt.plot(list(fundamental_prices.keys()), list(fundamental_prices.values()), color='black')\n", + "plt.xlabel(\"ticks\")\n", + "plt.ylabel(\"market price\")\n", + "plt.ylim([270, 330])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.8.13" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 0039ded4b58a0a570d5a347946986de25dc3f0ee Mon Sep 17 00:00:00 2001 From: bonochof Date: Wed, 28 Jun 2023 02:21:51 +0900 Subject: [PATCH 2/3] remove a line --- examples/price_limit.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/price_limit.ipynb b/examples/price_limit.ipynb index 6ce2268e..8365ff21 100644 --- a/examples/price_limit.ipynb +++ b/examples/price_limit.ipynb @@ -84,7 +84,7 @@ "\t\t\"timeWindowSize\": [100, 200],\n", "\t\t\"orderMargin\": [0.0, 0.1]\n", "\t}\n", - "}\n" + "}" ] }, { From 6192702b6a96e18a0b4d23665420c60cff0a159e Mon Sep 17 00:00:00 2001 From: Masanori HIRANO Date: Fri, 30 Jun 2023 22:01:06 +0900 Subject: [PATCH 3/3] drop reference market and clear output --- examples/price_limit.ipynb | 45 +++++++------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/examples/price_limit.ipynb b/examples/price_limit.ipynb index 8365ff21..a52efa47 100644 --- a/examples/price_limit.ipynb +++ b/examples/price_limit.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "id": "ixLeaU7Epa-5" }, @@ -56,7 +56,6 @@ "\n", "\t\"PriceLimitRule\": {\n", "\t\t\"class\": \"PriceLimitRule\",\n", - "\t\t\"referenceMarket\": \"Market\",\n", "\t\t\"targetMarkets\": [\"Market\"],\n", "\t\t\"triggerChangeRate\": 0.05,\n", "\t\t\"enabled\": True\n", @@ -89,14 +88,13 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "id": "xUUUfulSpa-6" }, "outputs": [], "source": [ "import random\n", - "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from pams.runners import SequentialRunner\n", "from pams.logs.market_step_loggers import MarketStepSaver" @@ -104,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -112,16 +110,7 @@ "id": "3QXSkEw2pa-6", "outputId": "fb454d0c-57b3-4cb6-d6ad-4512dbe429c1" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "# INITIALIZATION TIME 0.006271\n", - "# EXECUTION TIME 0.119255\n" - ] - } - ], + "outputs": [], "source": [ "saver = MarketStepSaver()\n", "\n", @@ -135,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "id": "P5_pyTa9pa-6" }, @@ -147,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -156,18 +145,7 @@ "id": "c__AgWzapa-7", "outputId": "456ed7cb-0b14-4774-845c-da50b68a7031" }, - "outputs": [ - { - "data": { - "image/png": "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yzFp0iScOnUKHTt2BAAsWLAATz75JM6cOQOLxRLSc5aWlsJut6OkpAQ2m61ZXw8RERG1jFB/f8fMmB2n04nFixejoqICWVlZfq+RX4zJ5C5Ibd26Ff3791eCDgCMHTsWpaWlOHDgQMDnqqmpQWlpqeaDiIiI9CnqYSc3NxdJSUmwWq24//77sWTJEmRmZvpcd/bsWbz44ou49957lWMFBQWaoANAuV1QUBDwOWfPng273a58ZGRkNNOrISIiolgT9bDTp08f7N27F9u3b8eMGTMwbdo0HDx4UHNNaWkpJk6ciMzMTDz//PNNfs6cnByUlJQoHydPnmzyYxIREVFsiuoAZQCwWCzo2bMnAGDw4MHYuXMn5s6dizfffBMAUFZWhnHjxqFNmzZYsmQJzGazct+0tDTs2LFD83inT59WzgVitVphtVqb+6UQERFRDIp6Zceby+VCTU0NAHdFZ8yYMbBYLFi6dCni4uI012ZlZSE3NxeFhYXKsdWrV8Nms/ntCiMiIqLWJ6qVnZycHIwfPx5dunRBWVkZFi1ahPXr12PlypVK0KmsrMR7772nGUjcoUMHGI1GjBkzBpmZmbjzzjvxyiuvoKCgAM888wyys7NZuSEiIiIAUQ47hYWFmDp1KvLz82G32zFgwACsXLkS1113HdavX4/t27cDgNLNJTt+/Di6desGo9GIZcuWYcaMGcjKykJiYiKmTZuGP/zhD9F4OURERBSDYm6dnWjgOjtEREQXngtunR0iIiKilsCwQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREumaKdgOIqPUoqarDl7n5qKp1QgAQQijnhAAERP2/2tuea/yfF6oHUZ9LsJhw2xUZWH3wNH46Xxmx10nN48ru7XB17w7K7f0/l2DF/gIIiID3SbCYMGVoF7gEsHTvz7jhsouw8kABBndti1PFVdj943lMGtAZfdLaAACOFJZj6benIITAhP6d0LeTLaS2fbzrJE6cq2jaC6w3olcHDL24XcDzK/bnI/fnkmZ5rmia/ouLkZJo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6rV2lEUFmXaIiCKOYYfIj0CVHVt8w2vsKI9RPyPrqU/3Ib+kCgArO0RE0cCwQ+THHVd1BQBcdXEKAGBod/e/04Z1Dfkx0uzxAIBv8opRXedelLBDUlxzNpOIiEIgCXlObCtWWloKu92OkpIS2Gy2aDeHYoDD6cKO40UYmJGMRKsJ5TUO7DtZjKEXtwtpI1AAOF1ajS1HzypdWF3bJWJw17Yt2GoiotYl1N/fDDtg2CEiIroQhfr7m91YREREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESkaww7REREpGsMO0RERKRrDDtERESka1ENO7Nnz8YVV1yBNm3aIDU1FTfddBMOHz6suaagoAB33nkn0tLSkJiYiMsvvxyffvqp5pqioiJMmTIFNpsNycnJmD59OsrLyyP5UoiIiChGRTXsbNiwAdnZ2di2bRtWr16Nuro6jBkzBhUVFco1U6dOxeHDh7F06VLk5ubi5ptvxq233oo9e/Yo10yZMgUHDhzA6tWrsWzZMmzcuBH33ntvNF4SERERxRhJCCGi3QjZmTNnkJqaig0bNmDEiBEAgKSkJMyfPx933nmncl27du3wpz/9Cf/zP/+DQ4cOITMzEzt37sSQIUMAACtWrMCECRPw008/oXPnzg0+b2lpKex2O0pKSmCz2VrmxREREVGzCvX3d0yN2SkpKQEApKSkKMeGDRuGDz/8EEVFRXC5XFi8eDGqq6sxcuRIAMDWrVuRnJysBB0AGD16NAwGA7Zv3+73eWpqalBaWqr5ICIiIn2KmbDjcrkwa9YsDB8+HP369VOOf/TRR6irq0O7du1gtVpx3333YcmSJejZsycA95ie1NRUzWOZTCakpKSgoKDA73PNnj0bdrtd+cjIyGi5F0ZERERRFTNhJzs7G/v378fixYs1x5999lkUFxfjq6++wq5du/DII4/g1ltvRW5ubqOfKycnByUlJcrHyZMnm9p8IiIiilGmaDcAAGbOnKkMLE5PT1eOHz16FH//+9+xf/9+XHrppQCAgQMH4uuvv8a8efOw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34quXbsKi8UiOnToIEaNGqUEHSH4PjXEO+zw/fK47bbbRKdOnYTFYhEXXXSRuO222zTrxvC90vr8889Fv379hNVqFZdccol46623NOdj5We8JIQQzVcnIiIiIootHLNDREREusawQ0RERLrGsENERES6xrBDREREusawQ0RERLrGsENERES6xrBDREREusawQ0QXpPXr10OSJJ99igIZOXIkZs2a1aJtIqLYxLBDRBcE77AybNgw5Ofnw263R69RRHRBMEW7AUREjWGxWHS3izQRtQxWdogo5t11113YsGED5s6dC0mSIEkS3nnnHZ9urM2bN2PkyJFISEhA27ZtMXbsWJw/f97vY37xxRew2+14//33Abi7xa688kokJiYiOTkZw4cPx48//hiJl0dELYxhh4hi3ty5c5GVlYV77rkH+fn5yM/PR0ZGhuaavXv3YtSoUcjMzMTWrVuxadMmXH/99XA6nT6Pt2jRIvzmN7/B+++/jylTpsDhcOCmm27C1VdfjX379mHr1q249957IUlSpF4iEbUgdmMRUcyz2+2wWCxISEhQuq6+++47zTWvvPIKhgwZgjfeeEM5dumll/o81rx58/D000/j888/x9VXXw0AKC0tRUlJCSZNmoQePXoAAPr27dtSL4eIIoxhh4h0Ye/evbjllluCXvPJJ5+gsLAQmzdvxhVXXKEcT0lJwV133YWxY8fiuuuuw+jRo3HrrbeiU6dOLd1sIooAdmMRkS7Ex8c3eM2gQYPQoUMH/Otf/4IQQnNu4cKF2Lp1K4YNG4YPP/wQvXv3xrZt21qquUQUQQw7RHRBsFgsfsffyAYMGIA1a9YEfYwePXpg3bp1+Oyzz/C73/3O5/ygQYOQk5ODLVu2oF+/fli0aFGT201E0cewQ0QXhG7dumH79u04ceIEzp49C5fLpTmfk5ODnTt34oEHHsC+ffvw3XffYf78+Th79qzmut69e2PdunX49NNPlXV7jh8/jpycHGzduhU//vgjVq1ahR9++IHjdoh0gmGHiC4Ijz32GIxGIzIzM9GhQwfk5eVpzvfu3RurVq3Ct99+iyuvvBJZWVn47LPPYDL5Dk3s06cP1q5diw8++ACPPvooEhIS8N1332Hy5Mno3bs37r33XmRnZ+O+++6L1MsjohYkCe+OayIiIiIdYWWHiIiIdI1hh4iIiHSNYYeIiIh0jWGHiIiIdI1hh4iIiHSNYYeIiIh0jWGHiIiIdI1hh4iIiHSNYYeIiIh0jWGHiIiIdI1hh4iIiHSNYYeIiIh07f8HSlj2AtkOpToAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.plot(list(market_prices.keys()), list(market_prices.values()))\n", "plt.plot(list(fundamental_prices.keys()), list(fundamental_prices.values()), color='black')\n", @@ -176,13 +154,6 @@ "plt.ylim([270, 330])\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {