From d05dca4f28380a67c25806a6ce79352cae041579 Mon Sep 17 00:00:00 2001
From: Ludovico Lemma <89784228+ludovicolemma@users.noreply.github.com>
Date: Fri, 12 Aug 2022 15:48:48 +0200
Subject: [PATCH] Add files via upload
---
notebooks/01_DevNotebook_LSTM_study.ipynb | 1161 ++++++++++
...book_Debugging_classes_and_functions.ipynb | 1986 +++++++++++++++++
2 files changed, 3147 insertions(+)
create mode 100644 notebooks/01_DevNotebook_LSTM_study.ipynb
create mode 100644 notebooks/02_DevNotebook_Debugging_classes_and_functions.ipynb
diff --git a/notebooks/01_DevNotebook_LSTM_study.ipynb b/notebooks/01_DevNotebook_LSTM_study.ipynb
new file mode 100644
index 0000000..dade8ac
--- /dev/null
+++ b/notebooks/01_DevNotebook_LSTM_study.ipynb
@@ -0,0 +1,1161 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "01 - LSTM_study_notebook.ipynb",
+ "provenance": [],
+ "collapsed_sections": []
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "language_info": {
+ "name": "python"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "VXs2IK6k92Gh"
+ },
+ "outputs": [],
+ "source": [
+ "import datetime\n",
+ "import time\n",
+ "\n",
+ "import urllib.request\n",
+ "import os\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "from sklearn.preprocessing import MinMaxScaler\n",
+ "\n",
+ "from tensorflow.keras.models import load_model\n",
+ "from tensorflow.keras.models import Sequential\n",
+ "from tensorflow.keras.layers import Dense\n",
+ "from tensorflow.keras.layers import LSTM\n",
+ "from tensorflow.keras.layers import Dropout\n",
+ "\n",
+ "def yahoo_finance_csv(code, start_from_date = '2010-07-01', end_to_date = datetime.date.today().isoformat(), interval = 'd'): #other intervals are 'wk' and 'mo'\n",
+ "\n",
+ " #setting an header to avoid possible errors\n",
+ " opener = urllib.request.build_opener()\n",
+ " opener.addheaders = [('User-Agent','Mozilla/5.0')]\n",
+ " urllib.request.install_opener(opener)\n",
+ " \n",
+ " #converting dates from iso format\n",
+ " start_from_date = datetime.datetime.fromisoformat(start_from_date)\n",
+ " end_to_date = datetime.datetime.fromisoformat(end_to_date)\n",
+ " \n",
+ " #converting dates to unix time\n",
+ " start_from_code = int(time.mktime(start_from_date.timetuple())) #1277942400 is the code of the 1st of july of 2010 / CHOOSE A CLOSER DATE IF THE CHANGE IN PRICE LEVEL IS SUBSTANTIAL\n",
+ " todays_code = int(time.mktime(end_to_date.timetuple()))\n",
+ "\n",
+ " url = f'https://query1.finance.yahoo.com/v7/finance/download/{code}?period1={start_from_code}&period2={todays_code}&interval=1{interval}&events=history&includeAdjustedClose=true'\n",
+ "\n",
+ " #Save as a temporary file and return the a (position, HTTP message)\n",
+ " save_to_path = urllib.request.urlretrieve(url)\n",
+ " \n",
+ " pos_saved_csv = save_to_path[0]\n",
+ "\n",
+ " return pos_saved_csv"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# DOWNLOADING AND PREPARATION THE DATA"
+ ],
+ "metadata": {
+ "id": "YY4LXU2T05KR"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#DOWNLOAD the prices with {code}\n",
+ "code = 'BTC-EUR'\n",
+ "df = pd.read_csv(yahoo_finance_csv(code))"
+ ],
+ "metadata": {
+ "id": "j1E6bt36-ZXo"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#dropping null rows (sometimes yahoo finance has them)\n",
+ "df = df.dropna().reset_index(drop=True)"
+ ],
+ "metadata": {
+ "id": "ZgobUz3mnq0K"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 424
+ },
+ "id": "U0RbsiZJ3Jn_",
+ "outputId": "43363d13-193c-4742-a77a-54e771b3e326"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Date Open High Low Close \\\n",
+ "0 2014-09-17 359.546204 361.468506 351.586884 355.957367 \n",
+ "1 2014-09-18 355.588409 355.505402 319.789459 328.539368 \n",
+ "2 2014-09-19 328.278503 330.936707 298.921021 307.761139 \n",
+ "3 2014-09-20 307.665253 329.978180 303.931244 318.758972 \n",
+ "4 2014-09-21 318.120514 321.504517 306.502197 310.632446 \n",
+ "... ... ... ... ... ... \n",
+ "2881 2022-08-07 22541.207031 22955.015625 22473.525391 22783.662109 \n",
+ "2882 2022-08-08 22787.236328 23732.878906 22792.974609 23347.226563 \n",
+ "2883 2022-08-09 23349.183594 23441.267578 22445.599609 22691.765625 \n",
+ "2884 2022-08-10 22690.375000 23377.703125 22313.289063 23252.611328 \n",
+ "2885 2022-08-11 23288.640625 23976.431641 23269.263672 23395.583984 \n",
+ "\n",
+ " Adj Close Volume \n",
+ "0 355.957367 16389166 \n",
+ "1 328.539368 26691849 \n",
+ "2 307.761139 29560103 \n",
+ "3 318.758972 28736826 \n",
+ "4 310.632446 20702625 \n",
+ "... ... ... \n",
+ "2881 22783.662109 15617948551 \n",
+ "2882 23347.226563 28020750644 \n",
+ "2883 22691.765625 23075182547 \n",
+ "2884 23252.611328 31884390941 \n",
+ "2885 23395.583984 35669487616 \n",
+ "\n",
+ "[2886 rows x 7 columns]"
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Date | \n",
+ " Open | \n",
+ " High | \n",
+ " Low | \n",
+ " Close | \n",
+ " Adj Close | \n",
+ " Volume | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2014-09-17 | \n",
+ " 359.546204 | \n",
+ " 361.468506 | \n",
+ " 351.586884 | \n",
+ " 355.957367 | \n",
+ " 355.957367 | \n",
+ " 16389166 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2014-09-18 | \n",
+ " 355.588409 | \n",
+ " 355.505402 | \n",
+ " 319.789459 | \n",
+ " 328.539368 | \n",
+ " 328.539368 | \n",
+ " 26691849 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2014-09-19 | \n",
+ " 328.278503 | \n",
+ " 330.936707 | \n",
+ " 298.921021 | \n",
+ " 307.761139 | \n",
+ " 307.761139 | \n",
+ " 29560103 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2014-09-20 | \n",
+ " 307.665253 | \n",
+ " 329.978180 | \n",
+ " 303.931244 | \n",
+ " 318.758972 | \n",
+ " 318.758972 | \n",
+ " 28736826 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 2014-09-21 | \n",
+ " 318.120514 | \n",
+ " 321.504517 | \n",
+ " 306.502197 | \n",
+ " 310.632446 | \n",
+ " 310.632446 | \n",
+ " 20702625 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 2881 | \n",
+ " 2022-08-07 | \n",
+ " 22541.207031 | \n",
+ " 22955.015625 | \n",
+ " 22473.525391 | \n",
+ " 22783.662109 | \n",
+ " 22783.662109 | \n",
+ " 15617948551 | \n",
+ "
\n",
+ " \n",
+ " 2882 | \n",
+ " 2022-08-08 | \n",
+ " 22787.236328 | \n",
+ " 23732.878906 | \n",
+ " 22792.974609 | \n",
+ " 23347.226563 | \n",
+ " 23347.226563 | \n",
+ " 28020750644 | \n",
+ "
\n",
+ " \n",
+ " 2883 | \n",
+ " 2022-08-09 | \n",
+ " 23349.183594 | \n",
+ " 23441.267578 | \n",
+ " 22445.599609 | \n",
+ " 22691.765625 | \n",
+ " 22691.765625 | \n",
+ " 23075182547 | \n",
+ "
\n",
+ " \n",
+ " 2884 | \n",
+ " 2022-08-10 | \n",
+ " 22690.375000 | \n",
+ " 23377.703125 | \n",
+ " 22313.289063 | \n",
+ " 23252.611328 | \n",
+ " 23252.611328 | \n",
+ " 31884390941 | \n",
+ "
\n",
+ " \n",
+ " 2885 | \n",
+ " 2022-08-11 | \n",
+ " 23288.640625 | \n",
+ " 23976.431641 | \n",
+ " 23269.263672 | \n",
+ " 23395.583984 | \n",
+ " 23395.583984 | \n",
+ " 35669487616 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
2886 rows × 7 columns
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 4
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#splitting and Training and Test data\n",
+ "training_to_test_ratio = 0.7\n",
+ "split_val = round(len(df)*training_to_test_ratio)\n",
+ "print(split_val, 'on', len(df))\n",
+ "\n",
+ "training_set = df.iloc[:split_val-1]\n",
+ "test_set = df.iloc[split_val:]"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "3JSqnSi3BACN",
+ "outputId": "aec1f918-2cbe-4265-d410-c7f292a22b30"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "2020 on 2886\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#checking if it corresponds for applying it later in the resulting plot\n",
+ "pd.DatetimeIndex(df['Date']).year[np.arange(0, 2500, 500)]"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "7g87aliR3xnp",
+ "outputId": "a0b9b78c-e5bd-419a-bb14-523490e12523"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "Int64Index([2014, 2016, 2017, 2018, 2020], dtype='int64', name='Date')"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 6
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#plotting training and test data\n",
+ "fig, axs = plt.subplots(1,3,figsize=(25,5))\n",
+ "\n",
+ "df.plot(x='Date', y=['Open'], ax=axs[0], title=f'{code} Price', xticks=np.arange(0, len(df), 600))\n",
+ "training_set.plot(x='Date', y=['Open'], ax=axs[1], title=f'{code} Price (training set)', xticks=np.arange(0, len(training_set), 500))\n",
+ "test_set.plot(x='Date', y=['Open'], ax=axs[2], title=f'{code} Price (test set)', xticks=np.arange(0, len(test_set), 250))\n",
+ "\n",
+ "axs[0].axvline(split_val, c='k', linestyle='--') \n",
+ "axs[0].text(round(split_val/2), df['Open'].max()*0.99, s='Training Set', horizontalalignment='center')\n",
+ "axs[0].text(round((split_val+len(df))/2), df['Open'].min(), s='Test Set', horizontalalignment='center')\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 350
+ },
+ "id": "jv6kKnJVBhl_",
+ "outputId": "a6fa78e7-e2b8-44af-de48-dcca6e3294e3"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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f/58AC6//HIaGhr47ne/m1wfiUQIBLL/0505cyYzZ87s8RzPP/98Qfr6m9/8hnHjxvHmm28C8O677/b42MKVV17JJZdcUpDzi4iIiMjgNBCvA7ozAN9vxVxji4hI3w3A8atHvX3PeQWnnXPzgWwRv8OzbOuA83Mc5xbgliztc4E98+lLuVu5ciXnn38+b7/9NrFYjBNOOIFf/OIXVFVVlbprFe3ss8+mpqaGefPmcdBBB/H5z3+eb3/727S3t1NbW8uf//xnpk2bxpw5c/jlL3/JQw89xOWXX87y5ctZsmQJy5cv54ILLkhmVTc0NNDc3MycOXO4/PLLGT16NAsWLGDffffljjvuwMyYPXs23/nOd6ivr+eggw5iyZIlPPTQQ2n9Wr16NTvuuGPy9bRp05LLd9xxB7/97W8JhUJ87GMf4/rrr+eHP/whbW1tzJgxgz322IM777yzfz5Aycvhh3f5kyYiIiIiWei6Z9voGltERPpLuY/ZPZb1kPw55/jMZz7DySefzKJFi3jvvfdobm7mhz/8Yam7NiCsXLmS559/nl//+tfstttuPPPMM8ybN48f//jHOTOR33nnHR599FFefvll/u///o9wONxlm3nz5nHttdfy9ttvs2TJEp577jna29s599xzefjhh3n11VfJNXv1V77yFa6++moOPPBALr30UhYtWgTAwoULmTVrFs899xzz58/H7/dz5513ctVVV1FbW8v8+fMVmC5Dl112GZdddlmpuyEiIiJS1nTdIyIiUhkqYczOt6yH5OHJJ5+kpqaGL3/5ywD4/X6uueYapkyZwpQpU3j00UdpbGxk1apVfOlLX+JHP/oRkD3D1u/309DQwLe//W0eeughamtruf/++xk3blwp32JJffazn8Xv9wPQ2NjIWWedxaJFizCzrEFngOOPP57q6mqqq6sZO3Ysa9euZcKECWnb7L///sm2GTNmsGzZMhoaGthpp52Sxdu/8IUvcOONN3Y5/owZM1iyZAn//ve/efzxx9lvv/144YUXeOKJJ3j11VfZb7/9AGhra2Ps2LEF+yxEysVLSzay14Th1Fb5S90VEREpgCXrmwn4fEwaVVfqrkgZ03WPiIgktIYivLGykQN2GlXqrkgWlTBmK3O6gN566y323XfftLahQ4cyadIkIpEIL7/8Mvfeey9vvPEGd999N3Pnzs2Z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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#scaling the training set\n",
+ "scale = MinMaxScaler(feature_range = (0, 1))\n",
+ "X_train_scaled = scale.fit_transform(training_set.values[:,1].reshape(-1,1))"
+ ],
+ "metadata": {
+ "id": "wFZD0yv5CSPJ"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#building the training data sequences from the original data\n",
+ "\n",
+ "X_train = []\n",
+ "y_train = []\n",
+ "\n",
+ "time_stamps = 30 #for each record there will be that number of time stamps\n",
+ "days = 1 #1 = next day, predict the value there will be in the next number of days\n",
+ "\n",
+ "#example (time stamps 30, days 2):\n",
+ "#the previous month will be consider to predict the value in the next 2nd day\n",
+ "days_forward = days-1 #for coding purposes 0 is 1 day forward, 1 is two day forward\n",
+ "\n",
+ "for i in range(time_stamps, split_val-1-days_forward):\n",
+ " X_train.append(X_train_scaled[i-time_stamps:i, 0])\n",
+ " y_train.append(X_train_scaled[i+days_forward, 0])\n",
+ " \n",
+ "X_train, y_train = np.array(X_train), np.array(y_train)"
+ ],
+ "metadata": {
+ "id": "LESGa0QTEPOC"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#Check the outlook of the sequence\n",
+ "X_train_scaled[0:time_stamps, 0]"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ySIvEMegtHmU",
+ "outputId": "726ec82a-ba85-4753-c17f-2bc8a13b7928"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([0.01275208, 0.01251108, 0.01084809, 0.00959288, 0.01022954,\n",
+ " 0.0097868 , 0.00991238, 0.01151062, 0.0110267 , 0.01050005,\n",
+ " 0.01023509, 0.01003894, 0.00896653, 0.00890624, 0.00954019,\n",
+ " 0.00938463, 0.00889113, 0.00836913, 0.00686196, 0.0064508 ,\n",
+ " 0.00678027, 0.00702242, 0.00771841, 0.00836187, 0.00828608,\n",
+ " 0.00834608, 0.00906595, 0.00960925, 0.01017264, 0.00959721])"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 10
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#it should be the same as before\n",
+ "X_train[0].ravel()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "--ssuwfu7E1Q",
+ "outputId": "add7c82a-c88a-487b-f365-b219b2d0ddbd"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([0.01275208, 0.01251108, 0.01084809, 0.00959288, 0.01022954,\n",
+ " 0.0097868 , 0.00991238, 0.01151062, 0.0110267 , 0.01050005,\n",
+ " 0.01023509, 0.01003894, 0.00896653, 0.00890624, 0.00954019,\n",
+ " 0.00938463, 0.00889113, 0.00836913, 0.00686196, 0.0064508 ,\n",
+ " 0.00678027, 0.00702242, 0.00771841, 0.00836187, 0.00828608,\n",
+ " 0.00834608, 0.00906595, 0.00960925, 0.01017264, 0.00959721])"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 11
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#The training sequence is until the time_stamps, the target is the last element days_forward\n",
+ "X_train_scaled[0:time_stamps+days_forward+1, 0]"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "eJ8yY8EB4Wa5",
+ "outputId": "ff563c29-ee4f-42e3-9b2f-bbd823235733"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([0.01275208, 0.01251108, 0.01084809, 0.00959288, 0.01022954,\n",
+ " 0.0097868 , 0.00991238, 0.01151062, 0.0110267 , 0.01050005,\n",
+ " 0.01023509, 0.01003894, 0.00896653, 0.00890624, 0.00954019,\n",
+ " 0.00938463, 0.00889113, 0.00836913, 0.00686196, 0.0064508 ,\n",
+ " 0.00678027, 0.00702242, 0.00771841, 0.00836187, 0.00828608,\n",
+ " 0.00834608, 0.00906595, 0.00960925, 0.01017264, 0.00959721,\n",
+ " 0.00906268])"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 12
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#check if the target corresponds for the time_stamp sequence\n",
+ "X_train_scaled[time_stamps+days_forward]"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "3Z849PXItDOK",
+ "outputId": "addef356-16e5-443b-f684-3ef2a7a72e91"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([0.00906268])"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 13
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#it should be the same as before\n",
+ "y_train[0]"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "UEyt5l7sqXgT",
+ "outputId": "1d03cbd1-bef3-4136-abf6-2bbcb7c2b0d2"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "0.009062676067257507"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 14
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#reshaping the training set for LSTM\n",
+ "X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))"
+ ],
+ "metadata": {
+ "id": "4TVi8PCyEkrH"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# BUILDING THE MODEL"
+ ],
+ "metadata": {
+ "id": "CeboMNqK0tfK"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "n_epochs = 15 #considering the average resulting loss it's not that better usually an higher n°\n",
+ "n_layers = 4"
+ ],
+ "metadata": {
+ "id": "WIdN5rXk4sej"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "n_layers -= 1\n",
+ "#initialising the model\n",
+ "model = Sequential()\n",
+ "\n",
+ "#adding n° LSTM layers\n",
+ "model.add(LSTM(units = 50, return_sequences = True, input_shape = (time_stamps, 1)))\n",
+ "model.add(Dropout(0.2))\n",
+ "for i in range(n_layers):\n",
+ " if i < (n_layers-1):\n",
+ " return_sequences = True\n",
+ " else:\n",
+ " return_sequences = False\n",
+ " model.add(LSTM(units = 50, return_sequences = return_sequences))\n",
+ " model.add(Dropout(0.2))\n",
+ "\n",
+ "#adding the output dense layer\n",
+ "model.add(Dense(units = 1))\n",
+ "\n",
+ "#cmpiling the model with adam and mse\n",
+ "model.compile(optimizer = 'adam', loss = 'mean_squared_error')"
+ ],
+ "metadata": {
+ "id": "BDg8YlglJeyM"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#training on the training data\n",
+ "model.fit(X_train, y_train, epochs = n_epochs, batch_size = 32)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "wkxKfsQHEaaR",
+ "outputId": "0c722e0a-f765-4f11-9647-208d26e6538c"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Epoch 1/15\n",
+ "63/63 [==============================] - 19s 65ms/step - loss: 0.0116\n",
+ "Epoch 2/15\n",
+ "63/63 [==============================] - 4s 70ms/step - loss: 0.0035\n",
+ "Epoch 3/15\n",
+ "63/63 [==============================] - 4s 65ms/step - loss: 0.0028\n",
+ "Epoch 4/15\n",
+ "63/63 [==============================] - 4s 65ms/step - loss: 0.0028\n",
+ "Epoch 5/15\n",
+ "63/63 [==============================] - 4s 66ms/step - loss: 0.0027\n",
+ "Epoch 6/15\n",
+ "63/63 [==============================] - 4s 65ms/step - loss: 0.0021\n",
+ "Epoch 7/15\n",
+ "63/63 [==============================] - 4s 64ms/step - loss: 0.0021\n",
+ "Epoch 8/15\n",
+ "63/63 [==============================] - 4s 64ms/step - loss: 0.0020\n",
+ "Epoch 9/15\n",
+ "63/63 [==============================] - 4s 64ms/step - loss: 0.0020\n",
+ "Epoch 10/15\n",
+ "63/63 [==============================] - 4s 65ms/step - loss: 0.0017\n",
+ "Epoch 11/15\n",
+ "63/63 [==============================] - 4s 66ms/step - loss: 0.0018\n",
+ "Epoch 12/15\n",
+ "63/63 [==============================] - 4s 65ms/step - loss: 0.0019\n",
+ "Epoch 13/15\n",
+ "63/63 [==============================] - 4s 65ms/step - loss: 0.0018\n",
+ "Epoch 14/15\n",
+ "63/63 [==============================] - 4s 66ms/step - loss: 0.0016\n",
+ "Epoch 15/15\n",
+ "63/63 [==============================] - 4s 66ms/step - loss: 0.0016\n"
+ ]
+ },
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "execution_count": 18
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "model.summary()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "yg6MRToSPGpf",
+ "outputId": "32d615f6-c039-4234-e5b7-5294e6dc522d"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Model: \"sequential\"\n",
+ "_________________________________________________________________\n",
+ " Layer (type) Output Shape Param # \n",
+ "=================================================================\n",
+ " lstm (LSTM) (None, 30, 50) 10400 \n",
+ " \n",
+ " dropout (Dropout) (None, 30, 50) 0 \n",
+ " \n",
+ " lstm_1 (LSTM) (None, 30, 50) 20200 \n",
+ " \n",
+ " dropout_1 (Dropout) (None, 30, 50) 0 \n",
+ " \n",
+ " lstm_2 (LSTM) (None, 30, 50) 20200 \n",
+ " \n",
+ " dropout_2 (Dropout) (None, 30, 50) 0 \n",
+ " \n",
+ " lstm_3 (LSTM) (None, 50) 20200 \n",
+ " \n",
+ " dropout_3 (Dropout) (None, 50) 0 \n",
+ " \n",
+ " dense (Dense) (None, 1) 51 \n",
+ " \n",
+ "=================================================================\n",
+ "Total params: 71,051\n",
+ "Trainable params: 71,051\n",
+ "Non-trainable params: 0\n",
+ "_________________________________________________________________\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#checking the results of prediction on the training set\n",
+ "moving_horizontally = np.arange(time_stamps, len(training_set)-days_forward)\n",
+ "train_prediction = scale.inverse_transform(model.predict(X_train))\n",
+ "\n",
+ "plt.plot(training_set.values[:,1], color = 'blue', label = 'Real Price')\n",
+ "plt.plot(moving_horizontally, train_prediction, color = 'red', label = 'Predicted Price')\n",
+ "plt.title(f'{code} Price Prediction (Training Data)')\n",
+ "plt.xlabel('Time')\n",
+ "plt.ylabel('Price')\n",
+ "\n",
+ "ticks_freq = 500\n",
+ "plt.xticks(np.arange(0, len(training_set), ticks_freq), training_set['Date'][np.arange(training_set.index[0], training_set.index[-1], ticks_freq)])\n",
+ "\n",
+ "#here the prediction starts later because of the time stamp selected needed for previous predictions\n",
+ "plt.axvline(time_stamps, c='k', linestyle='--') \n",
+ "plt.legend()\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 295
+ },
+ "id": "vgvWkROTxx5i",
+ "outputId": "5c3f2c12-c01c-4f09-e47b-4cb7ee6d5283"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#getting the test set in the same format of the training (meaning a sequence composed of n° of time_stamps)\n",
+ "to_test = pd.concat((training_set[-time_stamps:], test_set))['Open'].values\n",
+ "to_test = to_test.reshape(-1,1)\n",
+ "to_test = scale.transform(to_test)\n",
+ "\n",
+ "X_test = []\n",
+ "for i in range(time_stamps, len(test_set)+time_stamps):\n",
+ " X_test.append(to_test[i-time_stamps:i, 0])\n",
+ "X_test = np.array(X_test)\n",
+ "X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))\n",
+ "\n",
+ "#rescaling the data\n",
+ "y_pred = model.predict(X_test)\n",
+ "test_predictions = scale.inverse_transform(y_pred)"
+ ],
+ "metadata": {
+ "id": "DgXi07h5qw74"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#plotting the results\n",
+ "plt.plot(test_set.values[:,1], color = 'blue', label = 'Real Price')\n",
+ "plt.plot(test_predictions, color = 'red', label = 'Predicted Price')\n",
+ "plt.title(f'{code} Price Prediction (Test Data)')\n",
+ "plt.xlabel('Time')\n",
+ "plt.ylabel('Price')\n",
+ "\n",
+ "ticks_freq = 200\n",
+ "plt.xticks(np.arange(0, len(test_set), ticks_freq), test_set['Date'][np.arange(test_set.index[0], test_set.index[-1], ticks_freq)])\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "id": "4DP0yVlXOn8F",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 295
+ },
+ "outputId": "c953f892-3095-4ccd-f291-e114a3f8a145"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Extra: Testing Rolling predictions"
+ ],
+ "metadata": {
+ "id": "3c_IDwtyeugJ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#It's useless as it should be possible to access the data day by day\n",
+ "#but I did it as it is usefull to understand the underlying mechanism with certain sequences\n",
+ "\n",
+ "#I needed to set the first sequence of n° time_stamps\n",
+ "first_sequence = X_test[0].reshape(1,time_stamps,1) #reshaping to the format needed by the model\n",
+ "\n",
+ "#defining a function that gives a list of subsequent preidction of the same length of the first sequence\n",
+ "def predict_next(first_sequence, model = model):\n",
+ " rolling = [x for x in first_sequence.ravel()]\n",
+ " prediction_sequence = []\n",
+ "\n",
+ " for x in range(0, len(rolling)):\n",
+ " sequence_to_use = rolling[x:]+prediction_sequence\n",
+ " sequence_to_use = np.array(sequence_to_use).reshape(1,time_stamps,1)\n",
+ " predicted_value = model.predict(sequence_to_use)[0][0]\n",
+ " prediction_sequence.append(predicted_value)\n",
+ " \n",
+ " return prediction_sequence\n",
+ "\n",
+ "#defining a function that loop over the previous one to give me the complete sequence\n",
+ "def predict_long(first_sequence, loop = 3): #if the length of first sequence is 30, then loop 3 is around three months\n",
+ " grand_sequence = []\n",
+ " \n",
+ " sequence_to_use = first_sequence\n",
+ "\n",
+ " for i in range(loop):\n",
+ " grand_sequence.append(predict_next(sequence_to_use))\n",
+ " sequence_to_use = np.array(grand_sequence[i]).reshape(1,time_stamps,1)\n",
+ "\n",
+ " return grand_sequence"
+ ],
+ "metadata": {
+ "id": "3dQkDewMe2LO"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import itertools\n",
+ "\n",
+ "grand_sequence = predict_long(first_sequence, loop = 25)\n",
+ "delist = list(itertools.chain.from_iterable(grand_sequence))\n",
+ "predicted_grand_sequence = scale.inverse_transform(np.array(delist).reshape(-1,1)).ravel()"
+ ],
+ "metadata": {
+ "id": "tKEd5oTGkGeS"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "print('test_set:', len(test_set), '\\nlist_to_plot:', len(predicted_grand_sequence))"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "3HhLnOufpHbT",
+ "outputId": "e489f50e-c80c-49ec-8e7e-dab0be5d8bbc"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "test_set: 866 \n",
+ "list_to_plot: 750\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import matplotlib.patches as patches\n",
+ "\n",
+ "#Plotting the results\n",
+ "fig, ax = plt.subplots()\n",
+ "\n",
+ "horizontal_shift = np.arange(time_stamps, time_stamps+len(predicted_grand_sequence))\n",
+ "slice_origin = slice(split_val-time_stamps, split_val+len(predicted_grand_sequence))\n",
+ "real_grand_sequence = df['Open'].values[slice_origin]\n",
+ "\n",
+ "ax.plot(real_grand_sequence, color = 'blue', label = 'Real Price')\n",
+ "ax.plot(horizontal_shift, predicted_grand_sequence, color = 'red', label = 'Rolling Prediction')\n",
+ "ax.set_title(f'{code} Rolling Prediction (Test Data)')\n",
+ "ax.set_xlabel('Time')\n",
+ "ax.set_ylabel('Price')\n",
+ "\n",
+ "ticks_freq = 200\n",
+ "ax.set_xticks(np.arange(0, len(test_set), ticks_freq))\n",
+ "ax.set_xticklabels(test_set['Date'][np.arange(test_set.index[0], test_set.index[-1], ticks_freq)])\n",
+ "\n",
+ "#Here I created a rectangle comprising the first original (blue) sequence from which the rolling prediction came\n",
+ "first_original = real_grand_sequence[:time_stamps] #the data to surround\n",
+ "xpos = -len(real_grand_sequence)*0.01 #positioning 1% earlier than the first value to not be too tight\n",
+ "ypos = first_original.min()*0.99\n",
+ "width = time_stamps-xpos #it's not precise on a large scale thus I enlarge it by 1%\n",
+ "height = first_original.max()*1.01-ypos\n",
+ "\n",
+ "#Adding the rectangle\n",
+ "rect = patches.Rectangle((xpos, ypos), width, height, linewidth=1, edgecolor='k', facecolor='none', label = 'First Sequence')\n",
+ "ax.add_patch(rect)\n",
+ "\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 295
+ },
+ "id": "fCiOZLHiku8B",
+ "outputId": "f1037282-4694-4ef5-e31b-b196d4779f2d"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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nHDCCUW6l1G+8MXJ5/XXoUOH3GVeSEnr1ktxTJxSkGDKjBkzZnDkkUfSrl07zjjjDDaE//eF0axZM9atW8fixYtp1aoVl156KW3atKF3795s8/4Tf/75Z9q1a0dGRgY333wzhx+efzLhffbZh6OPPpoFCxYwatQo+vXrx/HHH0/Pnj3ZsmULF198MV26dKFDhw57I1hs27aNc889l1atWnHGGWfsvXewjQCvvvoq7dq1o3379vz9739n8uTJjBkzhptvvpmMjAwWLlyYy0qcMGECHTp0oG3btlx88cV7A+E2a9aM4cOH07FjR9q2bbs3tYhRvijg3wPIbTnNnAnF6BAwEog5RIST5JwZ4SkzBg4cyJNPPkn37t256667uPvuu3ksxmv98ccfvPXWW7z44oucc845fPDBB1x44YVcdNFFvPjiixx11FExJRbcunUrEyZM4J577mH16tVMnz6dWbNmUadOHYYNG8bxxx/Pyy+/TFZWFl26dOGEE07g+eefp2rVqsyfP59Zs2bRsWPHPNedO3cu9957L5MnT6ZevXpkZmZSp04d+vXrR9++fTn77LNz1d++fTuDBw9mwoQJtGzZkoEDB/Lss89y3XXXAVCvXj2mT5/OM888w4gRI3jppZdiek+lgXXr4NVX3cczPD6c4Xj6aVi2rOB6vtHu/d5h7Fjo2zdx7TKKhn3MUwQ/Zcb+++/P6tWr6dWrFxs3biQrK4vu3bsDMGjQICZNmhTzNZs3b05GRgYAnTp1YvHixWRlZbF582aOOuooAM4///yo5y9cuJCMjAz+9re/ccopp3DSSScB0KtXr73pNr766isefPBBMjIy6NGjB9u3b2fp0qVMmjSJCy+8EIB27drRrl27PNf/5ptv6N+//97YgP41o/H777/TvHlzWrZsGfF9nHnmmbmetSxx551w441w+eXJbklqsmwZeDkyads2/7oVK7r1FVe49cCB8PPPiWubUTTMcgonSTkzIqXMGDRoULGumR6YiZiWlparay0W/DGncIIpNlSVDz74gEMPPbToDY0T/vOmpaUVeTwsVdl3X7d+8UV44YXktiUVCaa+OO44mD07b53u3SGQGo3rroOnnnJdgT16wP33u+MNGya8uUYMmOWUYgRTZlSrVo3atWvz3XffAfDaa6/ttaKKSq1atahevTpTp04F4O233y7W9U488USefPJJ/ADCv/76KwDHHnssb775JgBz5sxh1qxZec49/vjjee+991jv+fpmZmYCUL16dTZv3pyn/qGHHsrixYtZsGABEJ/3UVrwx0nAxkgiEZzXFC1H01dfwVVXhfaDIY62bnVilU9HglHCmDilIMGUGaNHj+bmm2+mXbt2zJgxg7vuuqvY1x85ciSXXnopGRkZbNmyhZo1axb5WnfeeSc7d+6kXbt2tGnThjvvvBOAK664guzsbFq1asVdd91Fp06d8pzbpk0bbr/9drp370779u254YYbADj33HN55JFH6NChAwsXLtxbv3Llyrzyyiv079+ftm3bUqFCBS4vJ/1cQaM3DjMFyhx+9Ienn84bHeL6613Q1/B07JGCw5preepgKTMof6kUsrOz2dfrJ3rwwQdZuXIljz/+eJJblXhK89/5llvgkUfc9h9/wCGHJLc9qcaPP8LRR8O4cdCxo+uu+/57+PZbN9cpUqLorVshPAn0ccfBN9+USJNLFZYywygRPv/8870Tfr/77jvuuOOOZDfJKIDgL3qv99MIEIybt99+cM89IOLKateOfE6k4LD+2J6RfMwhohwyYMAABgwYkOxmlGuWL3e/9sO85aMS7NbzpogZAcIjjkOoey84XhckLS1v2caN8MkncNpp8W2fUXhMnAwjCfTpA3PmOIso0thHOFu3ul/12dkuXpyRm/CI4xASpwJmKORi0iS3bN8e2bIySg7r1jOMJLB0qVvH6tywaBEcdBDUqAEW/CIvkSynnTvduijRvFasKH6bjOKRUHESkcUiMltEZojINK+sjoiMF5E/vHVtr1xE5AkRWSAis0SkY+A6g7z6f4jIoEB5J+/6C7xzJZHPYxjxwv8SjRRuRxWGDQu5Pf/6K/z0E8yaBc2awV9/lVgzSw35WU5FsYBatCh+m4ziURKW03GqmhHw9LgVmKCqLYAJ3j7ASUALbxkCPAtOzIDhQFegCzDcFzSvzqWB8/ok/nEMo/j4XXmRxKlvX3jgAXjmGRf77aOPQseqVs09p8dwRLKcHngA6teHoswP373b/UgwkkcyuvVOA0Z726OB0wPlr6pjClBLRA4ATgTGq2qmqm4AxgN9vGM1VHWKOn/4VwPXKhbNmjVDROK2NGvWrMB7+ikz/GXx4sUcffTRhWr3Y489xtYoEzU+++wzOnToQPv27WndujXP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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import matplotlib.patches as patches\n",
+ "\n",
+ "#Plotting the results\n",
+ "fig, ax = plt.subplots()\n",
+ "\n",
+ "horizontal_shift = np.arange(time_stamps, time_stamps+len(predicted_grand_sequence))\n",
+ "slice_origin = slice(split_val-time_stamps, split_val+len(predicted_grand_sequence))\n",
+ "real_grand_sequence = df['Open'].values[slice_origin]\n",
+ "\n",
+ "ax.plot(real_grand_sequence, color = 'blue', label = 'Real Price')\n",
+ "ax.plot(horizontal_shift, predicted_grand_sequence, color = 'red', label = 'Rolling Prediction')\n",
+ "ax.set_title(f'{code} Rolling Prediction (Test Data)')\n",
+ "ax.set_xlabel('Time')\n",
+ "ax.set_ylabel('Price')\n",
+ "\n",
+ "#Here I created a rectangle comprising the first original (blue) sequence from which the rolling prediction came\n",
+ "first_original = real_grand_sequence[:30] #the data to surround\n",
+ "xpos = -len(real_grand_sequence)*0.01 #positioning 1% earlier than the first value to not be too tight\n",
+ "ypos = first_original.min()*0.99\n",
+ "width = time_stamps-xpos #it's not precise on a large scale thus I enlarge it by 1%\n",
+ "height = first_original.max()*1.01-ypos\n",
+ "plt.xlim(-5, 100)\n",
+ "plt.ylim(ypos*0.98, (height+ypos)*1.05)\n",
+ "\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 295
+ },
+ "id": "J7dMJ8Hmw2qu",
+ "outputId": "5117a388-28c5-44f8-a6c9-ed37718f6751"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEWCAYAAABBvWFzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydebzV4/bH36vpNIhGTaIkpUgppUSRJFNyRdxLuFciXNdPLq7xyjwWyZjMoUKIJKRQqTSn6zSfJNVpnjtn/f5Y3+3sTmfY+5y9z9n7tN6v1359936+z/f5Pnt32p+9hmc9oqo4juM4TmEpVdwTcBzHcUoGLiiO4zhOTHBBcRzHcWKCC4rjOI4TE1xQHMdxnJjgguI4juPEBBcUp0QgIioiRwXPh4vIwOD5KSKyqHhnFz0icp+IvBU8P1xEtopI6QKMc6eIvBL7GYKI1BSRX0SkQjzGTzREJCV4vzWLey6JigtKEiEiy0RkR/DlskFEPhOR+sG5z4P2rSKyR0R2h71+QYybRGSeiGwTkTQR+UBEjsvlXp1FJDNsjNCjfdhczsh2zZUiMjl43iD4kg9dt0xEbs/n/Wkwt60iskpEnirIl2g4qjpJVZsUZozcEJFvRWRnMN91IjJaROrE+j6qukJVD1LVjHzm01lE0rJd+5Cq/iPWcwq4HRiuqjtEZH7Yv3VG2OeyVUTujHbg8B8FefQJ/3tZLyITROSSKO6x3+eVF6q6CxiGvW8nB1xQko/zVPUgoA6wBngWQFW7B186BwFvA4+FXqtqP2AQ8E/gJqAacDTwEXBOHvf6LWyM0OPHKOdbJZjTRcDdItI1n/7HB/07AZcAV0d5v6LmhmC+RwNVgKezdxCRMkU+qzgjIilAH+AtAFVtHvb3N4ngcwkeD8VxKqG/lybAcOA5Ebk3jvd7B+gTvH8nGy4oSYqq7gRGAs3y6ysijYH+wKWq+rWq7lLV7ar6tqo+Eu+5AqjqdGA+0DLC/qnA9+H9ReQaEUkVkXQRGSMidfMbJ/uv0MBSulVE5ojIJhF5T0TKh52/TURWi8hvIvKPcFdaPvNNB0YBx4bd598iMgfYJiJlROQkEflBRDaKyGwR6Rx234YiMlFEtojIeKBG2LmQtVcmeF1NRF4L5rhBRD4SkUrA50DdMMugroS5zoJrzw+siY2BhXVMpJ9NNtoBG1U131/4InK1iCwM5jpORI4I2kVEnhaRP0Rks4jMFZFjRaQv8FfgtuB9fBLB579OVd8ErgPuEJHqwT2uCu69RUSWiMi1QXtun1dbEfkx+HxWi8hzIlIu7D5pwAbgpPzmdCDigpKkiEhF7Bf8lAi6dwHSVHVafGeVOyJyEvZlmxph/6bAKaH+InI68DBwMWadLQdGFHA6FwNnAQ2BFsCVwT3OAm4BzgCOAjpHOqCI1AD+Avwc1nwpZgFWAWoBnwEDMQvxVmCUZPnj3wFmYELyAPbrPzfeBCoCzYFDgadVdRvQnX2tyt+yzfFo4F3gZqAmMBb4JPwLk1w+mxw4Dsg3NiUiPYA7gQuDe04K5gBwJnAqZt0dEtx7vaq+xL5W9nn53SeMj4EyQNvg9R/AucDBwFXA0yJyQh6fVwbwL+zfoT32f+f6bPdYCBwfxZwOGFxQko+PRGQjsAnoCjwewTXVgdUFuFfd4Jda+KNSlGOsE5EdwI/A85ibLS9misg27D/tt8E1YL9Yh6nqzMCXfQfQXkQaRDkfgMGq+ltgVXxClhV0MfCaqs5X1e3AfZGMFfx7zMY+41uy3Welqu4A/gaMVdWxqpqpquOB6cDZInI4cCJwd2A9fhfMaz/EYjTdgX6qukFV96jqxAjf9yXAZ6o6XlX3AE8AFYAO2eac02eTnSrAlgju2Q94WFUXqupe4CGgZWCl7AEqA00BCfoU5O/0T4L3tQ4TbVT1M1VdrMZE4Evsh0pu189Q1SmquldVlwEvYu7XcLZg79/JhgtK8nGBqlYBygM3ABNFpHY+16zHftXniGRlEW0Vka1hp35T1SrZHtuCc3uBstmGKot9SYRTAzgI+D/sF3/2a7JzQtD/EsytEhKwuphVAoCqbg3eV718xsuJ38Oebw/uF7rHyrBz4c9z46bgc6mnqn9V1bW5XH8E0CtcnIGO2L9LXWBD2GcLYe81G/WBdFXdEMHcspP9M8wM5hj+Geb22WRnAyYG+XEEMCjsPacDAtRT1a+B54AhwB8i8pKIHBzpm8kJESmLWULpwevuIjJFzE26ETibMHdiDtcfLSKfisjvIrIZE8Ds/SsDGwszz5KKC0qSoqoZqjoaM9E75tN9AnCYiLTJZaxQFlEoqBoJK4AG2doaksMXYTDXp4Cd7O8+yGk+qqrvY1bNPUHzb9iXE/CnD7w6sCrC+UbCauCwsNf1CzleeCnvlcCb2cS5UhDDWg1UzWb9HZ7LmCuBaiKS0y/k/EqHZ/8MBXuPBfkM52CuqvxYCVyb7X1XUNUfAFR1sKq2xmKBRwMDgusKWga9B/ZjZ5pY4HwUZonVCn6IjcUELbd7DAV+ARqr6sGYu06y9TkGs0idbLigJClBQLMHUBVzD+WKqv6KuY7eFQtSlxOR8iLSW/JJ5c2D94CbRaRpMJc2WEZWXnGNR7BAa26B3pz6XxNYYO8CV4lIy+CL4iFgauCWiBXvB/c4JohR3R3Dsd8CzhORbiJSOvj8O4vIYaq6HHN/3R/823QEcowbBC6hz4HnRaSqiJQVkVOD02uA6iJySB7v7xwR6RL8kv8/YBfwQwHezzSgiojkZyG+gAXJmwOIyCEi0it4fqKItAvmsg37wZEZ9l6OjHQyYokKf8WsnUdVdT1QDkgB1gJ7RaQ7FrcJkdPnVRnYDGwN4njXZbtPPcydFkns8oDDBSX5+CRwS20GHgT6qOr8CK67iSz3wkZgMdCTXHz1AeEZMKHHX4JzLwOvBddvAt4A/qOqX+Qx3meYq+SaCOaLqs4FvgMGqOpX2Bf8KOwXfSOgdyTjRIqqfg4MBr7BkgFCXxq7YjD2SuzX853YF9xK7Nd46P/gZZiLLx24F/s8c+NyzLX4CxZ0vjm4xy+Y8C4JXEz7ZMGp6iIslvMsFmc4D0tD312A97MbS9P9Wz79PgQeBUYELqR5WAwILFD+MvY3sRxzYYZigq8CzYL3kVfcbXbw/yEV+AfwL1W9J7j3Fuzv/v3gHpcBY8LmltPndWvQb0swt/ey3e8y4PUgjudkQ9Q32HKcHBFLqZ0HpAQBZSeMIENtEtAqSDwo0QSW8WzgVFX9o7jnk4i4oDhOGCLSE/OzVwReBzJV9YLinZXjJAfu8nKcfbkWcyMtxhIersu7u+M4IdxCcRzHcWKCWyiO4zhOTChxResAatSooQ0aNCjuaTiOkw/r1sHy5dC8OZTPJ5l8xgyoXRvqRbiUddYsqFYNDs9tRU8hmD0bDjkE4vU1s2oV/B4sMW3SBCpWtPdz6KFwWLBSasUKWBssoz3mGOsTIi0N/vgDmjaFRYvss23SBEqFmRC//QarV0PdulClivWZOXPGOlUteHl+VY3bA6uJMx/LlHkXW909HFgKzAoeLYO+gqVspmKLpk4IG6cP8Gvw6JPffVu3bq2O4yQ+//iHatWqqhkZ+fetW1f16qsjG3ftWlVQfeaZws0vN047TfWkk+Iztqpqx46qxx+vevjhqsceqzp2rL2fsWOz+nzyibWB6m+/7Xv9M89Ye40aqvXr739eVXXvXtUzz8wao0wZVWC6FuI7P24ur2AB0E1AG1U9FihN1rqBAaraMnjMCtq6A42DR19sxSoiUg3Ly2+HFXy7V0SqxmvejuMUHZMnw8kn7/vLOTdq18761Z4fqUEJ0qPyrRNdMJo1gwUL7Ks41uzcCdOmQdeuMGgQzJsH/fpBmTJwSlgVss6doWxZ++wOPXTfMeoGK5B274axY6FODoWXSpe2c3PnwjvvwIAB+/eJlnjHUMoAFcTKblfESj/kRg/gjUA8p2CrcOsA3YDxqhqqXzQeq4bqOE4Ss3Yt/PILdMyvcFBAQQSlUaOCzS0/mjWDzZvNbRRrZswwIejYEXr0gHPOMfdW+/ZwUFhhpIMOMoGpU8fEIZxWrcwdN2oUHHts7vcqXdrOX3opPBSDXWviJiiqugqrobMCW9m8SVW/DE4/KLbnwtOStVFNPfYtppcWtOXWvg8i0ldEpovI9LVr12Y/7ThOgvFDUPAlXoIiAg0bFmxu+XFMsIvMggWxH3vyZDt26GDvYfBgqFQJzj13/76DBsGwYfu3H3UULF0KZ5yx/7l4Ek+XV1XM6miIVTmtJCJ/w8qON8XKdVcD/h2L+6nqS6raRlXb1KzpWz47TqIzeTKkpECbHEuW7k/t2rBmDWRm5t938WILxqfEaV/FZsG2dvEQlEmTLJge+ho78kizUP7v//bve+yxcOaZ+7cXF/F0eZ0BLFXVtWp7FIwGOqjq6sCttQurBRXaCGcV+1Z3PSxoy63dcZwk5vvv4cQTI//Sr10bMjJg/fr8+6amxi9+AhazqFYNFuZQlnXdOnjiCTjttOgFJzPTPpfsVlu1avu7tRKReArKCuAkEakYlMnuAiwM4iKh0tkXYBlgYEXbrggq156EuchWA+OAM4PKqlWxaqHj4jhvx3HizI4dMH26BeQjpVYtO0bi9kpNjV/8BMwVFQrMh9iwAS6/3NKaBwyAb7+FTz+NbtwFC2Djxn2D78lEPGMoU7E9z2cCc4N7vQS8LSJzg7Ya2JaoYPWTlmBpwy8T7JuhtnPcA8BPweO/QZvjOEnKTz/Bnj2Rx0/ALBQwt1debNpkVkI8LRQwQZk/PyvT68EH4d13oW9fy5yqXduSDqIhFD+J5nNJJOK6sFFV78VSfsM5PZe+CvTP5dwwIIfQk+M4yUh44DlSQoKSn4WyeLEd4y0oxxwD6emWrVa2LLz4IlxyCTz7rJ1v2rRgglKnTvySCeKNl15xHKfImTzZVsdXqxb5NZEKSrxThkOEB+affx62boXbbss6HxKUaNaqTJpk1olk3yMySXBBcRynSMnIsJThaN06lStDhQqJJygzZlj67llnwfHHZ51v2tTiKpGuYlixwh7J6u4CFxTHcYqY+fMtzhHtF6dIZGtRUlPNbVSpUsHnGAn16pnIPfqoicbt2TbTbtrUjpG6vb7/3o7RJCokGi4ojuMUKZMm2bEgv8QjEZTFi+MfP4GsTK+1a6FdOzj11H3PRysoU6ZYgcdwKyfZcEFxHKfIUIXXX4ejj4Yjjoj++kgtlHi7u0KEVsz/+9/7xz3q1zcXXaSCMnUqtG5tNbuSlSSeuuM4ycbkyZYyPHRowQLPtWrBd9/lfn7bNquvVRQWCsBll9mxR4/9z5UqZSXjIxGUXbvg55/hpptiO7+ixgXFcZwi48knoXp1uOKKgl1fu7atlN+zx1J1s7NkiR2LSlC6drVHbjRtapZHfsyebQUh27WL3dyKA3d5OY5TJPzvfzBmDFx//b6bQUVDKHX4jz9yPh9ag1JULq/8aNoUli2zygB5ERIdFxTHcZwIePppKFcO+ue4fDky8luLUlQpw5HStKnFjX79Ne9+U6daZlpoN8YiJSMDfvwR7ryz0EO5y8txnLizdi0MH261rkI1uQpCJIJSvTpUTZAt+MIzvVq0yL3flClmnRTZgsatW2H8ePjkE/jsMzP5YlB90gXFcZy488wzthPhLbcUbpxIBKWo4ieRcPTRJhLhgfnx4y2T67TT7PW6deaqu+aaOE8mLc2qVY4ZA19/bZkAVapA9+5w3nm2MjOa0gU54ILiOE5cefxx2w3wkkuy0mwLSn4Vhxcvjq4+WLypUMF2TgwJyvr1cNFFllCwdKktjJw2zc7FPH6iCjNnmhUyZoylkYH5A6+/3kSkY8ecsxsKiAuK4zhxITPTyrg/9RRcfLGtPyks5cvbj+qcBGXXLitdUtAMsngRXiTyscdgyxb7rh8yxFbXT51qKcaRbjSWJ3v2WF71hx/CRx/BqlU2eIcOtqT/vPNsQnHyrbmgOI4TU3btggkTbK3Jp5/CDTdYratSMUoBqlUrZ0FZutRELJFcXmDf3xMn2nf74MHwt7+ZpfL445agMHWqFcoM3y8+KnbuND/a6NFmiaSnWxrdWWfZApmzz4YaNWL6nnLDBaUIWbLEEirq17dfWo6TLOzYYeskDjkk9z67d9vCvBEjrFbXwQfbj+IBA2L7gzi0FXB2PvzQjomWetu0KWzfDtdeC3v3wn33WdykXTsrdT9tGvzlL1EOunkzjB1rIjJ2rK3orFLFLJALL7R9gQuam10IXFCKiPXrre7Prl32ulYt+M9/4MYbi3dejhMJ//ynFS+cNy93cXjqKdsT5PLLoXdv6NIlPnu6165tuz2Gk5EBL70EnTtbIDyRCGV6ffYZXHed7RF/5JFmOAwcaGIdkQiuXWsWyOjR8NVXpuC1atkH3rOnvfly5eL5VvJHVUvco3Xr1ppovPuuKqg+8IDqf/+r2ry5av36qpmZxT0zx8mfLl3s73fixJzPL1+uWrGi6gUXxH8ujz1mc5k0Kavts8+s7b334n//aFmzxuZWvrzqqlVZ7dOmWTuozpmTx8XPP6/aubNqqVLWuUED1VtuUZ08WXXv3pjOFZiuhfjujesXO/AvYD62b/y7QHmgITAV2+r3PaBc0DcleJ0anG8QNs4dQfsioFt+901EQbnyStWqVbP+/V9/3T79qVOLd16OEwmtWtnf65VX5nz+wgtVK1RQXbYs/nPZtk21Xj3Vtm1VMzKs7bzzVGvVUt21K/73j5bMTNVmzVTvu2//c+eco1qlSjZdWLtW9cUXTcVDItK0qepdd6nOnBnXX6EJKyhAPWApUCF4/T5wZXDsHbS9AFwXPL8eeCF43ht4L3jeDJgdCE5DYDFQOq97J5qgZGaq1q2r2qtXVlt6umrZsqoDBhTfvBwnUo44wr4tKlVS3bJl33Off27nHnqo6OYzfLjd8513zDoqVUr1zjuL7v7RkpmZsw6kp6suWKCq69ervvKK6plnqpYubW+ucWMTkTlzisyVkeiCshKohsVqPgW6AeuAMkGf9sC44Pk4oH3wvEzQTwLr5I6wcf/sl9ujMIKSman6ww8FvjxH5s61T/qVV/Zt795dtWFDd3s5iU/lyqonnmh/x8OGZbXv2KHaqJFqkyZFax1kZKi2bGlCd+utqiJFYx3FlA0bVF97zb4IypSxD/fII1XvuEP155+L5YuhsIISt1peqroKeAJYAawGNgEzgI2qujfolhYIT7gAEZzfBFQPb8/hmj8Rkb4iMl1Epq+NdM/NHBg61FK2Q2uAYsG4cXbs1m3f9osuslTHWN7LcWLNnj22duLccy3g/dpr1p6ZCVdfbYsJhwwp2nhwqVJWuXj5cnjiCQtwF2R/lSJn61Z46y3Lxjr0ULjqKli40EoITJ9uS/0feghatkzKjeXjJigiUhXogbmp6gKVgLPidT9VfUlV26hqm5o1axZ4nMsus3THBx+M/Jo1a2DOnNzPjxtnGV7ZC7/16GHlc0aOLNhcHaco2LDBjtWrw5VX2o6Lqalwxx3w7rvw8MOW0VXUnH66iRxY9lTCsmePLci57LKsrKzZsy3HeupUW0/w6KO2u1YSikg48aw2fAawVFXXquoeYDRwMlBFRELpyocBq4Lnq4D6AMH5Q4D14e05XBNzqlSxf+dRo2zv60i46SZL+8tpI53t223hanbrBOw/6OmnwwcfWK6H4yQi6el2rFbNVqGXKgW9etmq7+uus90Ki4vnn4dHHrE1fAmFquVZX3+9lRE+7zz7ZXnFFfaFsGyZmVZt2ya9iIQTT0FZAZwkIhVFRIAuwALgG+CioE8f4OPg+ZjgNcH5rwOf3higt4ikiEhDoDEwLY7z5p//hEqVzPLMj9274fPPbbHqlVdaPnw4331na09yEhQwt1dqKsydW+hpO05cCBeUevVszdysWWZhP/ts8X4f1q9vghaDQrmxYcECW2B25JFWJ2v4cDjjDFs/snq1+dRPOSV2ZQMSjHjGUKYCI4GZwNzgXi8B/wZuEZFULEbyanDJq0D1oP0W4PZgnPlYZtgC4Augv6pm+9qOLTVq2A+LESPy38dg4kTzL//tb2a9PvnkvufHjbNV8aeemvP1F1xgf1vu9nISlXBBAXMH33ADvPNOAn2RFydpaWZttGplNVQeecSCTa+/bv7wESPMQinuRYdFQWEi+on6iEXa8O+/20Kkq67Ku9+NN1q/bdssF79cOdX587POH3OMZQLmRadOlufvOIlIaM1UampxzySB2LpV9Y03bK2IiH1AbduqDhpkXx5JComa5ZXs1KoFffvCm2/mbqWoWmXoM86wsjlDh1pAv2dPuPRSOP98S+DIzd0VokkTKxznOIlIdgvlgCUz03zYV19t9V+uuMLSNO+5x/Y3njrVAqqF2UEsyXFByYPbbrMKoGedBb/9tv/5+fMttnbeefb60EPNZZqZCTNmWCnt006z0t15UbOm1frKzIz1O3CcwpOebnGSvApDlmiWLoX777cyxp06WRbNxRebuKSmWrXHxo2Le5YJgReHzIN69eCLL8wCOeMMi5eEZyR/8okdQ6mLAOecY49oqFnTgvkbNljml+MkEunptqVuCY0j58yWLRbYHD7chEPEcqP/+19zQVSqVNwzTEgOpD+RAtGunaWQL11q2S2hnHwwQWndGurWLdw9QlsVrFtXuHEcJx6kpx8g7q7MTNsa94orzKV19dWWmTVwoLkixo+37BsXk1xxQYmATp1sr4X5820V/S+/WCXpKVOy3F2FIWT1FGKBv+PEjRIvKGlpJhqNGpkV8vHHJhzffw+LFlka8OGHF/cskwJ3eUXIWWfZD5RevWwtUs+eFpSPhaCELBQXFCcRSU8vga7YPXtsY6qXX7aFZJmZtsr4wQftP3eFCsU9w6TEBSUKOnWyYPtf/gJvvGGurlatCj9uyEJxl5eTiKSnl6CY86+/wrBhFhv5/XdbxX777ebeatSouGeX9LigREn9+haju/de24ktFquE3UJxEpmkd3nt2GG7HL7yCnz7ra3GPOcc+Mc/oHt3KONfg7HCP8kCUL681XKLFRUqWJzPBcVJNDIyYOPGJBWU2bNNRN56y97EkUdaPaU+fQqfSePkiAtKglCzpru8nMRj0yaLFSaNoOzYYetEhg61rJly5cxH/Y9/2J7rB1Tuc9HjgpIg1KzpFoqTeCTNKvlff4UXXrDYSHq6lZ94+mkrFV/iMgoSFxeUBKFGDasj5ziJREILyp49VsV36FCYMMFiIT17Wk39zp1LVFn4ZMEFJUGoWTPy/Vccp6hISEFZudLSfV95xRYeHn64rSO5+mrL2nKKDReUBMFdXk4ikjCCkpkJX35p1sinn1pgp3t3eOklO3od/YTABSVBqFHD4onbtnllBydxKHZB2bjRNrEfMsQ2rz/0UNtR65proGHDYpqUkxsuKAlC+OJGFxQnUQgJStWqRXzjBQtsO8g33rB9tE8+2dxaF154YGxUlaS4oCQI4fW8jjiieOfiOCHS022PnyJZ+5eRYRVXn33WijSmpMBll8GNN8amJIUTd+KWlC0iTURkVthjs4jcLCL3iciqsPazw665Q0RSRWSRiHQLaz8raEsVkdvjNefixFfLO4lIkayST0+Hxx+30ic9e1oK8MMPW9HGYcNcTJKIuP3uUNVFQEsAESkNrAI+BK4CnlbVJ8L7i0gzoDfQHKgLfCUiRwenhwBdgTTgJxEZo6oL4jX34sDreTmJSFwFZc4cs0beftsCiJ07w1NP2VanXg4lKSmqf7UuwGJVXS6554b3AEao6i5gqYikAm2Dc6mqugRAREYEfUukoLiF4iQSMReUjAxbOzJokO1YV6GClYq/4QZo0SKGN3KKg6KqQ9AbeDfs9Q0iMkdEholIKNxXD1gZ1ictaMutfR9EpK+ITBeR6WuT8Fv5kEPsR1kSTt0pwcRMULZsgcGD4eijLbC+bJm5udLSLPXXxaREEHdBEZFywPnAB0HTUKAR5g5bDTwZi/uo6kuq2kZV29QM36c3SRCxOIq7vJxEotCCsmIFDBhgZbr/+U/bCXHkSEsBvvXWBFjg4sSSonB5dQdmquoagNARQEReBj4NXq4C6oddd1jQRh7tJQpf3OgkEqqFEJRp06yW1gfB78iLLoJ//cv21HZKLEXh8rqUMHeXiITXRugJzAuejwF6i0iKiDQEGgPTgJ+AxiLSMLB2egd9Sxw1arigOInDli0W8ohYUDIybN+Rjh1NOMaOhZtvNmtkxAgXkwOAuFooIlIJy866Nqz5MRFpCSiwLHROVeeLyPtYsH0v0F9VM4JxbgDGAaWBYapaIqte1awJs2YV9ywcx4h4lfyWLZbeO2gQLF1qK9ifecZqa1WuHPd5OolDXAVFVbcB1bO1XZ5H/weBB3NoHwuMjfkEEwx3eTmJRL6CsmKFBdpffhk2b7bV7E88AT16eG2tAxRP9k4gatSADRusKnfZssU9G+dAJ1dBmT7dhGPkSHvt8REnwAUlgQglp6WnQ61axTsXx9lHUFRh/Hjb+/rrr60ey7/+ZWVRDj+8WOfpJA4uKAlE+OJGFxSnuElPh9Lspe6kUXD5o/Dzz7bfyGOPwbXXmqg4ThguKAmE1/NyEoYdO2jw+XAW8QRVr1tiCxJfecVWtaekFPfsnATFBSWB8HpeTrGzcSM8/zwMGsRZf/zBT6Xa0uiDxz3Q7kSEC0oC4fW8nGJj1SpbiPjii7B1K3TrxqNyO8/N7cTKC31vdicyiqqWlxMB1YMEaxcUp8j45Rf4+99t7cjTT8N551ms5Isv+DGlM9Wqu5g4keMWSgJRtixUqeIuL6cImDLFMrY+/thiItdcA//3f3DkkX92KZK9UJwShQtKguGLG524oQpffGFCMnGi7ev7n/9Y6u+hh7J3L9wxwLYp2bQJZs+Gs8/Of1jHCeGCkmB4PS8n5uzdC++/b+m+s2dDvXrw5JNmlYSVRnnpJVuv2Lq1uV/PPdeygx0nUlxQEoyaNW2rCMcpNNu3W42tJ5+0P6pjjoHXXrN92suV26fr+vVw111w2mkwYYJtp+A40eJB+QTDXYu6tOEAACAASURBVF5OoUlPhwcegCOOMHdWnTrw0Ucwbx5ceeV+YgJwzz1WjmvQIBcTp+C4hZJghDbZUvX/2E6UrFxpe7K//DJs2wbnnAP//reVk8/jj2n2bHjhBbj+ejjuuCKcr1PicAslwTj6aCsOOXNmcc/ESRoWLDDL48gj4dlnoWdPi6x/+imcckqeYqJqGylWrQr33190U3ZKJi4oCUbPnuaRePvt4p6Jk/D88AOcfz40b25B9+uvt82s3nwzYlPjvfcs4WvgQE8RdgqPC0qCUbWqeSrefdeScxxnHzIzsyyPk0+G77+He++1vUkGDbK4SYRs2mQFg1u3toQvxykscRMUEWkiIrPCHptF5GYRqSYi40Xk1+BYNegvIjJYRFJFZI6InBA2Vp+g/68i0idec04U/vY3+P13qxLuOID5Qd98E44/3lazL19uArJiBdx3X1Zl0Si4915YswaGDvUyXU5siJugqOoiVW2pqi2B1sB24EPgdmCCqjYGJgSvAbpj+8g3BvoCQwFEpBpwL9AOaAvcGxKhksrZZ9uK+bfeyvn8tm1WJcO3Cz4A2L7d4iJHHQVXXGFtb7xhrq2bboJKlQo07KxZNmy/fnDiiTGcr3NAU1Qury7AYlVdDvQAXg/aXwcuCJ73AN5QYwpQRUTqAN2A8aqarqobgPHAWUU072KhfHno1QtGjzbxCOfjj6FZM7jlFvtl6ZRQNmywwMYRR5hw1K8Pn3xiwfbLLy/Ulp6ZmRZuqV4dHtxvw23HKThFJSi9gXeD57VUdXXw/HcgtJVUPWBl2DVpQVtu7SWav/3NxOTjj+31smUWf73gAtvX6JBDYNeuYp2iEw9++w0GDLBdEO++27bVnTQJJk+2pesFzCVXNavkwQehfXv48UdbFV+1RNv6TlET93UoIlIOOB+4I/s5VVUR0Rjdpy/mKuPwErAlaceO9qP0tdfMXf7AA1CqFDz+uKV5Nm8Ou3cX9yydmPHrr1Ya5Y03LBujd29bQ9KiRaGHVjWjJpQ52KaNicnllxd6aMfZh6JY2NgdmKmqa4LXa0SkjqquDlxafwTtq4D6YdcdFrStAjpna/82+01U9SXgJYA2bdrERKSKk1Kl4K9/hUcega++ggsvhGeeMZEBSy12C6UEMHOm/SOPHGn/qH//O9x66z5VfwvL44+bmNx2m2V11a4ds6EdZx+KwuV1KVnuLoAxQChTqw/wcVj7FUG210nApsA1Ng44U0SqBsH4M4O2Es9115mb67PPYNSoLDEB++5xCyVJUYVvvoFu3Sxnd9w4s0aWL7fdEmMoJl9+CXfcARdfbLrlYuLEk7haKCJSCegKhNcsfQR4X0T+DiwHLg7axwJnA6lYRthVAKqaLiIPAD8F/f6rqunxnHeicPjhWTGU7KSkuKAkHZmZMGaMfbNPnQqHHgoPP2y/HA45JOa3W7zYPGfNm1uNSC/l48SbuAqKqm4DqmdrW49lfWXvq0D/XMYZBgyLxxyTFbdQkog9e+Cdd2wfkoULbXfEoUOhTx+oUCFut+3Xz44ffVTg7GLHiQovDpmklCu3f0qxk2Bs2wavvmoR8JUrLcD+zjuWE14mvv/19u61RfT9+sXUg+Y4eeKCkqSUK2dLFZwEZNs2i4U8/rjtRdCxo5Xz7d69yPxOCxfCjh0WonGcosIFJUnxGEoCsnUrDBliFsm6ddC1q2000rFjkU9l+nQ7tmlT5Ld2DmBcUJIUj6EkEFu2wHPP2c6I69db9ta999oKwmJixgzb3bdx42KbgnMA4oKSpPg6lARg8+YsIUlPN5fWPffASScV98yYMQNatbL1TI5TVPifW5LiFkoxsmWL1TBp0AD+8x8TkKlTYezYhBCTvXutzIrHT5yixgUlSfEYSvwZP96WjGio7sLu3Vait1EjuOsu249k2jRbedq2bbHONZwFC2DnTo+fOEWPu7ySFLdQYscrr0DnzlYhPoQq3HgjLFoEO7Zlcv8xI6xY45Il1vmRR6xwYwIyY4Yd3UJxihoXlCTFYyixYdMm263w3HOtOnyIadNg0SLl74d9yQUDbwdm2eZWn39uQfcEXnbuAXmnuHCXV5ISslA06ctgFi+LF9vxs8+yngN88+g0vinVhVfSzqJO+Y1cLm8x7uGZcNZZCS0mYCnDHpB3igP/k0tSUlJMTDIyinsmyU1IRFRtCQn/+x8ZF/bi9g/b0arsPBg0iIorfmFui79yce9SbN9edHMbOxbefz+6a/buhdmzPX7iFA8uKElKuXJ29DhK4QgJyuVdfuO4IdeizZqhYz/nPu5l+gjbZvfgmincdZdlCf/yS9HMa+dO2/H3kktg8ODIrwsF5D1+4hQHLihJSkhQPI5SOFbPT+eZinfy2uSj+Ovu15jX8TquPGUxr9S7j87nVf6zX9Omdly0qGjmNXq0rZFs2dI2VHv22ciu84C8U5xEFJQXkaOBodj2vceKSAvgfFUdGNfZObniFkoh2bwZnnmGB999koMyNqOXXsqFcx9g7opGrFhhe1yVLp3V/aijLHRSVILy4otW1HHKFLj0UttWvnRp2ws+L6ZP94C8U3xEaqG8jG3huwdAVedg+8Q7xURKih1dUKJk2zYrI9+wIdx7L5PLdeGOc+Yg77zDXwY0YulSi0v16bPvZeXL2zrGohCUhQvhu++gb1/7dx4xwhLLbrklf4vUV8g7xUmkf3YVVXVatra9sZ6MEzluoUTJzp22h/KRR8Ltt0O7duz+/ifO3jmalDbHARavOPRQW6N4zDH7D9GkSdEIyksvQdmycNVV9rpcOROXXbvg559zv273bgvIu7vLKS4iFZR1ItIIUAARuQhYHbdZOfniMZQI2b3bNrNq1Mg2VD/2WNsoZOxYllZvg6qdArMGvv4a3nsv56GaNIH//S/2qdrz5mXtbbNjB7z+OvTsaeIWIlTRZcqU3Mf56SfTzWIobuw4QOSC0h94EWgqIquAm4Hr8rtIRKqIyEgR+UVEFopIexG5T0RWicis4HF2WP87RCRVRBaJSLew9rOCtlQRuT3K91gicQslHzIy7Jv56KMt8NCgAUyYYI8OHQBITbWuIUEB2y63QYOch2zSxL74V62K3TTT0my95JFHWo3JN96wfW6uvXbffnXr2pbQeQnKd9/Z8dRTYzc/x4mGiILyqroEOCPYI76Uqm6JcPxBwBeqepGIlAMqAt2Ap1X1ifCOItIMi8s0B+oCXwXJAABDsL3p04CfRGSMqi6IcA4lEo+h5MGXX8Jtt2X5f154IcfV7aGU4XBByYsmTey4aBEcdlhspvrLL7bVfM2alggAFlA/7bT9+550Evz4Y+5jTZxoglijRmzm5jjREpGFIiIPiUgVVd2mqltEpKqI5JnhJSKHAKcCrwKo6m5V3ZjHJT2AEaq6S1WXAqlA2+CRqqpLVHU3MCLoe0DjFkoO/P47nH++icfmzfDuu1ZDJZfV7YsX217r4a6lvIhH6vCSJXYcOxYmTTJX10MP5bwYv317WLECfvtt/3OhLX87dYrd3BwnWiJ1eXUPFwNV3QCcnUd/gIbAWuA1EflZRF4JLByAG0RkjogME5GqQVs9YGXY9WlBW27t+yAifUVkuohMX7t2bYRvK3nxGEo2PvoIjjvOSgQ//rilSvXunWe60+LFZp1EWkmlTh046KDYLm5cssT+LevVs9jH6NFw0UU59w3FUaZO3f/czJm2YaS7u5ziJFJBKS0iKaEXIlIBSMmjP5g77QRgqKq2ArYBt2PrWRoBLbHA/pPRTjonVPUlVW2jqm1q1qwZiyETGrdQAvbuhX797Kd9/fr2zXrrrVk+wTwICUqkiMQ+02vJEovZhK95yY1WrezfPSe318SJdnQLxSlOIhWUt4EJIvJ3Efk7MB54PZ9r0oA0VQ39nhoJnKCqa1Q1Q1UzsfUtoY0kVgH1w64/LGjLrf2AxmMoWOD96qttFeCAARaxzinfNwcyM2Hp0n1L1kdCrAVl8WILyEdCSgqccELOgfnvvrP8g9q1Yzc3x4mWiARFVR8FHgSOCR4PqOpj+VzzO7BSRIJQJl2ABSJSJ6xbT2Be8HwM0FtEUkSkIdAYmAb8BDQWkYZBYL930PeA5oC3UDIzbXHGm2/CwIHw2GNZH0oErFpl7sJoLBQwQVmxwtJ7Y8GSJZELCpjba/p02LMnqy0jw+Ivbp04xU3E+6Go6ufA51GOfyPwdiAES4CrgMEi0hJb07IMuDYYf76IvA8swBZN9lfVDAARuQEYB5QGhqnq/CjnUeI4oGMoqtC/PwwbZnu4/+c/UQ8RbYZXiCZN7Pa//gotWkR9233YsAE2boxOUNq3t/WZc+ZkLWCcM8f2dXFBcYqbPAVFRCarakcR2UKwqDF0ClBVPTiv61V1FpC9kPblefR/ELOEsrePBcbmda8DjQPaQnnzTUsFvu02uO++Ag1RGEEBc3sVVlBCGV7RzCF8gWNIUELxEw/IO8VNni4vVe0YHCur6sFhj8r5iYkTXw7YGMratVbUqkMHePjhAm92tXgxlCljcfxoCBVdzCmOsnevZShHqnEhQYnGQqlf37LNwuMoEydaabJo34vjxJp8YygiUlpEimgXCCdSDlgL5V//sjUmL78cVQXEUIwhZJmkplp2VZkoN8GuVMlWrOckKIMHw7hx8MAD5obKj9BcGjaM/P4i5vb68UdzvW3c6PETJ3HI939kEMdYJCKHF8F8nAg5IGMon38Ob78Nd94JzZpFfFlGhoVcvvvOLIi1a6NPGQ4np0yvlSstnHP66VCliu1hkl/NryVLbIV85cp598vOSSfZ/MuWhapVbd+UnFbWO05RE+nvs6rAfBGZhq0nAUBVz4/LrJx8OeAslK1b4brrLC34jjuiuvStt2DuXMssfvZZOOccs1BC8YhoadLEyoSpZnncbr7ZEs9eecV0r39/GDUq90WKYIJSEFG7/HJYvRoqVoRq1SxVOK/7OE5REamg3B3XWThRU7asHQ8YQXnhBVi+3MyMCBYthti5E+6+2/ZYf+QROPlkuPBC+/IvjIWyZYuJUuPGVjZl9GgrmdKwoWUzv/CCra885xyoUCHncZYsMfdVtNSuDU89VbC5O048ydPlJSLlReRmoBfQFPheVSeGHkUyQydHRMxKOSAEZe9eeO45CxScckqeXT/9FIYMge3b7fVzz5k76rHHLOTSowc8/7ydK2iW1rHH2vHoo829dcklZjj93/9Ze5kyFk9ZvtzcYJmZ+4+xZ4+tZ4kmIO84iU5+MZTXsbTfuUB3YlQmxYkN5coldgwlI8P8+4Xmk0/s2/mmm/LspmqV6m+4wayPxx83q6F7931jDNdeawsbu3Qp2HROPRU++8zKzV9+OXTtCsOH77uusnNnO/fEE2YdffXVvmOsWGGfjwuKU6JQ1VwfwNyw52WAmXn1T5RH69at9UCgWjXV/v2Lexa58+yzqhUqqP7vf4UcqFMn1SOOUN2zJ89u//ufKqj266d62mn2XER19uxC3r+AZGSovv22aoMGNpeePa1NVfXLL63t22+LZ26OkxPAdC3Ed29+FsqfBR5U1bf8TTBSUhLb5TVunJUoue22Qgwye7YttOjfP98c35AVcMsttvPit99abKOwCxALSqlScNllVp34zjvhww/hiy/sXEEWNTpOopOfoBwvIpuDxxagRei5iGwuigk6uZPIMZTMTNuf45BDrLL8t98WcKBnn7V0pn/8I9+uEybY4r5QwcdOneCCCwp43xiSkmKLHevWhUGDrC1Utr5u3WKdmuPElPxWypfWfVfHl1FfKZ8wJHIMZf58q1X16KP2JX/LLRYziIp162zdyeWX24KLPMjMhG++sbhIARfPx5WyZc3I+vJL+2yWLLGMsCjWZjpOwuN/zklMIlsokybZsWtXS9f9+WfbLz0qXnvN8n7zCcYDzJoF6elwxhnRz7Wo6NsXype3DLBoytY7TrLggpLEJHIMZdIkc+c0bAiXXgrt2lkcYd26KAb54AM48cSIVsWH4ienn16w+RYFNWqYsfXGG/C//3n8xCl5uKAkMYlqoaiaoJxyirmfROxXeXq6Vcj96acIBklLs449e0Z0zwkTTHfq1Mm/b3Fy001mdG3b5haKU/JwQUliEjWGsmyZrfMIX4PYti1MnmzPO3aEl17Kp9bVxx/bMQJB2bXLBKyg60qKkmOPzXLLuaA4JQ0XlCQmUS2UUPwk+6L2E0+0Ld9PO80WF77/fh6DfPghNG1qj3z48UdLT07k+Ek4t99uVYtbtizumThObHFBSWISNYYyebKVJAmVKAmnenVbZV69umU85Uh6uuUZR+HuKlUqeUq4d+liFfiPOKK4Z+I4sSWugiIiVURkpIj8IiILRaS9iFQTkfEi8mtwrBr0FREZLCKpIjJHRE4IG6dP0P9XEekTzzknE4lsoZx8cu4psaVLmwts2rRcBvj0U8sxjnARyYQJZv0cckjB5lsceLqwUxKJ95/1IOALVW0KHA8sBG4HJqhqY2BC8BqsVljj4NEXGAogItWAe4F2QFvg3pAIHegkYgxl7VpbGZ5PDUfatbP1GFu25HDyo4+gXj0rgpUP69bB1KmWnuw4TvESN0ERkUOAU4FXAVR1t6puBHpgRScJjqGfoT2AN4KSMlOAKiJSB+gGjFfVdFXdAIwHzorXvJOJRLRQQoH3/ASlbVsLys+Yke3E9u1Wn+SCCyL6Gf/JJ7aoMULvmOM4cSSeFkpDYC3wmoj8LCKviEgloJaqrg76/A7UCp7XA1aGXZ8WtOXWvg8i0ldEpovI9LVr18b4rSQmiRhDmTzZFu/lZ1y0bWvHqVOznfjyS4uwR6gQo0dbLKJVq+jn6jhObImnoJQBTgCGqmorbKfH28M7BNUt89koNTJU9SVVbaOqbWrWrBmLIROeRLRQFi609SDhpdxzonp1W9i3Xxzlww+tzMqpp+Z7ry1bTH969kzMciuOc6ART0FJA9JUNfQbdCQmMGsCVxbB8Y/g/Cqgftj1hwVtubUf8CRiDGX58sizl9q1y8FCadfOCn+FtqTMg7FjTVAvvDD6eTqOE3viJiiq+juwUkSaBE1dgAXAGCCUqdUHCFawMQa4Isj2OgnYFLjGxgFnikjVIBh/ZtB2wJNoFoqqbRx1+OGR9W/XzhZArgr/eXD99XDXXRFdP3o0HHoodOgQ/Vwdx4k9ke4pX1BuBN4WkXLAEuAqTMTeF5G/A8uBi4O+Y4GzgVRge9AXVU0XkQeAUMGO/6pqepznnRSEYiiqieHy2bgRtm6NXFBCcZRp06IPqu/caRbKpZdaGrLjOMVPXAVFVWdhWwhnZ78iGUE8pX8u4wwDhsV2dslPuXImJhkZ+e49VSSsWGHHSAWlZUvzbE2dGr2gfPWViZe7uxwncfDlVUlMKPCdKHGUaAWlfHk4/vg8FjjmwejRcPDBiV1d2HEONBLgd61TUEKCsnu31YYqbkKCEk1JkXbt4PXXzcrKz3W1dKntI7JihdWOPO+8/LPJHMcpOlxQkpiUFDsmSmB++XKbUzRZ2+3awZAhtrq+efPc+02YsG/xxzJloI8X4XGchMJdXklMuIUSDyZNshLrw4fnU2o+YMUK2+43mjpVuS5wzMbcuXb87DPbPnfbNi+34jiJhgtKEhPvGMpPP5mb6aqroEcPWL067/7RpAyHaNzYKhN//33e/ZYvh4oVoXt32wXSXV2Ok3i4oCQx8bZQNm60dOSnnoLx480lddNNMHGixTyyUxBBKVUKzjzTLI/MzNz7hRZMJkJ6tOM4OeOCksTEO4ayaZNlUv3rXzBrlm2M9fLL0LmzbbX7ww9Zfffsgd9+i15QwKyfNWvydntFswLfcZziwQUliSkKCyW0x0iTJjBqlJWn/+ADu+err2b1XbXK4iwFEZSzz7Yge2jX35xwQXGcxMcFJYmJdwxl0yaLb4Rz0EFw0UVW7iR8/cjy5XYsyJd+lSpm/Xz0Uc7nt22D9etdUBwn0XFBSWKK0kLJTvYNsqJd1JidCy6ARYssfTg7hRErx3GKDheUJKYoYijZLZQQoQ2yZs601yFBqV8/5/75cf75dszJSnFBcZzkwAUliSkKCyU3QTnxRDuG3F4rVtiCxgoVCnavww6zTblyiqO4oDhOcuCCksQURQwlN5dXjRq26DFcUArq7gpxwQUwZcr+612WL7egfZ06hRvfcZz44oKSxMTTQlHN2+UF5vYKCcry5YUXlB497DhmzL7ty5ebK83L1DtOYuOCksTEM4aydastNMzNQgETlBUr4Pff7VhYl1Tz5rYtcHa3l6cMO05y4IKSxMTTQtm40Y75WSgA48ZZam9hLRQR6NYNJk/edyW+C4rjJAdxFRQRWSYic0VklohMD9ruE5FVQdssETk7rP8dIpIqIotEpFtY+1lBW6qI3B7POScT8YyhhAQlLwulVStzQ40caa8LKyhg61u2bIF58+z17t22At8FxXESn6IoX3+aqq7L1va0qj4R3iAizYDeQHOgLvCViBwdnB4CdAXSgJ9EZIyqLojzvBOeeFoomzbZMS8LpWJFOO44+PJLex0rQQEr63L88ZCWZvEcFxTHSXwSyeXVAxihqrtUdSm2t3zb4JGqqktUdTcwIuh7wBPPGEokFgqY2yt0/1gISoMGULt2Vp0wTxl2nOQh3oKiwJciMkNE+oa13yAic0RkmIhUDdrqASvD+qQFbbm1H/CE9pEvLgsFsuIo0W6slRsiZqW4oDhO8hFvQemoqicA3YH+InIqMBRoBLQEVgNPxuJGItJXRKaLyPS1a9fGYsiER8TcXsUVQ4EsQTn88Og21sqLDh1sE63ff88SlIKuwHccp+iIq6Co6qrg+AfwIdBWVdeoaoaqZgIvYy4tgFVA+NfGYUFbbu3Z7/WSqrZR1TY1Y/FTOUkoVy6+Fkp+gtKsme1nHwt3V4hQHOXHH01Q6tTJcu85jpO4xE1QRKSSiFQOPQfOBOaJSPh6555AkM/DGKC3iKSISEOgMTAN+AloLCINRaQcFrjPtvTtwCUlJX4xlJQUKF8+736lS8Odd9qujrHihBNMKH/4wVOGHSeZiGeWVy3gQ7Et9soA76jqFyLypoi0xOIry4BrAVR1voi8DywA9gL9VTUDQERuAMYBpYFhqjo/jvNOKuJpoeQXPwlx552xvXdKitX1+uEH23irTZvYju84TnyIm6Co6hLg+BzaL8/jmgeBB3NoHwuMjekESwjxjKFEKijxoEMHGDzYnv/lL8U3D8dxIieR0oadAhAvCyWvvVCKgg4d7H3t3u0uL8dJFlxQkpx4xVCicXnFg/bts567oDhOcuCCkuSUVAuldm0rjw8uKI6TLLigJDnxiqEUt4UCWenDLiiOkxwURS0vJ46UVAsF4MYboWFDqFy5eOfhOE5kuKAkOSkptndJLNm1C3buLH4LpW3brJX4juMkPu7ySnLiYaFEukrecRwnHBeUJCceMZRIC0M6juOE44KS5MTDQom0MKTjOE44LihJTjzWobiF4jhOQXBBSXLiaaG4oDiOEw0uKElOPGIo7vJyHKcguKAkOfHM8nILxXGcaHBBSXLiEUPZuNF2gzzooNiO6zhOycYFJckJWSiqsRtz0yZzd8VqS1/HcQ4M/CsjySlXzsQkIyN2YyZC2RXHcZIPL72S5JQrZ8ddu6BMjP41E6EwpFN87Nmzh7S0NHbu3FncU3HiRPny5TnssMMoW7ZsTMeNq6CIyDJgC5AB7FXVNiJSDXgPaIBtAXyxqm4Q2yt4EHA2sB24UlVnBuP0Ae4Khh2oqq/Hc97JREqKHXfvhkqVYjOmWygHNmlpaVSuXJkGDRoQbOHtlCBUlfXr15OWlkbDhg1jOnZRuLxOU9WWqhraGfx2YIKqNgYmBK8BugONg0dfYChAIED3Au2AtsC9IlK1COadFIQslFgG5t1CObDZuXMn1atXdzEpoYgI1atXj4sFWhwxlB5AyMJ4HbggrP0NNaYAVUSkDtANGK+q6aq6ARgPnFXUk05UsgvK0qUwcmThxnQLxXExKdnE69833oKiwJciMkNE+gZttVR1dfD8d6BW8LwesDLs2rSgLbf2fRCRviIyXUSmr127NpbvIaEJj6EAPPMMXHwxbNtW8DE3bnQLxXGc6Im3oHRU1RMwd1Z/ETk1/KSqKiY6hUZVX1LVNqrapmbNmrEYMikIj6EALFtmWV9z5xZsvMxM2LzZLRSneCldujQtW7bk2GOP5bzzzmNjqHxDlAwfPpwbbrghx/aaNWvSsmVLmjVrxssvv5zj9WPGjOGRRx4p0L0PROIqKKq6Kjj+AXyIxUDWBK4sguMfQfdVQP2wyw8L2nJrd9jf5bV8uR1nzy7YeFu2mCC5heIUJxUqVGDWrFnMmzePatWqMWTIkJjf45JLLmHWrFl8++233HnnnaxZs2af83v37uX888/n9ttvz2UEJztxy/ISkUpAKVXdEjw/E/gvMAboAzwSHD8OLhkD3CAiI7AA/CZVXS0i44CHwgLxZwJ3xGveyUZugjJrVsHG87IrTjg331zwv6XcaNnSXLOR0r59e+bMmQPA4sWL6d+/P2vXrqVixYq8/PLLNG3alE8++YSBAweye/duqlevzttvv02tWrXyGdk49NBDadSoEcuXL+ff//435cuX5+eff+bkk0+mRYsWTJ8+neeee441a9bQr18/lixZAsDQoUPp0KEDb731FoMHD2b37t20a9eO559/ntKlS0f9uZQE4mmh1AImi8hsYBrwmap+gQlJVxH5FTgjeA0wFlgCpAIvA9cDqGo68ADwU/D4b9DmsG8MZfPmrMKOBbVQvDCkk0hkZGQwYcIEzj//fAD69u3Ls88+y4wZM3jiiSe4/vrrAejYsSNTpkzh559/pnfv3jz22GMR32PJkiUsWbKEo446CrC06R9++IGnnnpqn3433XQTnTp1Yvbs2cycpq8bQwAAEF5JREFUOZPmzZuzcOFC3nvvPb7//ntmzZpF6dKlefvtt2P07pOPuFkoqroEOD6H9vVAlxzaFeify1jDgGGxnmNJIDyGsmKFPa9dG+bMsXhItOVT3EJxwonGkoglO3bsoGXLlqxatYpjjjmGrl27snXrVn744Qd69er1Z79dQTZKWloal1xyCatXr2b37t0Rra947733mDx5MikpKbz44otUq1YNgF69euVoYXz99de88cYbgMV4DjnkEN58801mzJjBiSee+Oe8Dz300EK//2TFV8onOeEur5C767zz4OWXYfFiaNw4uvHcQnESgVAMZfv27XTr1o0hQ4Zw5ZVXUqVKFWbl4IO78cYbueWWWzj//PP59ttvue+++/K9xyWXXMJzzz23X3ulKFYIqyp9+vTh4YcfjviakozX8kpychKUwDtQIN+3WyhOIlGxYkUGDx7Mk08+ScWKFWnYsCEffPABYF/mswPf7qZNm6hXz1YTvP56fAppdOnShaFDhwLmitu0aRNdunRh5MiR/PGH5Ralp6ezPPQf8QDEBSXJCY+hLF9ur7t0gdKl942j7N4NAwfCunV5j+cWipNotGrVihYtWvDuu+/y9ttv8+qrr3L88cfTvHlzPv7Ycnruu+8+evXqRevWralRo0Zc5jFo0CC++eYbjjvuOFq3bs2CBQto1qwZAwcO5Mwzz6RFixZ07dqV1atX5z9YCUU0lnXPE4Q2bdro9OnTi3saRUJqqrm13nwTPv0Upk+3tmOPhYYN4ZNPrN+IEXDppTB4MNx4Y+7jPfgg3HUX7NyZFZ9xDiwWLlzIMcccU9zTcOJMTv/OIjIjrExW1LiFkuSEu7xWrIAjjrDXLVvu6/IaFqQ05Lfgcf16KF/excRxnOhxQUlyssdQDj/cXh9/PKSlmUAsXw5ffWXtQTr/fuzcCXfcYRZMixbxn7fjOCUPF5QkJyQoW7bA6tVZFsrxQcL27NkwfLg9v+ACs1AyM/cdY8YMs2geeQT69IEvviiSqTuOU8JwQUlyQq6pxYutZEp2Qfn5Z3jtNTjjDEsn3r4dgoW+f3LVVSZI48bBq69CVd8cwHGcAuCCkuSELJRff7VjSFBq1bIFjs8/by6vq6/OcmWFu73S081q6d8fzjyz6ObtOE7JwwUlyQlt+5uaasdQDAXMSlmyxNaUXHABNGtmK+fDA/M//GDHjh2LZr6O45RcXFCSHBGzUlYGO8bUD6vL3LKlHf/6V8vcqljRUozDLZTJk6FsWQgqRzhOQhBt+forr7ySkcHOcp07dya0bODss88ucOn7cJYtW0aFChX+LHffr18/MrMHI6Mgmjl+9NFHLFiw4M/X99xzD1+FsmwSDBeUEkBKisVP6tTZN9335JNtgeM112S1HXfc/oLSpg1UqFB083Wc/IhV+fqxY8dSJUZlHxo1asSsWbOYM2cOCxYs4KOPPtrn/N69ews0bn5zzC4o//3vfznjjDMKdK9447W8SgChOEoofhLi3HPNcqlTJ6utRQsYNQq2bjV32U8/wT//WXRzdZKMBKhfH16+ftasWfTr14/t27fTqFEjhg0bRtU8skgaNGjA9OnT2bp1K927d6djx4788MMP1KtXj48//pgKFSrw008/8fe//51SpUrRtWtXPv/8c+bNm5frmGXKlKFDhw6kpqYyfPhwRo8ezdatW8nIyGDs2LHceOONzJs3jz179nDffffRo0cPduzYwVVXXcXs2bNp2rQpO3bs2G+ONWrU4I033uCJJ55ARGjRogXXXXcdY8aMYeLEiQwcOJBRo0bxwAMPcO6553LRRRcxYcIEbr31Vvbu3cuJJ57I0KFDSUlJoUGDBvTp04dPPvmEPXv28MEHH9C0adOIP/OC4hZKCSA3QRHZV0zABEUV5s83Mdm9G045pWjm6TjRkr18/RVXXMGjjz7KnDlzOO6447j//vsjHuvXX3+lf//+zJ8/nypVqjBq1CgArrrqKl588cU/y8/nx/bt25kwYQLHHXccADNnzmTkyJFMnDiRBx98kNNPP51p06bxzTffMGDAALZt28bQoUOpWLEiCxcu5P7772fGjBn7jTt//nwGDhzI119/zezZsxk0aBAdOnTg/PPP5/HHH2fWrFk0atToz/47d+7kyiuv5L333mPu3Lns3bv3z1pjADVq1GDmzJlcd911PPHEExF/ToXBLZQSQEhQwgPyuRGe6RWq69WhQ3zm5ZQAiql+fU7l6zdt2sTGjRvp1KkTAH369NmnlH1+NGzYkJZBYLF169YsW7aMjRs3smXLFtq3bw/AZZddxqeffprj9YsXL6Zly5aICD169KB79+4MHz6crl27/ln6/ssvv2TMmDF/foHv3LmTFStW8N1333HTTTcB0KJFC1rksHr466+/plevXn/WIguNmRuLFi2iYcOGHH300X9+HkOGDOHmm28G4MILL/zzvY4ePTriz6kwuKCUAEJxk+wWSk4ccQRUrmyCsmSJZX5Vrx7f+TlOtORUvr5Pnz6FGjMlLMBYunTpfdxOkRCKoWQnvNy9qjJq1CiaNGlS8InGiND7LV26dIHjO9HiLq8SQG4ur5woVcoC87Nmwfffe7qwk9iEl6+vVKkSVatWZdKkSQC8+eabf1orBaVKlSpUrlyZqVOnAjBixIhCjdetWzeeffZZQkV3f/75ZwBOPfVU3nnnHQDmzZv3Z0wonNNPP50PPviA9evXA1YKH6By5cps2bJlv/5NmjRh2bJlpAZrBmLxeRSWuAuKiJQWkZ9F5NPg9XARWSois4JHy6BdRGSwiKSKyBwROSFsjD4i8mvwKNzPlBJINIIC5vb6/nvb+8QFxUl0wsvXv/766wwYMIAWLVowa9Ys7rnnnkKP/+qrr3LNNdfQsmVLtm3bxiGF2Lvh7rvvZs+ePbRo0YLmzZtz9913A3DdddexdetWjjnmGO655x5at26937XNmzfnP//5D506deL444/nlltuAaB37948/vjjtGrVisWLF//Zv3z58rz22mv06tWL4447jlKlStGvX78Czz0WxL18vYjcArQBDlbVc0VkOPCpqo7M1u9s4EbgbKAdMEhV24lINWB6MIYCM4DWqroht3seSOXrAdq3hylTTCAOPjj//kOHQrAVN0uXQoMGcZ2ek2QcaOXrt27dykEHHQTAI488wurVqxk0aFAxzyr+JF35ehE5DDgHeCWC7j3g/9u7+xC5rjKO49+feemYqglZl1J3LYkaUmJEa6MkGmSpoq0tVSS4isFSlPyjWINBsxK0Kg2tFF/wpRBsaqSlVWLRQDRlqVH3H0OtjaRtLJRq2w1Js25stVbSlDz+cc6Y2W0m2bj37s3e+/vAsjt37t48J2d2Hu45Z87DTyL5A7BI0sXAB4DhiDiWk8gwcGVpQc9CF1yQCmJNJZnAqYn5vr6p39WY1dXu3bv/9yHKkZERtmzZUnVIs1bZk/LfAb4IvHrS8ZskfQW4H9gcEceBPuDpjnNG87FuxyeQtAHYAHDJVJY71ciCBamY1lStXJm+r12blhabNdng4CCDg4NVh1ELpd2hSLoGOBoRkxdcDwGXAu8AFgNfKuLfi4htEbEqIlb19vYWcclZ4+abYdu2qZ+/cCFs3QobN5YXk81udazkaqeU1b9l3qG8G7g2z420gNdIujMi1ufnj0u6A9iUHx8COnaioj8fOwQMTDr+2xLjnnX+n4JYQ0PFx2H10Gq1GB8fp6enB/kWtnYigvHxcVqtVuHXLi2hRMQQ6W4ESQPApohYL+niiDis9Er9MNDe42AX8FlJ95Am5Z/L590HbJXU3l/h/e3rmlnx+vv7GR0dZWxsrOpQrCStVov+/v7Cr1vFBxvvktQLCNgPtNe5/Yq0wutx4AXgeoCIOCbpG8AD+byvR8SxmQ3ZrDnmzZvH0nOZlDPLSl82XIWmLRs2MyvCeb1s2MzMmsMJxczMClHLIS9JY8CT07jEa4G/FxTObOT2u/1NbX+T2w6wPCImf25wymq523BETOuDKJL+OJ1xxNnO7Xf7m9r+JrcdUvun8/se8jIzs0I4oZiZWSGcUE7vHDYyqSW3v9ma3P4mtx2m2f5aTsqbmdnM8x2KmZkVwgnFzMwK4YQyiaQrJT2WSxFvrjqeskl6vaS9kh6V9IikG/LxxZKGc9nl4Y7NOWvnNGWql0ral18DP5U0v+oYyyJpkaSdkv4i6aCkNQ3r+435df+wpLslterc/5K2Szoq6eGOY6ft7zOVZe/GCaWDpDnAD4CrgBXAxyWtqDaq0r0EfCEiVgCrgc/kNm8G7o+IZeRCaBXGWLYbgIMdj28Bvh0RbwL+AXyqkqhmxneBPRFxKfBW0v9DI/peUh/wOWBVRKwE5gAfo979/2NeXvG2W39fBSzLXxuA2852cSeUid4JPB4RT0TEi8A9pNLEtRURhyPiT/nnf5HeUPpI7d6RT9tBKjVQO5PLVOeyClcAO/MpdW77QuA9wO0AEfFiRDxLQ/o+mwu8UtJcYAFwmBr3f0T8Hpi8W3u3/u5Wlr0rJ5SJplRuuK4kLQEuA/YBF0XE4fzUEeCiisIqW7tM9cn8uAd4NiJeyo/r/BpYCowBd+Qhvx9JupCG9H1EHAJuBZ4iJZLngAdpTv+3devvc34/dEIxACS9Cvg58PmI+Gfnc5HWltduffkZylQ3xVzg7cBtEXEZ8G8mDW/Vte8B8lzBh0iJ9XXAhbx8OKhRptvfTigTdStDXGuS5pGSyV0RcW8+/Ez79jZ/P1pVfCVql6n+G2l48wrSnMKiPAQC9X4NjAKjEbEvP95JSjBN6HuA9wF/jYixiDgB3Et6TTSl/9u69fc5vx86oUz0ALAsr/KYT5qg21VxTKXKcwa3Awcj4lsdT+0Crss/Xwf8cqZjK1tEDEVEf0QsIfX1byLiE8BeYF0+rZZtB4iII8DTkpbnQ+8FHqUBfZ89BayWtCD/HbTb34j+79Ctv3cBn8yrvVaTy7Kf6UL+pPwkkj5IGlefA2yPiJsqDqlUktYCI8ABTs0jfJk0j/Iz4BJSKYCP1rn0sqQBYFNEXCPpDaQ7lsXAQ8D6iDheZXxlkfQ20oKE+cATpNLbr6AhfS/pa8AgabXjQ8CnSfMEtex/SXcDA6Rt+p8Bvgr8gtP0d06y3ycNA74AXB8RZ9yN2AnFzMwK4SEvMzMrhBOKmZkVwgnFzMwK4YRiZmaFcEIxM7NCOKGYTZOkHkn789cRSYfyz89L+mHV8ZnNFC8bNiuQpBuB5yPi1qpjMZtpvkMxK4mkgY4aKzdK2iFpRNKTkj4i6ZuSDkjak7e/QdLlkn4n6UFJ951td1ez84kTitnMeSNpv7BrgTuBvRHxFuA/wNU5qXwPWBcRlwPbgVrv1GD1Mvfsp5hZQX4dESckHSBt7bMnHz8ALAGWAyuB4bTrBXNI26qbzQpOKGYz5zhARJyUdCJOTWCeJP0tCngkItZUFaDZdHjIy+z88RjQK2kNpLICkt5ccUxmU+aEYnaeyGWn1wG3SPozsB94V7VRmU2dlw2bmVkhfIdiZmaFcEIxM7NCOKGYmVkhnFDMzKwQTihmZlYIJxQzMyuEE4qZmRXiv4ocryR4wmIGAAAAAElFTkSuQmCC\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Conclusion: without constant update of the data upon to predict the prediction will probably (without retraining on the days_forward) predict along a curve of an activation function built initially upon the optimization of patterns similar to the time_stamps of training similar to the first sequence and then rolling along the last value with probably an identical output of the activation function"
+ ],
+ "metadata": {
+ "id": "5IinRPqgsMey"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/notebooks/02_DevNotebook_Debugging_classes_and_functions.ipynb b/notebooks/02_DevNotebook_Debugging_classes_and_functions.ipynb
new file mode 100644
index 0000000..085faaa
--- /dev/null
+++ b/notebooks/02_DevNotebook_Debugging_classes_and_functions.ipynb
@@ -0,0 +1,1986 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "VXs2IK6k92Gh"
+ },
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "import datetime\n",
+ "import time\n",
+ "import urllib.request\n",
+ "from argparse import ArgumentParser\n",
+ "from typing import Optional\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "from sklearn.preprocessing import MinMaxScaler\n",
+ "\n",
+ "from tensorflow.keras.models import load_model\n",
+ "from tensorflow.keras.models import Sequential\n",
+ "from tensorflow.keras.layers import Dense\n",
+ "from tensorflow.keras.layers import LSTM\n",
+ "from tensorflow.keras.layers import Dropout\n",
+ "\n",
+ "def yahoo_finance_csv(code : str, \n",
+ " start_from_date : str = '2010-07-01', \n",
+ " end_to_date : str = datetime.date.today().isoformat(), \n",
+ " interval : str = 'd') -> str: #other intervals are 'wk' and 'mo'\n",
+ "\n",
+ " #setting an header to avoid possible errors\n",
+ " opener = urllib.request.build_opener()\n",
+ " opener.addheaders = [('User-Agent','Mozilla/5.0')]\n",
+ " urllib.request.install_opener(opener)\n",
+ " \n",
+ " #converting dates from iso format\n",
+ " start_from_date = datetime.datetime.fromisoformat(start_from_date)\n",
+ " end_to_date = datetime.datetime.fromisoformat(end_to_date)\n",
+ "\n",
+ " #converting dates to unix time\n",
+ " start_from_code = int(time.mktime(start_from_date.timetuple()))\n",
+ " todays_code = int(time.mktime(end_to_date.timetuple()))\n",
+ "\n",
+ " url = f'https://query1.finance.yahoo.com/v7/finance/download/{code}?period1={start_from_code}&period2={todays_code}&interval=1{interval}&events=history&includeAdjustedClose=true'\n",
+ " \n",
+ " #Save as a temporary file and return the a (position, HTTP message)\n",
+ " save_to_path = urllib.request.urlretrieve(url)\n",
+ " \n",
+ " pos_saved_csv = save_to_path[0]\n",
+ "\n",
+ " return pos_saved_csv\n",
+ "\n",
+ "def quick_tomorrow(code : str, \n",
+ " plot : bool = True,\n",
+ " start_from_date : Optional[str] = None,\n",
+ " training_to_test_ratio : Optional[float] = None, \n",
+ " n_layers : Optional[int] = None,\n",
+ " n_epochs : Optional[int] = None) -> tuple:\n",
+ "\n",
+ " if start_from_date is None:\n",
+ " start_from_date = '2010-07-01'\n",
+ " if training_to_test_ratio is None:\n",
+ " training_to_test_ratio = 0.9\n",
+ " if n_layers is None:\n",
+ " n_layers = 4\n",
+ " if n_epochs is None:\n",
+ " n_epochs = 10\n",
+ "\n",
+ " fitted_model = Price_Predictor(code = code, start_from_date = start_from_date,\n",
+ " training_to_test_ratio = training_to_test_ratio, \n",
+ " n_layers = n_layers,\n",
+ " n_epochs = n_epochs, \n",
+ " fit_at_start = True)\n",
+ "\n",
+ " if plot == True:\n",
+ " fig, ax = plt.subplots(1, 2, figsize=(18,5))\n",
+ " fitted_model.plot_data(ax[0])\n",
+ " fitted_model.plot_results(ax[1])\n",
+ " plt.legend()\n",
+ " plt.show()\n",
+ "\n",
+ " tomorrows_value = fitted_model.predict(return_info = False)\n",
+ "\n",
+ " print(\"Last price was {price:.2f} on {date}\".format(price = fitted_model.df['Open'].values[-1],\n",
+ " date = fitted_model.df['Date'].values[-1]),\n",
+ " \"Next price is predicted to be {:2f}\".format(tomorrows_value), sep='\\n')\n",
+ " \n",
+ " return fitted_model, tomorrows_value\n",
+ "\n",
+ "class Price_Predictor():\n",
+ "\n",
+ " def __init__(self, code : str,\n",
+ " start_from_date : str = '2010-07-01',\n",
+ " end_to_date : str = datetime.date.today().isoformat(),\n",
+ " interval : str = 'd',\n",
+ " time_stamps : int = 30, \n",
+ " training_to_test_ratio : float = 0.7, \n",
+ " n_layers : int = 4, #minimum input is 2\n",
+ " n_epochs : int = 15,\n",
+ " verbose : int = 0,\n",
+ " load_model : bool = False, \n",
+ " path_load : str = 'model_saved',\n",
+ " fit_at_start : bool = False, \n",
+ " days_forward : int = 1): \n",
+ "\n",
+ " self.code = code\n",
+ " self.start_from_date = start_from_date\n",
+ " self.end_to_date = end_to_date\n",
+ " self.interval = interval\n",
+ " self.time_stamps = time_stamps\n",
+ " self.training_to_test_ratio = training_to_test_ratio\n",
+ " self.n_layers = max(2, n_layers) #it's useless if less than 2\n",
+ " self.n_epochs = n_epochs\n",
+ " self.verbose = 0 if verbose < 0 else 2 if verbose > 2 else verbose\n",
+ " self.load_model = load_model\n",
+ " self.path_load = path_load\n",
+ "\n",
+ " #get data and preprocessing\n",
+ " self.df = pd.read_csv(yahoo_finance_csv(code = code, \n",
+ " start_from_date = self.start_from_date,\n",
+ " end_to_date = self.end_to_date))\n",
+ " self.df = self.df.dropna().reset_index(drop=True)\n",
+ "\n",
+ " #set the scaler\n",
+ " self.scale = MinMaxScaler(feature_range = (0, 1))\n",
+ "\n",
+ " #split\n",
+ " self.split_val = round(len(self.df)*self.training_to_test_ratio)\n",
+ "\n",
+ " #setting the frequency of date ticks for the plots\n",
+ " self.data_ticks_freq = round(0.25 * self.split_val)\n",
+ " self.result_ticks_freq = round(0.25 * len(self.df)*(1-self.training_to_test_ratio))\n",
+ "\n",
+ " #initialize the model\n",
+ " self.model = self.model_initialize(self.n_layers)\n",
+ " if fit_at_start == True:\n",
+ " self.test_predictions = self.fit_and_test(days_forward, self.df, self.split_val)\n",
+ "\n",
+ "\n",
+ " def model_initialize(self, \n",
+ " n_layers : int, \n",
+ " optimizer : str = 'adam', \n",
+ " loss_metric : str = 'mean_squared_error') -> Sequential:\n",
+ " \n",
+ " if self.load_model and os.path.isdir(self.path_load):\n",
+ " print(f'Loading model from {self.path_load}')\n",
+ " model = load_model(self.path_load)\n",
+ " else:\n",
+ " n_layers = int(self.n_layers) - 1 #the input layer doesn't count\n",
+ " #initialising the model\n",
+ " model = Sequential()\n",
+ " #adding the LSTM layers\n",
+ " model.add(LSTM(units = 50, return_sequences = True, input_shape = (self.time_stamps, 1)))\n",
+ " model.add(Dropout(0.2))\n",
+ " for i in range(n_layers):\n",
+ " if i < n_layers-1:\n",
+ " return_sequences = True\n",
+ " else:\n",
+ " return_sequences = False\n",
+ " model.add(LSTM(units = 50, return_sequences = return_sequences))\n",
+ " model.add(Dropout(0.2))\n",
+ " #adding the output dense layer\n",
+ " model.add(Dense(units = 1))\n",
+ " #cmpiling the model with adam and mse\n",
+ " model.compile(optimizer = optimizer, loss = loss_metric)\n",
+ " \n",
+ " return model\n",
+ "\n",
+ " def fit_and_test(self, days_forward : int,\n",
+ " df : Optional[pd.DataFrame] = None, \n",
+ " split_val : Optional[int] = None) -> np.array: #this method is not meant to be run by the user\n",
+ " \n",
+ " if df is None:\n",
+ " df = self.df\n",
+ " if split_val is None:\n",
+ " split_val = self.split_val\n",
+ "\n",
+ " self.days_forward = max(0, days_forward-1)\n",
+ "\n",
+ " training_set = df.iloc[:split_val-1]\n",
+ " test_set = df.iloc[split_val:]\n",
+ "\n",
+ " X_train_scaled = self.scale.fit_transform(training_set['Open'].values.reshape(-1,1))\n",
+ "\n",
+ " X_train = []\n",
+ " y_train = []\n",
+ " for i in range(self.time_stamps, split_val-1-self.days_forward):\n",
+ " X_train.append(X_train_scaled[i-self.time_stamps:i, 0])\n",
+ " y_train.append(X_train_scaled[i+self.days_forward, 0])\n",
+ " X_train, y_train = np.array(X_train), np.array(y_train)\n",
+ " #reshaping the training set for LSTM\n",
+ " X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))\n",
+ "\n",
+ " if self.load_model == False:\n",
+ " #fitting on the training data\n",
+ " self.model.fit(X_train, y_train, epochs = self.n_epochs, batch_size = 32, verbose = self.verbose)\n",
+ "\n",
+ " #getting the test set in the same format of the training (meaning a sequence composed of n° of time_stamps)\n",
+ " to_test = pd.concat((training_set[-self.time_stamps:], test_set))['Open'].values\n",
+ " to_test = to_test.reshape(-1,1)\n",
+ " to_test = self.scale.transform(to_test)\n",
+ "\n",
+ " X_test = []\n",
+ " for i in range(self.time_stamps, len(test_set)+self.time_stamps):\n",
+ " X_test.append(to_test[i-self.time_stamps:i, 0])\n",
+ " X_test = np.array(X_test)\n",
+ " X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))\n",
+ "\n",
+ " #rescaling the data\n",
+ " y_pred = self.model.predict(X_test)\n",
+ " \n",
+ " self.test_predictions = self.scale.inverse_transform(y_pred)\n",
+ "\n",
+ " return self.test_predictions\n",
+ " \n",
+ " def save_model(self, dir : str = 'model_saved'):\n",
+ " if os.path.isdir(dir):\n",
+ " response = 0\n",
+ " while str(response).lower() != 'y' and str(response).lower() != 'n':\n",
+ " response = input('A model already exists, overwrite? y/n: ')\n",
+ " if str(response).lower() == 'y':\n",
+ " self.model.save(dir)\n",
+ " elif str(response).lower() == 'n':\n",
+ " rename = input('Rename? y/n: ')\n",
+ " if str(rename).lower() == 'y':\n",
+ " dir = input('Write a dir name: ')\n",
+ " self.model.save(dir)\n",
+ " else:\n",
+ " break\n",
+ " else:\n",
+ " self.model.save(dir)\n",
+ "\n",
+ " def plot_data(self, ax = None):\n",
+ " if ax is None:\n",
+ " fig, ax = plt.subplots(1, 1, figsize=(9,5))\n",
+ " self.df.plot(x='Date', y=['Open'], ax=ax, title=f'{self.code} Price', xticks=np.arange(0, len(self.df), self.data_ticks_freq))\n",
+ " ax.axvline(self.split_val, c='k', linestyle='--') \n",
+ " \n",
+ " xlim = ax.get_xlim()\n",
+ " ax.text(round((self.split_val+xlim[0])/2), self.df['Open'].max()*0.99, s='Training Set', horizontalalignment='center')\n",
+ " ax.text(round((self.split_val+xlim[1])/2), self.df['Open'].min(), s='Test Set', horizontalalignment='center')\n",
+ "\n",
+ " def plot_results(self, ax = None):\n",
+ " if ax is None:\n",
+ " fig, ax = plt.subplots(1, 1, figsize=(9,5))\n",
+ "\n",
+ " test_set = self.df.iloc[self.split_val:]\n",
+ "\n",
+ " ax.plot(test_set['Open'].values, color = 'blue', label = 'Real Price')\n",
+ " ax.plot(self.test_predictions, color = 'red', label = 'Predicted Price')\n",
+ " ax.set_title(f'{self.code} Price Prediction (Test Data)')\n",
+ " ax.set_xlabel('Time')\n",
+ " ax.set_ylabel('Price')\n",
+ "\n",
+ " ax.set_xticks(np.arange(0, len(test_set), self.result_ticks_freq))\n",
+ " ax.set_xticklabels(test_set['Date'][np.arange(test_set.index[0], test_set.index[-1], self.result_ticks_freq)])\n",
+ "\n",
+ " def predict(self, input_sequence = None, return_info : bool = True) -> float:\n",
+ " if input_sequence is None:\n",
+ " if return_info:\n",
+ " print(f'No Input sequence provided, the last {self.time_stamps} records of the data downloaded will be used instead.\\n')\n",
+ " input_sequence = self.df.iloc[self.split_val:]['Open'].values\n",
+ " input_sequence = np.array(input_sequence).ravel().astype('float32')\n",
+ " \n",
+ " if len(input_sequence) > self.time_stamps:\n",
+ " if return_info:\n",
+ " print(f'\\nWARNING: The input sequence on which to forecast is longer than {self.time_stamps}',\n",
+ " 'which is the input time stamp and the length of array needed in order to get a prediction,'\n",
+ " f'the last {self.time_stamps} records will be considered instead.\\n')\n",
+ " input_sequence = input_sequence[-self.time_stamps:]\n",
+ "\n",
+ " elif len(input_sequence) < self.time_stamps:\n",
+ " raise ValueError(f\"The array must be at least {self.time_stamps} in length\")\n",
+ " \n",
+ " scaled_sequence = self.scale.transform(input_sequence.reshape(-1,1))\n",
+ " X_to_predict = scaled_sequence.reshape(1,self.time_stamps,1)\n",
+ " y_predicted = self.model.predict(X_to_predict)\n",
+ " rescaled = self.scale.inverse_transform(y_predicted)\n",
+ "\n",
+ " if return_info:\n",
+ " print(f'In {self.days_forward+1} day(s) the price will be:', rescaled.ravel()[0])\n",
+ "\n",
+ " return rescaled.ravel()[0]\n",
+ "\n",
+ " def __get_data_frame__(self) -> pd.DataFrame:\n",
+ " return self.df\n",
+ "\n",
+ " def __get_training_set__(self) -> pd.DataFrame:\n",
+ " return self.df.iloc[:self.split_val-1]\n",
+ "\n",
+ " def __get_test_set__(self) -> pd.DataFrame:\n",
+ " return self.df.iloc[self.split_val:]\n",
+ "\n",
+ " def __get_params__(self) -> dict:\n",
+ " try:\n",
+ " self.days_forward\n",
+ " status_code = 0\n",
+ " except:\n",
+ " status_code = 1\n",
+ "\n",
+ " params = {'code' : self.code, \n",
+ " 'start_from_date' : self.start_from_date, \n",
+ " 'end_to_date' : self.end_to_date, \n",
+ " 'interval' : self.interval,\n",
+ " 'time_stamps' : self.time_stamps, \n",
+ " 'training_to_test_ratio' : self.training_to_test_ratio, \n",
+ " 'split_val' : self.split_val, \n",
+ " 'n_layers' : self.n_layers, \n",
+ " 'n_epochs': self.n_epochs, \n",
+ " 'load_model' : self.load_model, \n",
+ " 'path_load' : self.path_load}\n",
+ "\n",
+ " if status_code == 0:\n",
+ " params['days_forward'] = self.days_forward+1\n",
+ "\n",
+ " return params\n",
+ "\n",
+ "class Predict_Iterator(Price_Predictor):\n",
+ "\n",
+ " def __init__(self, code : str, \n",
+ " start_from_date : str = '2010-07-01', \n",
+ " end_to_date : str = datetime.date.today().isoformat(), \n",
+ " effort : float = 0.5, \n",
+ " time_stamps : int = 30):\n",
+ "\n",
+ " #the effort parameter increases the resulting performances while increasing the computational time, it is suggested to leave it as default\n",
+ " \n",
+ " training_to_test_ratio = round((0.9-0.70)*effort+0.70, 2) #I want a minimum of 0.70 and a maximum of 0.9\n",
+ " idx_epoch = 0 if effort <= 0.6 else 1 if effort <= 0.75 else 2 if effort <= 0.85 else 3\n",
+ " n_epochs = [2, 5, 10, 15][idx_epoch] #I generally prefer 2 to be quicker\n",
+ " n_layers = round(4 * effort) #more than 4 layers is not worth the effort\n",
+ "\n",
+ " super().__init__(code = code, \n",
+ " start_from_date = start_from_date, end_to_date = end_to_date, \n",
+ " time_stamps = time_stamps, \n",
+ " training_to_test_ratio = training_to_test_ratio, \n",
+ " n_layers = n_layers, n_epochs = n_epochs)\n",
+ "\n",
+ " def get_predictions(self, days_to_predict : int = 1,\n",
+ " predict_from_date : Optional[str] = None) -> list:\n",
+ "\n",
+ " if predict_from_date is not None:\n",
+ " end_date = datetime.datetime.fromisoformat(self.end_to_date)\n",
+ " start_date = datetime.datetime.fromisoformat(predict_from_date)\n",
+ " \n",
+ " if end_date > start_date:\n",
+ " position = self.df['Date'].tolist().index(predict_from_date)\n",
+ " input_sequence = self.df.iloc[position-self.time_stamps:position]['Open'].values\n",
+ "\n",
+ " else:\n",
+ " raise ValueError(\"The chosen 'predict_from_date' must be antecedent to the end date selected previously!\")\n",
+ " else:\n",
+ " input_sequence = self.df.iloc[self.split_val:]['Open'].values\n",
+ "\n",
+ " self.days_to_predict = max(1, days_to_predict)\n",
+ " predictions = []\n",
+ " self.stored_models = []\n",
+ "\n",
+ " for n in range(1, self.days_to_predict+1):\n",
+ " self.fit_and_test(days_forward = n)\n",
+ " self.stored_models.append(self)\n",
+ " price_predicted = self.predict(input_sequence = input_sequence, return_info = False)\n",
+ " predictions.append(price_predicted)\n",
+ " \n",
+ " return predictions\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "ftsemib = Price_Predictor('FTSEMIB.MI')\n",
+ "ftsemib.plot_data()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 350
+ },
+ "id": "0hpp7rWo0GVL",
+ "outputId": "f1d5c59d-7984-4a0b-f8c2-3d27e8c31f04"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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iqIomUaFFaXRuJPAqbCiKIqiZBp1sFUajVvronWBFKUweeKJJ3I9BEXxRYUVpVF8+YfxEcvqs6IohUnfvn1zPQRF8UWfLEqjaF9eErGsZiBFKUyeeuopnnrqqVwPQ1E8Uc2KkjSlRQFqXbWHLjtyUEwfTQinKIXJAw88AMDJJ5+c45EoSiyqWVGS5q3fHsrvJlrpuHt3bMXlRw2O6aMVlxVFKSQ2btxIRUUFFRUV9OjRg969e4eXa2trE27//vvvM2vWLM91a9euZfLkyYwcOZJhw4YxadKkuPvasmUL999/f1rfo7mjwoqSNLt2acNxI60aRCHjXXlZfVYURSkkunTpwty5c5k7dy4XXnghl19+eXi5tLQ04fbxhJXf//73HHXUUcybN4+vvvqKKVOmxN2XCiv+6JNFSYliWxgpLynyWa+aFUVRCps5c+Zw2GGHsc8++zBhwgRWr14NwL333suwYcMYMWIEp5xyCsuXL+fBBx/k7rvvpqKigpkzZ0bsZ/Xq1fTp0ye8PGLEiPDnu+66i3333ZcRI0Zw0003AXDNNdfw3XffUVFRwVVXXdUE37RwUJ8VJSV2aV/G5eMGc1xFL8/16rOiKEohY4zh0ksv5cUXX6Rbt2489dRTXH/99UydOpUpU6awbNkyysrK2LJlCx07duTCCy+kbdu2XHnllTH7uuSSSzj55JO57777GDduHOeccw69evXizTffZPHixXz66acYYzjuuOOYMWMGU6ZMYcGCBcydOzcH3zy/UWFFSQkR4bJxsY61DqpZUZTC5Nlnn831EPKCmpoaFixYwFFHHQVAMBikZ8+egKUZOf300znhhBM44YQTEu5rwoQJLF26lNdff53XXnuNUaNGsWDBAt58803efPNNRo0aBcCOHTtYvHgx/fr1y94XK3BUWFEySpmPeUhRlPyma1etmA6WZmXPPffko48+iln36quvMmPGDF5++WVuv/125s+fn3B/nTt35rTTTuO0005j8uTJzJgxA2MM1157LRdccEFE3+XLl2fqazQ71GdFySjtylT+VZRC5LHHHuOxxx7L9TByTllZGevXrw8LK3V1dSxcuJBQKMSKFSs4/PDDueOOO9i6dSs7duygXbt2bN++3XNf7777LpWVlQBs376d7777jn79+jFhwgSmTp3Kjh07AFi1ahXr1q2Lu6+WjgorSkY4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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "ftsemib.df"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 424
+ },
+ "id": "dyyPJ3eoyanQ",
+ "outputId": "46375a18-8d32-4f71-a838-e3e1213d5d56"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Date Open High Low Close Adj Close Volume\n",
+ "0 2010-07-01 19000.0 19254.0 18807.0 18944.0 18944.0 1.003573e+09\n",
+ "1 2010-07-02 19114.0 19257.0 18927.0 19074.0 19074.0 7.714960e+08\n",
+ "2 2010-07-05 19127.0 19127.0 18843.0 18849.0 18849.0 4.103019e+08\n",
+ "3 2010-07-06 18945.0 19577.0 18904.0 19357.0 19357.0 8.490529e+08\n",
+ "4 2010-07-07 19174.0 20013.0 19095.0 20013.0 20013.0 1.102459e+09\n",
+ "... ... ... ... ... ... ... ...\n",
+ "3072 2022-08-04 22650.0 22880.0 22590.0 22646.0 22646.0 4.562569e+08\n",
+ "3073 2022-08-05 22677.0 22732.0 22500.0 22587.0 22587.0 4.019544e+08\n",
+ "3074 2022-08-08 22722.0 22828.0 22560.0 22728.0 22728.0 2.927303e+08\n",
+ "3075 2022-08-09 22728.0 22771.0 22470.0 22488.0 22488.0 2.886964e+08\n",
+ "3076 2022-08-10 22419.0 22733.0 22354.0 22702.0 22702.0 2.790439e+08\n",
+ "\n",
+ "[3077 rows x 7 columns]"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Date | \n",
+ " Open | \n",
+ " High | \n",
+ " Low | \n",
+ " Close | \n",
+ " Adj Close | \n",
+ " Volume | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2010-07-01 | \n",
+ " 19000.0 | \n",
+ " 19254.0 | \n",
+ " 18807.0 | \n",
+ " 18944.0 | \n",
+ " 18944.0 | \n",
+ " 1.003573e+09 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2010-07-02 | \n",
+ " 19114.0 | \n",
+ " 19257.0 | \n",
+ " 18927.0 | \n",
+ " 19074.0 | \n",
+ " 19074.0 | \n",
+ " 7.714960e+08 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2010-07-05 | \n",
+ " 19127.0 | \n",
+ " 19127.0 | \n",
+ " 18843.0 | \n",
+ " 18849.0 | \n",
+ " 18849.0 | \n",
+ " 4.103019e+08 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2010-07-06 | \n",
+ " 18945.0 | \n",
+ " 19577.0 | \n",
+ " 18904.0 | \n",
+ " 19357.0 | \n",
+ " 19357.0 | \n",
+ " 8.490529e+08 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 2010-07-07 | \n",
+ " 19174.0 | \n",
+ " 20013.0 | \n",
+ " 19095.0 | \n",
+ " 20013.0 | \n",
+ " 20013.0 | \n",
+ " 1.102459e+09 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 3072 | \n",
+ " 2022-08-04 | \n",
+ " 22650.0 | \n",
+ " 22880.0 | \n",
+ " 22590.0 | \n",
+ " 22646.0 | \n",
+ " 22646.0 | \n",
+ " 4.562569e+08 | \n",
+ "
\n",
+ " \n",
+ " 3073 | \n",
+ " 2022-08-05 | \n",
+ " 22677.0 | \n",
+ " 22732.0 | \n",
+ " 22500.0 | \n",
+ " 22587.0 | \n",
+ " 22587.0 | \n",
+ " 4.019544e+08 | \n",
+ "
\n",
+ " \n",
+ " 3074 | \n",
+ " 2022-08-08 | \n",
+ " 22722.0 | \n",
+ " 22828.0 | \n",
+ " 22560.0 | \n",
+ " 22728.0 | \n",
+ " 22728.0 | \n",
+ " 2.927303e+08 | \n",
+ "
\n",
+ " \n",
+ " 3075 | \n",
+ " 2022-08-09 | \n",
+ " 22728.0 | \n",
+ " 22771.0 | \n",
+ " 22470.0 | \n",
+ " 22488.0 | \n",
+ " 22488.0 | \n",
+ " 2.886964e+08 | \n",
+ "
\n",
+ " \n",
+ " 3076 | \n",
+ " 2022-08-10 | \n",
+ " 22419.0 | \n",
+ " 22733.0 | \n",
+ " 22354.0 | \n",
+ " 22702.0 | \n",
+ " 22702.0 | \n",
+ " 2.790439e+08 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
3077 rows × 7 columns
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 3
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "ftsemib.__get_training_set__()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 424
+ },
+ "id": "iTfjwNI9vmY_",
+ "outputId": "8025af8e-a6ff-44e0-c54a-1add644589aa"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Date Open High Low Close Adj Close Volume\n",
+ "0 2010-07-01 19000.0 19254.0 18807.0 18944.0 18944.0 1.003573e+09\n",
+ "1 2010-07-02 19114.0 19257.0 18927.0 19074.0 19074.0 7.714960e+08\n",
+ "2 2010-07-05 19127.0 19127.0 18843.0 18849.0 18849.0 4.103019e+08\n",
+ "3 2010-07-06 18945.0 19577.0 18904.0 19357.0 19357.0 8.490529e+08\n",
+ "4 2010-07-07 19174.0 20013.0 19095.0 20013.0 20013.0 1.102459e+09\n",
+ "... ... ... ... ... ... ... ...\n",
+ "2148 2018-12-11 18553.0 18768.0 18422.0 18591.0 18591.0 3.839444e+08\n",
+ "2149 2018-12-12 18667.0 19021.0 18627.0 18946.0 18946.0 4.417947e+08\n",
+ "2150 2018-12-13 19094.0 19210.0 18956.0 19049.0 19049.0 4.399755e+08\n",
+ "2151 2018-12-14 18875.0 18968.0 18734.0 18911.0 18911.0 3.119417e+08\n",
+ "2152 2018-12-17 18901.0 18914.0 18655.0 18693.0 18693.0 3.203914e+08\n",
+ "\n",
+ "[2153 rows x 7 columns]"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Date | \n",
+ " Open | \n",
+ " High | \n",
+ " Low | \n",
+ " Close | \n",
+ " Adj Close | \n",
+ " Volume | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2010-07-01 | \n",
+ " 19000.0 | \n",
+ " 19254.0 | \n",
+ " 18807.0 | \n",
+ " 18944.0 | \n",
+ " 18944.0 | \n",
+ " 1.003573e+09 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2010-07-02 | \n",
+ " 19114.0 | \n",
+ " 19257.0 | \n",
+ " 18927.0 | \n",
+ " 19074.0 | \n",
+ " 19074.0 | \n",
+ " 7.714960e+08 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2010-07-05 | \n",
+ " 19127.0 | \n",
+ " 19127.0 | \n",
+ " 18843.0 | \n",
+ " 18849.0 | \n",
+ " 18849.0 | \n",
+ " 4.103019e+08 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2010-07-06 | \n",
+ " 18945.0 | \n",
+ " 19577.0 | \n",
+ " 18904.0 | \n",
+ " 19357.0 | \n",
+ " 19357.0 | \n",
+ " 8.490529e+08 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 2010-07-07 | \n",
+ " 19174.0 | \n",
+ " 20013.0 | \n",
+ " 19095.0 | \n",
+ " 20013.0 | \n",
+ " 20013.0 | \n",
+ " 1.102459e+09 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 2148 | \n",
+ " 2018-12-11 | \n",
+ " 18553.0 | \n",
+ " 18768.0 | \n",
+ " 18422.0 | \n",
+ " 18591.0 | \n",
+ " 18591.0 | \n",
+ " 3.839444e+08 | \n",
+ "
\n",
+ " \n",
+ " 2149 | \n",
+ " 2018-12-12 | \n",
+ " 18667.0 | \n",
+ " 19021.0 | \n",
+ " 18627.0 | \n",
+ " 18946.0 | \n",
+ " 18946.0 | \n",
+ " 4.417947e+08 | \n",
+ "
\n",
+ " \n",
+ " 2150 | \n",
+ " 2018-12-13 | \n",
+ " 19094.0 | \n",
+ " 19210.0 | \n",
+ " 18956.0 | \n",
+ " 19049.0 | \n",
+ " 19049.0 | \n",
+ " 4.399755e+08 | \n",
+ "
\n",
+ " \n",
+ " 2151 | \n",
+ " 2018-12-14 | \n",
+ " 18875.0 | \n",
+ " 18968.0 | \n",
+ " 18734.0 | \n",
+ " 18911.0 | \n",
+ " 18911.0 | \n",
+ " 3.119417e+08 | \n",
+ "
\n",
+ " \n",
+ " 2152 | \n",
+ " 2018-12-17 | \n",
+ " 18901.0 | \n",
+ " 18914.0 | \n",
+ " 18655.0 | \n",
+ " 18693.0 | \n",
+ " 18693.0 | \n",
+ " 3.203914e+08 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
2153 rows × 7 columns
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 4
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "ftsemib.fit_and_test(days_forward = 1)\n",
+ "ftsemib.plot_results()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 350
+ },
+ "id": "7dy3SzIsgOhz",
+ "outputId": "9b39fcb9-b041-4638-d045-1fad8d24411f"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "