From db4f5679acf684fe2efe5169d241e33bf274f3ca Mon Sep 17 00:00:00 2001 From: Oleg Sheynin Date: Thu, 13 Jun 2024 20:17:22 +0000 Subject: [PATCH] . --- fastai/notebooks/fastbook | 1 - .../notebooks/leo/LSTM_All_Crypto_01.ipynb | 581 ++++++++++++------ 2 files changed, 383 insertions(+), 199 deletions(-) delete mode 160000 fastai/notebooks/fastbook diff --git a/fastai/notebooks/fastbook b/fastai/notebooks/fastbook deleted file mode 160000 index 9861948..0000000 --- a/fastai/notebooks/fastbook +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 98619484d84ecffab23dc74a03d0dcc04122fac3 diff --git a/tensorflow/notebooks/leo/LSTM_All_Crypto_01.ipynb b/tensorflow/notebooks/leo/LSTM_All_Crypto_01.ipynb index fa93227..ea82c7f 100644 --- a/tensorflow/notebooks/leo/LSTM_All_Crypto_01.ipynb +++ b/tensorflow/notebooks/leo/LSTM_All_Crypto_01.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 114, + "execution_count": 164, "id": "1023f2c1-e45f-4e1c-9a1b-66f59f128196", "metadata": {}, "outputs": [ @@ -11,7 +11,7 @@ "output_type": "stream", "text": [ "Panda Version: 2.2.2\n", - "Today date is: 2024-06-12\n" + "Today date is: 2024-06-13\n" ] } ], @@ -70,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 165, "id": "c09a37a6-f0d9-48e3-a1d1-65ddaf2c489c", "metadata": {}, "outputs": [ @@ -79,8 +79,8 @@ "output_type": "stream", "text": [ "/workspace/leo\n", - "total 14988\n", - "drwxrwxr-x 1 1000 1000 598 Jun 12 15:29 .\n", + "total 16400\n", + "drwxrwxr-x 1 1000 1000 648 Jun 13 10:01 .\n", "drwxrwxr-x 1 1000 1000 18 Jun 3 23:40 ..\n", "-rw------- 1 1000 1000 1449984 Jun 4 00:49 20240601.mktdata.ohlcv.db\n", "-rw------- 1 1000 1000 1445888 Jun 3 23:44 20240602.mktdata.ohlcv.db\n", @@ -93,7 +93,8 @@ "-rw------- 1 1000 1000 1437696 Jun 10 10:00 20240609.mktdata.ohlcv.db\n", "-rw-r--r-- 1 1000 1000 0 Jun 12 15:29 20240609.mktdata.ohlcvdb\n", "-rw------- 1 1000 1000 1437696 Jun 11 10:00 20240610.mktdata.ohlcv.db\n", - "-rw------- 1 1000 1000 1449984 Jun 12 10:01 20240611.mktdata.ohlcv.db\n" + "-rw------- 1 1000 1000 1449984 Jun 12 10:01 20240611.mktdata.ohlcv.db\n", + "-rw------- 1 1000 1000 1445888 Jun 13 10:01 20240612.mktdata.ohlcv.db\n" ] } ], @@ -125,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 128, + "execution_count": 167, "id": "5d2aed0b-8c9d-4f5a-9166-785da4811390", "metadata": {}, "outputs": [ @@ -133,30 +134,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "5759\n", - "11519\n", - "17213\n", - "22272\n", - "26556\n", - "32316\n", - "38076\n", - "43836\n", - "49596\n", - "55283\n", - " tstamp exchange_id instrument_id open high \\\n", - "0 1717200000000000000 COINBASE PAIR-BTC-USD 67473.07 67514.99 \n", - "1 1717200060000000000 COINBASE PAIR-BTC-USD 67506.57 67515.00 \n", - "\n", - " low close volume vwap \n", - "0 67468.13 67506.03 2.045049 67496.869352 \n", - "1 67480.66 67494.74 0.646759 67500.893305 \n", - " tstamp exchange_id instrument_id open high low \\\n", - "55281 1718063880000000000 COINBASE PAIR-XRP-USD 0.4968 0.4968 0.4966 \n", - "55282 1718063940000000000 COINBASE PAIR-XRP-USD 0.4967 0.4967 0.4966 \n", - "\n", - " close volume vwap \n", - "55281 0.4967 9143.928579 0.496704 \n", - "55282 0.4967 3314.651869 0.496681 \n" + "66803\n" ] } ], @@ -173,9 +151,9 @@ " '20240607', \n", " '20240608', \n", " '20240609',\n", - " '20240610']\n", - " \n", - "# '20240601', '20240602', '20240601', '20240602'\n", + " '20240610',\n", + " '20240611',\n", + " '20240612'] \n", "\n", "# Create an entirely empty DataFrame\n", "df_concat = pd.DataFrame()\n", @@ -191,20 +169,18 @@ " df = pd.read_sql_query(\"select * from coinbase_ohlcv_1min\", conn)\n", "\n", " df_concat = pd.concat([df_concat, df], axis = 0,ignore_index = True)\n", - " \n", " # Print the combined DataFrame\n", - " print(df_concat.shape[0])\n", + " # print(df_concat.shape[0])\n", " # print(df_concat.shape[1])\n", - "\n", " conn.close()\n", - "\n", - "print(df_concat.head(2))\n", - "print(df_concat.tail(2))" + "print(df_concat.shape[0])\n", + "# print(df_concat.head(2))\n", + "# print(df_concat.tail(2))" ] }, { "cell_type": "code", - "execution_count": 129, + "execution_count": 174, "id": "cd83027c-eaa1-44d9-98ad-8506099c323d", "metadata": {}, "outputs": [], @@ -222,55 +198,16 @@ "df_concat = df_concat.sort_values(by = ['day', 'hour', 'minute'])\n", "\n", "selected_columns = ['date', 'instrument_id', 'close', 'volume', 'vwap']\n", - "df_concat = df_concat[selected_columns]" + "df_concat = df_concat[selected_columns]\n", + "\n", + "# instrument_list = df_concat['instrument_id'].unique().tolist()\n", + "# print(\"Distinct values in column 'instrument_id':\", instrument_list)\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 130, - "id": "6ccc60bc-6b74-408c-946c-bdbfee0cffb5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " date instrument_id close volume vwap\n", - "0 1-0-0 PAIR-BTC-USD 67506.0300 2.045049 67496.869352\n", - "1440 1-0-0 PAIR-ETH-USD 3762.0400 37.497964 3761.077765\n", - "2880 1-0-0 PAIR-LTC-USD 83.1700 110.056253 83.166206\n", - "4319 1-0-0 PAIR-XRP-USD 0.5173 28809.165339 0.517217\n", - "1 1-0-1 PAIR-BTC-USD 67494.7400 0.646759 67500.893305\n" - ] - } - ], - "source": [ - "print(df_concat.head())\n", - "# print(df_concat.tail(2))" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "id": "0f358ee5-9ec0-4582-be09-4e4ad84faca7", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Distinct values in column 'instrument_id': ['PAIR-BTC-USD', 'PAIR-ETH-USD', 'PAIR-LTC-USD', 'PAIR-XRP-USD']\n" - ] - } - ], - "source": [ - "instrument_list = df_concat['instrument_id'].unique().tolist()\n", - "print(\"Distinct values in column 'instrument_id':\", instrument_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 136, + "execution_count": 179, "id": "316c0cfb-c73d-4dad-9d49-eb80daa229ec", "metadata": {}, "outputs": [ @@ -278,10 +215,17 @@ "name": "stdout", "output_type": "stream", "text": [ - " date close_BTC volume_BTC vwap_BTC\n", - "0 1-0-0 0.675060 2.045049 0.674969\n", - "1 1-0-1 0.674947 0.646759 0.675009\n", - "2 1-0-2 0.675150 9.732906 0.674778\n" + "========================================\n", + " date close_xrp volume_xrp vwap_xrp close_eth volume_eth vwap_eth \\\n", + "0 1-0-0 0.5173 28809.165339 0.517217 0.376204 37.497964 0.376108 \n", + "1 1-0-1 0.5170 10184.511212 0.517060 0.375942 11.703305 0.376013 \n", + "2 1-0-10 0.5176 15515.348778 0.517601 0.375938 11.922897 0.375935 \n", + "\n", + " close_ltc volume_ltc vwap_ltc close_btc volume_btc vwap_btc \n", + "0 0.8317 110.056253 0.831662 0.675060 2.045049 0.674969 \n", + "1 0.8312 176.868598 0.831441 0.674947 0.646759 0.675009 \n", + "2 0.8311 58.951033 0.831037 0.675507 1.201335 0.675478 \n", + "test sample size: 16698\n" ] } ], @@ -293,73 +237,17 @@ "df_concat_btc = df_concat_btc.reset_index(drop = True)\n", "\n", "# Rename Vars\n", - "df_concat_btc['close_BTC'] = df_concat_btc['close']/100000.00\n", - "df_concat_btc['volume_BTC'] = df_concat_btc['volume']\n", - "df_concat_btc['vwap_BTC'] = df_concat_btc['vwap']/100000.00\n", + "df_concat_btc['close_btc'] = df_concat_btc['close']/100000.00\n", + "df_concat_btc['volume_btc'] = df_concat_btc['volume']\n", + "df_concat_btc['vwap_btc'] = df_concat_btc['vwap']/100000.00\n", "\n", "df_concat_btc = df_concat_btc.drop('close', axis = 1)\n", "df_concat_btc = df_concat_btc.drop('volume', axis = 1)\n", "df_concat_btc = df_concat_btc.drop('vwap', axis = 1)\n", "df_concat_btc = df_concat_btc.drop('instrument_id', axis = 1)\n", "\n", - "print (df_concat_btc.head(3))" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "id": "92700c76-8eac-4ebb-86d3-27066486c437", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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WrXEQdG7d4vHhw/bHhypnwOILUv16uXeGChTGjWST7c0OALEMVD6wsIYHBERkX1wNEYeGjRIXOnaFp06AVev2q8ubdqI6y05gu6Ue1uVKpXzMoiIiIxhC1IecjLy3Y6Kytt6ONq+fYZpW7ZYV8bUqfYfT0VERKTGACmPnTgBBAdLZ3CZ2lajMKpa1TCtWzfryqhWTZwVp+btnbM6ERER6WKAlMdatBDX/6lSRdwCY/Roca2gomTaNOn548fGW9dMKVYM2LNHnEG3d6996kZERARwFpusvNxqpChSqcT1oD78UJydZ2ylbSIiImtwFhsVaE5O4oD1rCzD1bSJiIjyA85iI4fhitZERJRfsQWJiIiISA8DJCIiIiI9DJCIiIiI9DBAIiIiItLDYbIy1CsfJCcnO7gmREREZCn157Y9VjBigCQjJSUFABAQEODgmhAREZG1UlJS4J3DLRa4UKQMlUqFBw8eoESJElAoFHYt+9VXX8VZroxIRESE/fv3Izg42G7lCYKAlJQUVKxYEU62bNGggy1IMpycnFCpUqVcKbsYF/8hIiICABQvXtzuO1bktOVIjYO0iYiIiPQwQCIiIiLSwwApj7Vt29bRVSAiInI4FxcX+Pn5OboaRnGQNhEREZEetiARERER6WGARERERKSHARIRERGRHgZIRERERHq4aqEZbm5uyMzMdHQ1iIiIKIeWL1+OAQMGWJSXLUhmZGdnO7oKREREZAdBQUEW52WAZIZSqYQgCHbZGZiIiIgcZ/bs2RbnZYBERERERUJsbKzFeRkgERERUZGQmJhocV4GSERERFQkPH782OK83GrECgqFwtFVICIiIhspFAqoVCqL8rIFiYiIiIqEUqVKWZyXAZIZ33//PRQKBVuPiIiICrhp06ZZnJddbGa4uroiKyvL0dUgIiKiHDpw4ADatWtnUV4GSERERER62MVGREREpIcBEhEREZEeBkhEREREehggEREREelhgERERESkhwESERERkR4GSERERER6GCARERER6WGARESFSrt27TBmzBhHV4OICjgGSERUZB08eBAKhQLPnj1zdFWIKJ8p5ugK5EcqlQoPHjxAiRIluEktUQGTnZ2NjIwMJCcnm82blpYGAEhOToaTE/9eJCroBEFASkoKKlasmOP/09yLTca9e/cQEBDg6GoQERGRDWJjY1GpUqUclcEWJBklSpQAIH6DS5Ys6eDaEBERkSWSk5MREBCg+RzPiXwRIC1cuBDfffcd4uPjERQUhJ9//hnNmzeXzduuXTscOnTIIL1Lly7Yvn07srKyMGnSJOzYsQO3bt2Ct7c3QkNDMXv2bFSsWNGi+qi71UqWLMkAiYiIqICxx/AYh3e6r1+/HmFhYZg6dSqioqIQFBSEzp074+HDh7L5N23ahLi4OM3r0qVLcHZ2Rq9evQAA6enpiIqKwuTJkxEVFYVNmzYhOjoab775Zl6+LSIiIirAHD4GqUWLFmjWrBkWLFgAQBwgHRAQgE8++QTjx483e/+8efMwZcoUxMXFwcvLSzbP6dOn0bx5c8TExKBy5cpmy0xOToa3tzeSkpLYgkRERFRA2PPz26EtSJmZmTh79ixCQ0M1aU5OTggNDcXx48ctKiMiIgJ9+/Y1GhwBQFJSEhQKBUqVKiV7XT3jRfdFRERERZdDA6RHjx5BqVTCx8dHku7j44P4+Hiz9586dQqXLl3C4MGDjeZ58eIFxo0bh379+hmNJmfNmgVvb2/NizPYiKgwSstMc3QViAoMh49ByomIiAg0aNDA6IDurKws9O7dG4IgYNGiRUbLCQ8PR1JSkuYVGxubW1UmInKIL/Z8geKziuPv6L8dXRWiAsGhAVK5cuXg7OyMhIQESXpCQgJ8fX1N3puWloZ169bho48+kr2uDo5iYmKwd+9ek32Rbm5umhlrnLlGRIXRD8d/AAC8uY4TVogs4dAAydXVFcHBwYiMjNSkqVQqREZGIiQkxOS9GzZsQEZGBt5//32Da+rg6Pr169i3bx/Kli1r97oTERUUd57dcXQViAoch6+DFBYWhgEDBqBp06Zo3rw55s2bh7S0NAwaNAgA0L9/f/j7+2PWrFmS+yIiItCjRw+D4CcrKws9e/ZEVFQUtm3bBqVSqRnPVKZMGbi6uubNGyMiyicepT9ydBWIChyHB0h9+vRBYmIipkyZgvj4eDRq1Ai7du3SDNy+e/euwX4q0dHROHLkCPbs2WNQ3v3797F161YAQKNGjSTXDhw4gHbt2uXK+yAiyq+cFAV6uCmRQzh8HaT8iOsgETnO1UdX8fT5U4QEmO5mJ8udfXAWTZc21ZwLU/lrnwqnQrMOEhGRrv8e/oc6C+ug5bKWiHkWg/vJ99FqWSusvbjW0VUr0LJUWY6uAlGB4/AuNiIitfqL6muOO6zsgGxVNmKSYnAs9hj6NejnwJoVbC+yXzi6CkQFDgMkIsoX9Hv7bz696aCaFD4pGSmOrgJRgcMuNiLKFzKVmY6uQqGVnMHtk4isxQCJiPIFdgPlHv0A6WLCRYzYPgJxKXEOqhFR/scAiYjyhYLcyhGfGo/G/2uMucfnOroqspIykiTnTZc2xaIzi9B/S38H1Ygo/2OARET5wjeHv3F0FWz2vzP/w7n4c/h8z+eOroqs+FTt5t91y9fVdGeevHfSUVUiyvcYIBFRvrDxykZHV8Fm95LvOboKJv108ifNsUpQaY6VgtIR1SEqEBggEVG+kJGd4egqWOXMgzP45fQvEAQBFx5e0KSnZaY5sFaG9IM33dmC6VnpSM9Kz+sqERUIDJCIKF9Iy8pfgYU5zZY2w8gdI+E03Qmn7p/SpJ+8n7+6rfTHdum2IAGA10wv7LlpuG0TUVHHAImI8oUBQQNMXleqlHic/hgb/tuQr1ubijnlzfJySS+SDNaOkuOscJacCzC8p/Pvne1WL6LCggESEeULDX0amryepcpCh5Ud0Htjb0w7NC2PamXo5pObJrvR9AOS3PBv3L8o9105fLLzE7N5M5TSYFIuqKpYoqLd6kZUWDBAIqJ8QakyPWA4S5mF8wnnAQBzjs7JiyoZOPPgDKr/XB3+c/2N5smLgc9fH/4a2apsLDy90GS+TGWmwfdKv4sNAB6kPLBr/YgKAwZIRJQvmAssdDdcVQkq/BPzT25XyUDLiJYADNcV0vXn5T9zvR6br27WHMsFPACQrcrGsG3DsObiGkn67We3DfLmRasXUUHDAImI7CbmWQxG7RiFG09uWH1veGQ4AMDbzVv2epZSuiP92L1jra9gDukGacbMPzU/V+ug30W26PQi2XwuX7tg+bnlFpXZ8aWOOa0WUaHDAImI7KbqT1Wx8PRC1Pi5hs1lGGud2X1zt+T8QoI4tT5blY3DMYdR7adqmHF4hs3PLSjOxp2VnI/aOQqf7foMqZmpNpd5PPZ4TqtFVOgwQCIiu5GbIWWL/f33AwA+bPShJm1r9FZJnufZz7H35l64fO2Ctsvb4vaz25h0YJJdnm9MtdLVcrV8SzRb2swgbd7JeQheEqw5t3Zfu6SMJMQ8i8lx3YgKEwZIRJTvtK/aHpmTMhHRPUKTVqlkJYN8nX7vZLKc51nPoZimgGKaAkkvjI8bslRAyQCL8lky/d4WT58/NXrt2uNrmufKrWv0d7+/TZb9X+J/OascUSHDAImI7EJ3vy/A9iDhi5AvAAAuzi6SdN3tMkw5cPsAnjx/Ipa15wtNeqk5pfD7hd9tqpPaoZhDRq89CNPOBLv19BaG/j0UiWmJOXqerphnMSjzbRmTedRT+vff3i9JP/rhUdkAU1dx1+I5qyBRIcMAiYjswu8HP8n58+znJvOnZKRg9pHZuPnkJgCghX8LAMArVV7JUT1eXfkqyn5bFkvOLsEvZ36RXPtg8we4/dRwFpclHqU/Mnm9jIc2eKn+c3UsjVqKCt9XsOlZcsL2hJnNE5cSh9tPbxsEk1nKLDgpTP+633ZtGxTTFNh8ZbPJfERFBQMkIsoVUXFRJq9/ufdLhEeGo/mvzQFop6ub+yAHgJBKIWbzDNs2TDb9zrM7Zu998vwJ9t7cK5lCv+zfZSbvcXV2lU2PiIqQTbfWpiubzOapNr8aqs03HCcV5BsEBRQm7/3u2HcAgLf/eNu2ChIVMgyQiCjH9t3aZ5DW5rc2JrvZ9t7aCwCa7jD1OkjmAqSyHmXRs25PW6uKbmu7oWVES/x0wniXXdvlbdHp906S4GbcvnEmy1Uo5AOQwX8PhmKaAree3rKtwkbc++wetr+73WSe9xu+j4dfPEQp91IWBZ5EpJUv/scsXLgQgYGBcHd3R4sWLXDq1Cmjedu1aweFQmHw6tq1qybPpk2b0KlTJ5QtWxYKhQLnzp3Lg3dBVHR1XCW/jo5cUPAo/RGO3j2Km09vStKNtSBt7iPt8vFy9cKwYPnWIWP+7K1dvDEtKw3H7x3HmN1jjC6yeOnhJQDA6ourAQDj94236nlyXpr/Uo7LUCvlXgr+Jf3RpUYXKKcYX2BzYZeFKO9VHoBhAOdfwh9N/JqgvGd5u9WLqDBxeIC0fv16hIWFYerUqYiKikJQUBA6d+6Mhw8fyubftGkT4uLiNK9Lly7B2dkZvXr10uRJS0tD69atMWeOY7YjICqshv09DA0WNcDzLNPji9T+vCJdVXrBqQUo/115tP6ttSQ9LiUO5+LPAQCcnaSrOgf5BEnOvVy84OXqJUnTXQ5AX2CpQLxdR77b6Oqjq5rj51nPMXjrYPx19S9NmgABVxKvmN3apF75eiav20MV7yqa46fjtLPZTLUMlXQrqTnW72LrXa83zg49qwmg5O4hKsocHiDNnTsXQ4YMwaBBg1C3bl0sXrwYnp6eWLZMvr+/TJky8PX11bz27t0LT09PSYD0wQcfYMqUKQgNDc2rt0FUaP15+U9cSbwCAFgStQSXHl4yCHyMGbdvHLZf03YDGdtcteJc7WapxZyKSa7pz67Svw5AshyAvisjxbpv7LXR4NqRu0fQdElTXH10Fb9G/YqIfyPQY30PzXWVoEJcapzRstX8SviZzWMqiLNEtiobALCt3zaDa4u7LjZI8y8h3S9OP5Aa31psFbuceFmSnpyRnKN6EhUWDg2QMjMzcfbsWUkg4+TkhNDQUBw/btnKrhEREejbty+8vLzMZzYiIyMDycnJkhcRAQO3DETPDT1R95e6kvSvDn5l9J5xraRjdd5Y+wYAy6f96wdAJdxKSM4vPrwIADg88DAAIHpUtMny3Iu5AwDeqfuOwbVh24bhbNxZ1FlYB5G3Iw2uH7l7BB1WdpCkfdP+G4N8C7uIm8aOajbKaD2WnTM9yNuUX6N+xf2U+wCAuuXrGlwf1tSwy3FBlwWSc90utkGNBqGCl/EZds9ePLOxpkSFh0MDpEePHkGpVMLHx0eS7uPjg/j4eCN3aZ06dQqXLl3C4MGDc1SPWbNmwdvbW/MKCLBsMTiiwm7F+RWy6brjh848OCO5Njt0Nip7V5akxSbFYuX5lRY9U3/jVDdnN9l8baq0gTBVQM2yNSXpprqcXJxcjF77K/ovo9d0TWgzQXP8UumXcPTDo5o6VC9T3eS9tq4NNeTvIZrj0h6lZfO82+Bdyfmbtd6UnOt+X0yt5wSwFYkIyAddbDkRERGBBg0aoHnz5jkqJzw8HElJSZpXbGysnWpIVHgY+3DX3friq7ZfAYDBIOrHzx9j4emFsvfrj43Rb0EyNjvMGL/ixru79Mfb2EKhUEA5RQnVFBVufHoDLQNaaq7pj43SN+Mfw73i4lPj8fWhrxGXIt+Vp+5aUzM2Rmj126uhmqKCMFWAMFUwCBR1z3UHz3d6yXA1cqXK+MBvoqLCoQFSuXLl4OzsjISEBEl6QkICfH19Td6blpaGdevW4aOPPspxPdzc3FCyZEnJi4ik1Ks0m6JeC0j/Q73x/xrj9IPTsvfo79+mP0jbWp4unmhW0XC/MgD4+fWfc1S2mpPCSTZwkxsfpWvygckGaV/u/RJTDk5B+xXtZe/RX6DSVAuZqWDS08VTNn1C6wkGafr/fkRFkUMDJFdXVwQHByMyUtv3r1KpEBkZiZAQ0wvBbdiwARkZGXj//fdzu5pEBOBiwkXJeaYy0yDPiGYjAAA+Xj4G1ywlF2S8U0c7fmh8K9NT7j1cPPBb99/QoEIDbOi1QXLtrdpv4fzH522um/6SA/r0t/iwxKoLqwAA0Y+jka3KxqsrXtXsH6eYpjC5/5o11GOx9MmtXC63rhVRUePwLrawsDAsXboUK1aswJUrVzB8+HCkpaVh0KBBAID+/fsjPDzc4L6IiAj06NEDZcuWNbj25MkTnDt3Dpcvi7MzoqOjce7cOYvGNRGRvGOxxyTnD1IeGOTxdvcGAAxuYvu4QLkWkg29NiBxbCKujbqGWaGzTN7v5uyGehXq4cLwCwYLSioUCjT0aYiLwy/K3tu2Slv0rtcbAHDsw2OY2nYqACDs5TBkTMpAj9o9TD5bfwxSzbI10di3sUE+laCSbaVx+doFB+4ckKS1+LWF5jjhiwT9WyxmrHVLrtVpxI4RNj+HqLAw3R6cB/r06YPExERMmTIF8fHxaNSoEXbt2qUZuH337l04OUl/YUZHR+PIkSPYs8dwx2oA2Lp1qybAAoC+ffsCAKZOnYqvvvoqd94IUSGjP+ZozO4xkvPNVzbjs5DP0L1Wd/wV/RdmvjpTc83ZyRnCVAHd13XH1uitVj03S5llkKZQKFDOsxzKeZYzel/Tik1x5sEZDGo0yGgetdrlasumR/aPhLOTM9b3XA8ACAkIwVftvrKs4gCqlqoqOVfPsFNMkwYhVX+qirtJd9GnXh+zZaZkpmiOTc08M0d3gPr3Hb+XXKtepjpuPLlhc9lEhZHDW5AAYNSoUYiJiUFGRgZOnjyJFi20fzEdPHgQy5cvl+SvVasWBEFAx47yq/cOHDgQgiAYvBgcEVnO3DiUhj4NAQAuzuIHr9zg4U29ze8fps+SsU5y9vffj8MDD8tOeddXzKkYfuv+myRtwesLcjz+ydgWKJNfEcceOSucoVQpcTfpLgBg/X/rc/Q8a6j/nQAYzPz7b8R/ePzl4zyrC1FB4PAWJCLKn8wFSOq900xxdnLGZy9/hh9P/GjRMyuWqCjbJWWJEm4l0KZKG4vzD2w0EAMbDQQgvldzA6wt4eHiAdUUFZZGLUWDCg006epB400rNkV6VnqOn2ML3a5L/S1WXJ1dUcajTF5XiShfY4BERLKyVIZdXbrUg7TVXXHGZlBVK224u7wxt0ff1syEy0v2CI7UFAoFhgYPlaSpW28uJFzAxsuGK3pborS7/PpHtjC2Bx0RaeWLLjYiyn/MtSDJzWKTM7LZSIuf6YjgKC+oA5Ln2c/x4VbDLUemtZumGY+kO2NPV2R/w5W+c1offfrbkxAVZQyQiEiWuQBJvT6Peh0j/QUf1RQKBYSpAn567SesfWctmvg1kc0nt2BhYWGuW62cZzms67kOT758go295VuYGvvZ1vUox1j3KLvZiLQYIBGRrIgo4xvAAuI+ZtasuPxpi0/Rt35fTG83HQDg7eYtuV69tOltOgoyuZl5ugJLBQLQbiPycqWXAWhnrfUP6m/X+hhrQfql6y+aY1u3RSEqLDgGiYhkTdhvuMKyvu3Xt5sdg6Sva82uuPnpTQSUDIDrN9outcLavQYY3+Iksn8kzj44i9ervy5JP/bhMVx9dBU1y9bE+YTzqF+hvl3q8UHDD3A09qjBPm1qus/JUmUV6n8TInMYIBGRzYztH2aOeuD2oYGH0HZ5WwCmt9Ao6DpU7WCQlj4hHR4uHni16qsG1xQKBeqUrwMARrskbbHyrZUQBMFoMKsbEGUqMxkgUZFWeH8jEVGu83TxxNm4swCMj0Eypbm/dqPpwjyzSi4g8XDxcEBNTLf06QZEGdm2rUdFVFgwQCIiq3Sr2U1z7OHioVn0MCkjyeqy3JzdNMeWrKtUWMzqYHq7FEfRXe7gRfYLB9aEyPEYIBGRVVa+tVJz3GtDL83x43TrV2LWbc2Ifhyds4oVINYsfeAoJ+6dcHQViByKARIRmdW1RlfNcSn3UrJ5zC0saY7uXmGFnXsxd0dXwawSbiUcXQUih2KAREQm+Zfwt2iwblpmWo6eU71M4Z3mr8+eK3fbm7rbc9GZRQ6uCZFjMUAiIlkvlX4JALCu5zqL9g/LaQtSUWLpkgiOoN4seMvVLY6tCJGDMUAiIlnqWWXFnIppdqmvXa620fxyU9ktoV69+Y2ab9h0PxFRbsi/7bxE5FDqrUaKORXDoEaD4F/CH838mxnN36teL6PXTLk68iquP7mOlgEtbbqfiCg3MEAiIlnqAMnFyQXOTs54vYZ2tWcXJxeDLjVbFxUs71Xe6ErTRESOwi42IpKlDoDkBhQ7apFDIqK8wgCJiGTpdrHp4xYUhZeXi5fmuDCvbk5kDgMkIjv65vA3aL2stUWzvvK7Zy+eAQBcnA3XJ9L/4Py12695USXKA9ve3aY5XnFuhQNrQuRYDJCI7Gjygck4GnsUv0YV7IDhj//+0BxbsmZP68qtc7M6lId0FwK9+fSm4ypC5GAMkIhyQUHfx6rPxj6a4/KepgdQd6zWETXK1sjtKhV4+XlxSF0PUh5ojgtDSyjZn1KlxDeHv8GhO4ccXZVcxQCJKBc4KQrPfy1z22Ls+WBPoXq/uWXfB/vgW9wXm3pvcnRVTAosFag5TslIcVxFKN+atH8SJh+YjHYr2knSC9uYtXzxW23hwoUIDAyEu7s7WrRogVOnThnN265dOygUCoNX167avaIEQcCUKVPg5+cHDw8PhIaG4vr163nxVogAAArk35WSrSW36nPHah0BAH7F/fK6OgVW28C2eBD2AG/VecvRVTGpbvm6muOKJSo6sCaUX80+OtsgrcPKDnCe7ozl55bnfYVyicMDpPXr1yMsLAxTp05FVFQUgoKC0LlzZzx8+FA2/6ZNmxAXF6d5Xbp0Cc7OzujVS7tI3bfffov58+dj8eLFOHnyJLy8vNC5c2e8eFGwuz2o4Dh897Cjq5CrFr+xGLM6zMLxj447uioFSn7eYkSXehySXwkGwGTI283bIG3/7f0AgEF/Dcrr6uQahwdIc+fOxZAhQzBo0CDUrVsXixcvhqenJ5YtWyabv0yZMvD19dW89u7dC09PT02AJAgC5s2bh0mTJqF79+5o2LAhVq5ciQcPHmDLli15+M6oKNsavbVAjt9YfGYxBm8dbDZfKfdSGN96PKqUqpIHtaK8FlotFIA41oRIX1JGkuY4ITUBVxKvOLA2ucehowYzMzNx9uxZhIeHa9KcnJwQGhqK48ct+8s0IiICffv2hZeXuHbH7du3ER8fj9DQUE0eb29vtGjRAsePH0ffvn0NysjIyEBGRobmPDk52da3REWYIAiS8+SMZHi6eDqoNrYZvn24o6tA+YCzwhkAoBQYIJFpQ7cNxZkHZzTnJd1KOrA29uXQFqRHjx5BqVTCx8dHku7j44P4+Hiz9586dQqXLl3C4MHav3jV91lT5qxZs+Dt7a15BQQEWPtWiAxmrmUpC9bu9voBHhVd6kH3bEEic7ZGb5XMfKzgVcGBtbEvh3ex5URERAQaNGiA5s2b56ic8PBwJCUlaV6xsbF2qiEVJWlZaZLzDGWGkZz509borQZp5z8+74CakKM5O7EFieSZm9moXmC2MHBogFSuXDk4OzsjISFBkp6QkABfX1+T96alpWHdunX46KOPJOnq+6wp083NDSVLlpS8iKx1IeGC5Px51nMH1cQ20Y+jDdIK01+DZDlNFxtbkEjPtEPTTF5/lP4IlxMv51FtcpdDAyRXV1cEBwcjMjJSk6ZSqRAZGYmQkBCT927YsAEZGRl4//33JelVq1aFr6+vpMzk5GScPHnSbJlEOTF271jJ+fPsghUg6Qd4gPaDkooWjkEiY87FnzObp94v9XK/InnA4V1sYWFhWLp0KVasWIErV65g+PDhSEtLw6BB4lTB/v37SwZxq0VERKBHjx4oW7asJF2hUGDMmDH45ptvsHXrVly8eBH9+/dHxYoV0aNHj7x4S1RE6Y85KmgtSNceXzNIU3e1UNGi6WJjC5LD3Hl2B98e/RbJGflr0lBcapyjq5BnHL72fZ8+fZCYmIgpU6YgPj4ejRo1wq5duzSDrO/evQsnJ2kcFx0djSNHjmDPnj2yZX755ZdIS0vD0KFD8ezZM7Ru3Rq7du2Cu7vpFYGJckKAdJDzsnPL0DawrYNqY73TD04bpLEFqWhiC5LjPHn+BPtu7dNs93Pt8TX8+qa4t+PNJzeRmpmKIN8gh9WvsHSfWUIhcOqKgeTkZHh7eyMpKYnjkchi0w9Nx9SDUyVpwtSC899LMc1wEcPU8FR4uXo5oDbkSKN2jMLC0wsx+ZXJmN5+uqOrU6TI/T9U/x5RX0v4IsHo+MAriVew4vwKjG05FmU9y8rmyYkR20dg0ZlFZvM56nefPT+/Hd7FRlQYCIKAJ8+fOLoadsfgqGjiIG37i3kWg4xs0zNbTbVX6HbZG2vFyVRmou4vdTHn6ByU+66cZnVre1JvL6S/ndJXbb+y+7McjQESUQ4pVUo4TXfCTyd/cnRV7Kpa6WqOrgI5CKf529evUb8i8KdAuM8wPcxDbiYpAOy5uQeeM7WLzrZf0V4234/Hf5Scd1jZwcqamvco/REA6ZCCLX22ILyNdKxw62Wt7f7svMYAiSiH/o3/Vzb9jZpv5HFN7Cs+1fxirVQ4sQXJvob8PcRsnoTUBE3woa/z750N0uRarYs5GQ4rPnHvhIW1tExieiIAYETTEZq0rjW7wtXZFW/XeVuTdjT2KBLTEu367LzGAIkoh/SbmtUql6ycxzWxr4K4lxzZh2YlbbYg2Z3+ivuA+H/N9wdftPmtjcXlVPi+Asp+WxZfH/oaAJCamYov9n5hkK/1stZYenYp7jy7Y3Od1QRBwNpLawEALSq1wLVR15A4NlETmK15e40k/48nfkRiWiLOPjib42c7AgMkohxycXaRTVcKShy9exQdVnbApYeX8rhWRLbjNP/cI7cS9an7p6wuR93aNOXgFByPPY7wfYbL4QDi76Gh24ai6k9VZYMza0TFRWmOs5RZqFG2Bsp5ltOkuTq7SvLPOjILFb6vgKZLm+LfOPmW9vyMARJRDhnbkFapUqL1b62x//Z+dFndJY9rZR1OZiVdnOZvX+7FtGOPUjNTJdd+v/C77JgiYaqAHzv/aJAu56/ov7Dg9ALNuZeL/OSKyFuROVpXqenSpprjSiUrGVxXKORb0wFg542dNj/XURggEeWQseBC98MlNjl/7+9X0PaNo9zFFiT7Cqmk3cVBvWfjhv82YELkBHyw+QOD/O83FHeIGPPyGIvKn3N0juT8+07fY1KbSQb53lj7Brxne+O/h/9ZWnWjWga0tCr/xP0T8TDtYY6fm5cYIBHlkEpQSc6reFcBULD++jY3/ZiKFvUYJP2f7dwSlxKHpBdJefIsR9Dt2vrr6l8Ys2sMem/sjVlHZsnm/637b5rjh188RBmPMpjx6gys7LEScZ+bX8n6vQbvoYxHGaPX5x6fa0Xt5ZVwK2H1PT7f++T4uXmJARJRDul/iKj/ssqrDxd7yOnYBCpc1F1sefEzvObiGlScWxGl5pTK9Wc5yvF7xzXHkw5MMrokyFu138LNT29KZqOV9yqPx18+xoQ2E/BB0AfwLe4LYaqAAwMOoG/9vgZlXBp+CSXcSmBIsPGZcx4uHibr+yj9ET7d+SkuJlw099astvrCakQ/isb0Q9Nx++ltu5dvTwyQiHJI90OkW81uaO7fHIDl3RMqQYVsVXau1M1SDJBIlz1bkP747w8opilw9O5R2evvbXpPc6z7PEEQ4DzdGYppCuy4vkP23qN3j2L1hdWSNEEQEL4vHF4zvaCYpoBimgLDtw3H9cfXc/xecpMwVcCmPpssXn+sXWA7pGWmGaTXLV8XAFDctTi+bv+17L0LTy+EIAh49uIZlpxdYvD/f+Gphfj51M9ouLgh7iXfs+p9jG051uT19ze/j9oLa2Pqwal4ffXrVpWd1xggEeXQ82ztCrfreq6zaoBrljILztOd4fK1i0O7ueTGIPWq28sBNaH8QBMgwXSANOfIHPh874NnL57JXs9WZWv2FGv9m/mFA28/vY2zD87iw78+xJqLazQBU9c1XQ3yno8/j9a/tcb7m9+HYpoCS88uxZarW+A03Qmzj86WLFOx+Oxi1FxQ0yF/CFgyAeLlSi/bVPbkVyZLzm+Pvi0ZKD2u1Thsf3c7no17ZjCo2mm6E0rPKY1h24bBY4aHpJ67bu7SHAf8GIBPd34q2QLl6sirRuv0bcdvDdJeq/6abF5jC2PmFwyQiHJo4v6JmmNPF0+LBrgeunMIj9MfS7YMuP7EcX/hbru2zSDtj15/OKAmlB9Y2oI0PnI8HqY9RO8NvbHg1AIopikw9cBUKKYp4D3bG1MPSPcm1N0uA4DB8hfVf66Opkub4rdzv+H9ze9LrukHGo3+10hyPnTbULy1/i2T9f3t398QmxSLDf9tyHHr2JarW/DFni+Qqcw0mU9/1pqcYx8es6kOzfybSc5Lu5eWnLs4u6BLjS7wdvfGhY8vmCwrbHeYprVNf82kn0/9LDkv5V7KqnrOf22+bHr9CvWtKievMUAiyqE9N/dIzo21IGUpswAAo3eORrsV7VDuu3KSKbdPnz/N3Yqa8Pmezx32bMp/9AOkTGWmyYB/7629+GTnJwCA6YfFzW2TM5Ix88hMST7daeIAEP3I8haEV5a/gkfpj3A/+T56rOth8X26RuwYgcrzKqP3xt4oPrO4TWUA4vfjrfVv4YfjP8BjhnY8z+P0x/jpxE+aFaRvPLmBJWeXmCyrb/2+JqfHm3NmyBnNsamB06U9SmNau2lGr887OQ+A2NpmbhV9c2OYdBfPDXs5DNXLVEfVUlUN8h0aeMhkOY5muC45EeWIsRakhLQElPcsj/mntH9N3U+5rzk2ts0AUV5T/wyrBBUysjM0e4jp7tBuSwuMboup3K71phy5ewRhu8OQnpWOv6L/Mpu/deXWWNR1EdZfWo+Fpxfi6QvpHyC6XeOWup98H5/v+Rzr/1uvSVMJKiw5uwRv1HwD/nP9AQBjdo/Bp80/lfxfl7O8+3K8U/cdq+uhK7hiMOaEzkEFrwqawNaYfvX7YerBqSbzWMLY2m9qtcrVwtVHYjdcTFIMFAoFbn56E07TpfUzNdMuP2ALEpGdGWtB2nl9J7xne0vS4lK0U3bVexxZIlOZiQsJF7jAI+UKzVYjKqVkr8F7yfdwPv48PtnxCQJ+DLCp7Ki4KFxJvCJJMzZGRd+qC6vw55U/JWmnBsuvQv3PoH9Qv0J9fP3q1wbBkZp6EHdEVASevXiGf+P+RZV5VYwO6O73Zz9JcKQ2bNswTXCkZi44AoABjQaguKvtLVlqX7b6EgMbDTSbz1xgYym5Pd90/TPoH83x0VhxcL5CocC2ftqu/FVvrbJLXXITAyQiC4zdMxZvrX/LooBE/de3/tiDRWcWGQyGjkvVCZCs2Nhx/L7xCFochN8v/G7xPZb6pPkn2PGu/KwhKhrUP7vr/1svmTyw7do2NPpfIyw4vQAPUh5YVlZ4Kna9px30G7wkGJG3IyV5vN288d+I/xBSKQRb+261qq5NKzY1SBvaZKhVZQz+ezBKzymNJkua4G7SXdRcUFNzTSWoELwkGIppCvxz9x8TpeR//iX90axiM/MZc0h3+5Hw1totULrW7AphqoBn455pFsPMzxggEZnxMO0hvj/+PbZc3YLDMYfN5le3IOnn1f1LXO2P/7QDoS1pQcpWZaPnHz3x4wlxC4LwSPn9l3Ji/uvz8XqN/D39lnLX39f+1hzr7q81fPtwi8tI+CIBwlQBXq5eeKXKK5Jr6vFKagu7LETd8nVx7KNj6FarG+6HiV3PX7b8EqNbjDb5HP3xO6nhqVj8xmJJ2r3PtFPVdXehN2XdpXWIS4mD83RnyR5kuip7m9+Qet076yBMFfBLl18sem5uOzXkFFLCtfvBNfRpaJCnd73eqOJdBXXK1bH5OUcGHcGkNpMwLHiYwTVvd2+ZO/IfjkEiMkN3hpeppfLndhJXp9123XBGmDExSTGaY0sCpAmREyRdDJnKTKy9uBYJaQkWb0sgx9PFE+lZ6ehZt6fNZVDhoduaaW6W1uGBh/HK8lcM0it4VdAcmxvUW9azrOS8YomKmvFO0Y+ijS6s+Gdv8f9CwhcJOHHvBLrW6KppwdXlX9JfMn7q6uOr2H97v8k69fuzn8nr6RPSsfnqZs06Th8Hf4xFbywymn9wk8GITY7F86znmHdynuwij3lFt1vv1cBXcSFBnOHWsVpH7PlAOulEf6zY9ne3W/SMVpVboVXlVjmsqWMxQCIyw83ZTXOs2/e+5uIaySJ36nEOti5It+biGqx+e7XJPN8d+05ynpieiHc3vQtA/OVWr0I9m56tXjPm0+af2nQ/FS66g33NbW7apkobJHyRgAWnFuCzlz9DeGQ4mvg1Mcj3z6B/0Oa3NpK0kEohWPvOWpPl1yxbE91qdpO0agFA9uRsTTBUwasC3qz1pslydEX2F7v4UjNT4aRwgtdM+c1d5Xi5eCF1gtgF+W6Dd1HCtQQ8XTzRoVoHk/e5OLtgZgdxVl9YSBj8S/qbzJ/bfunyC5ZELcHYVmM1M9jMrRN1YMABtAtsl/uVyyfYxUZkhlsxbYCkHnAISFcABsQZIgAwsc1E5AZzs4aePH9iU7m646pKe5Q2kZOKCt0Aydh+YboqeFXA9PbTUdqjNBa/sRhDgw3HALUKMGxN2PPBHlQpVcVk2QqFAlv7bZW0AAGQbSmyVnHX4vB08UTCFwnoWkNcjHJC6wmyeX/o9AMAMUjQ1a1WN7PBkb4A7wCzM85y2/Bmw/HvsH9RsURFTVqAt+HA+/QJ6ehbvy9mvjqzSAVHAAMkIlkrz69Erw298DzrOVIytP31Pxz/AU+eP0HTJYYDQ9WLp9kaqABA1Z+qGl03RX9LBX2WTH2Woxt4+RX3s6kMKlx0x/Xo7iOW0zJvj76Nj4M/xtiWY5E4NtHqGVytK5tfjdsWFbwqYNu72yBMFTCjwwyD65v7bEZYSBiEqYLB4oyFwcxXZ8K3uC++af+NwTUPFw+sfWctwtvYf7xjfscuNiIZA7YMACB2L3i5SJvfy35bVu4WzTiLnPxle+fZHQzbNgzVSldDh6odJB9U/bf0N3nvD8d/wLDgYahRtoYmbcqBKfj68NdIm5BmdIqv7nIE5qbvUtFgrnWjXWA7HI45jHPDzllVbmCpQJPjdMw5OOAgfjj+AzpW62hzGZaoWKKiZJaeNd13BVF4m3CMbz0+RwtWFkb8bUikR7fLSX+VbFPUAYi5IOPdBu9izcU1JvN0XNUR41qNw+zQ2QAsX5Sv5oKakq6Irw+Lm1V6zfQy6KIAgNikWDT/tbnm3B7dFlTwmQuQtvXbBi9Xy8ft2IuzkzO+bPVlrj/nxic38M/df3A45jB8i/s6vDssLzA4MuTwf/WFCxciMDAQ7u7uaNGiBU6dkl/0S+3Zs2cYOXIk/Pz84Obmhpo1a2LHDu2aLSkpKRgzZgyqVKkCDw8PtGzZEqdPn87tt0GFyME7B226Tz0d2tvN9BTW8a3GS6ZOGzPn6BwA2l3Nc0puQ9GPt38s2VZAvUQBFW3mAgJHBEd5ycPFA51e6oRvXv0Go5qPcnR1yEEcGiCtX78eYWFhmDp1KqKiohAUFITOnTvj4UP5qdSZmZno2LEj7ty5g40bNyI6OhpLly6Fv792NsDgwYOxd+9erFq1ChcvXkSnTp0QGhqK+/fvy5ZJpO9e8j3zmUzoUqOL5Fy/i652udo4/pFl4zoylZkmx4C0qdzGIC02KRbJGcn4NepXSfovpw3XYdlxXbogJLvYCDAdIOnus0VUmDk0QJo7dy6GDBmCQYMGoW7duli8eDE8PT2xbNky2fzLli3DkydPsGXLFrRq1QqBgYFo27YtgoKCAADPnz/Hn3/+iW+//RavvPIKqlevjq+++grVq1fHokW293tT0WLLHlMfNvpQc6zfTVW3fF3JeTGnYgbToMt7lpct971N72H3jd2StKFNhuLfYf9CNUWFAwMOGGy1UHleZXjP9saQv4dI0vVbtuQWv2MXGwHAZy9/ZvRaeS/5n1WiwsZhAVJmZibOnj2L0NBQbWWcnBAaGorjx+X/Yt66dStCQkIwcuRI+Pj4oH79+pg5cyaUSnGQaXZ2NpRKJdzd3SX3eXh44MiRI0brkpGRgeTkZMmLiq5sVbbV9zT2a2z02vqe0r2b1H39Y1uOBQBULVXVYOqw2pG7RzS7o6t9/erXaOTbCAqFAs5OzpJpuqZkqbI0x4fuHELwkmCDPEVhrAWZp7/ytS5jwTxRYeOw34aPHj2CUqmEj4+PJN3Hxwfx8fGy99y6dQsbN26EUqnEjh07MHnyZPzwww/45htxamKJEiUQEhKCr7/+Gg8ePIBSqcTvv/+O48ePIy4uTrZMAJg1axa8vb01r4AA2zZhpMJBf780c96s9SYGNxls9HrV0lVl07/t+C3ufXYPNz+9icBSgbJ5dMcHqemuUAxI9z0y5XmWdvfy11ZbtjkoFU2mAmW2IFFRUaD+XFSpVKhQoQKWLFmC4OBg9OnTBxMnTsTixdp9d1atWgVBEODv7w83NzfMnz8f/fr1g5OT8bcaHh6OpKQkzSs2NjYv3g7lU9b+hfxX37/gXszdfEYZ/iX9oVAoLB702j6wvUGaWzE33Pr0FnrU7mHy3ufZYoBU9tuyZlfMpaLN1DijxV0XG71GVJg4LEAqV64cnJ2dkZCQIElPSEiAr6+v7D1+fn6oWbMmnJ214yTq1KmD+Ph4ZGaK+wW99NJLOHToEFJTUxEbG4tTp04hKysL1apVM1oXNzc3lCxZUvKiosvaFiR7SR5vvmtXvVq3vqqlq2JUM9OzbdZdWocsZVaOFrKkokGuBWl6u+kQpgqoVa6WA2pElPccFiC5uroiODgYkZGRmjSVSoXIyEiEhITI3tOqVSvcuHEDKpV2EO21a9fg5+cHV1fptGkvLy/4+fnh6dOn2L17N7p37547b4QKHWOtKzveFWd8rXtnncVlqf8SH9JkiJmcQAm3EmbzvNfwPbN5jLn+5Dp+PPGjzfdT0SG3Jg7Hp1FR49Cf+LCwMCxduhQrVqzAlStXMHz4cKSlpWHQoEEAgP79+yM8XLu8+fDhw/HkyROMHj0a165dw/bt2zFz5kyMHDlSk2f37t3YtWsXbt++jb1796J9+/aoXbu2pkwic4wFSK/XeB3KKUr0qd8H09pNs6gs9bT5Mh5lclyvQwMPGV0NG4DBnla96vbCjFel2yYsP7fcZPlEgHwXG5eAoKLGoT/xffr0QWJiIqZMmYL4+Hg0atQIu3bt0gzcvnv3rmTsUEBAAHbv3o3PPvsMDRs2hL+/P0aPHo1x48Zp8iQlJSE8PBz37t1DmTJl8M4772DGjBlwcXHJ8/dHBdMXe74wek39V/SENhPgUcwDodVCjeYFxB28AaCyd2WLnu1fwh/3U+TX7MrINt31p/+MP3r9AQBYfXE1LideBgBceXTF4L6XK72MYx8e40q6pCHXWqS7aTNRUeDwPwlGjRqFUaPkx04cPHjQIC0kJAQnTpwwWl7v3r3Ru3dve1WPiiC5MUi3R9+WnBdzKoaxrcaaLUv9V/eQJkNwOfEy2lZpazL/wYEH8cHmDzC+1Xj0WN9Dci0lM0X+pv+nuzr35Fcmy6brejbuGdKz0uFb3JfBEUnI/TzYsj4YUUHm8ACJyBH+uvoX5hydg/0D9ktmoOkvnpg5KRPFnIrZHEC4OIktSC7OLljQZYHZ/NXLVNessl3ctThSM1M110IqyY/Nk6PbmlTZuzLOxZ+TXK9Xvh683b3h7W56WxQqmuRakNQ/y0RFBUfdUZHUY30PHL93HCER0qBDd/HEDlU7wMXZJUetKzlZmbqxr3TxSb8SfmbvCfYT6/9GzTc0aV+EGHYZ7nhvh0EakZruGKShTYYi2C8YgxpzHCcVLWxBoiJNv2VFl6ntFiyVk7+617yzBsFLgvEwTX5vQjknBp9AamYqSrmX0qS1qWK4X5uli0tS0SRA0BxPbz8dPsV9TOQmKpwYIFGRE5tk2UKglky7NycnM38qlayEe5/dw7ub3kWrgFYWP083ODLG1Gw4IkEQzGciKuQYIFGR8+6mdzXH79R5R3OsPwjVWZHzjVtzOjXaxdkFG3ptyHE9dDE4InN0W5C4/hEVVfzJpyLnyF3txsW6+5rdfiqdqWaPFiRLtxDJS+lZ6Y6uAhUgnOFIRRUDJCpyvuv4neY4U5mpOf751M+SfA19Gtr8jCVvLIFvcV+s7LHS5jLsKXOS9n2a2meLCIBkZqebM9c/oqKJXWxU5OiuC6TbmvLTyZ80x88nPs/RM4YED8HgJoPzzV/fLs4ueLPWm9gavRXDmw53dHUonyvpVhIreqwAYJ+WVKKCiAESFTnZqmzN8bHYY1AJKklLEiD9C9pW+SU4Ulv99mocvHPQ7OrfRADQP6i/o6tA5FAMkKjIeZ6lbR2KSYqB3w9+Vk2lL6iKuxaXrI9ERETGcQwSFTmTDkySnBeF4IiIiKzDAInyNaVK6egqEBFREcQAifKtYX8Pg/9cfzxOf5ynz/2y5Zd5+jwiIsp/GCBRvrUkagkS0hIQ8W9Enj53arupefo8IiLKfxggUb5njxWtdelvAquPK00TEREDJMr39LcAyanE9EQAQNsqbe1aLhERFR4MkChfSs5I1hzfT7lvt3JHbB+Be8n3AMhvuZFfVr4mIiLHYoBE+ULj/zWGYpoCGdkZAKTBy69Rv9rtOYvOLNIcn35w2uD6a9Vfs9uziIio4GKARA6nElQ4F38OADD7yGwA0gApLStN0+qTW37r/ht2vrcT5b3K5+pziIioYOBK2uRwutt8qLvT/vjvD0me209vAwAqlaxkt+e+WvVV7L+9HwAwsNFAu5VLREQFHwMkcjjdAMnN2Q1KlRLhkeGSPK8sfwXuxdzx34j/UK10NZue8yL7heT8q7ZfIaRSCHrV7WVTeUREVHgxQCKH0w2QQquFYs/NPbL5XmS/wOGYwzYHSPqrcterUA9tqrSxqSwiIircHD4GaeHChQgMDIS7uztatGiBU6dOmcz/7NkzjBw5En5+fnBzc0PNmjWxY8cOzXWlUonJkyejatWq8PDwwEsvvYSvv/4agiDk9lshG+kGSD3W99CMR5Jz8M5Bm5+ju1zA+p7rUcajjM1lERFR4ebQFqT169cjLCwMixcvRosWLTBv3jx07twZ0dHRqFChgkH+zMxMdOzYERUqVMDGjRvh7++PmJgYlCpVSpNnzpw5WLRoEVasWIF69erhzJkzGDRoELy9vfHpp5/m4bsjS+kGSAAwYf8Eo3lXnF+BFedXQDVFBYVCYdVzBGiD5DdrvWldJYmIqEhxaIA0d+5cDBkyBIMGDQIALF68GNu3b8eyZcswfvx4g/zLli3DkydPcOzYMbi4uAAAAgMDJXmOHTuG7t27o2vXrprra9euNdsyRY6Tpcyy+p4lZ5dgQKMBcC/mbvE9uq2ITgqHN54SEVE+5rBPiczMTJw9exahoaHayjg5ITQ0FMePH5e9Z+vWrQgJCcHIkSPh4+OD+vXrY+bMmVAqtWNLWrZsicjISFy7dg0AcP78eRw5cgSvv/660bpkZGQgOTlZ8qK8k63KNnrN2LYfH2//GOP2jrPqObpdbApY1/pERERFi8MCpEePHkGpVMLHx0eS7uPjg/j4eNl7bt26hY0bN0KpVGLHjh2YPHkyfvjhB3zzzTeaPOPHj0ffvn1Ru3ZtuLi4oHHjxhgzZgzee+89o3WZNWsWvL29Na+AgAD7vEmyiKkA6cuWXxq9tvD0QpPlxqfGY/7J+biYcBEAoBS0gTRbkIiIyJQCNYtNpVKhQoUKWLJkCZydnREcHIz79+/ju+++w9Sp4g7sf/zxB1avXo01a9agXr16OHfuHMaMGYOKFStiwIABsuWGh4cjLCxMc56cnMwgKQ9lqYx3sY15eQwuPryIzVc3G+zJVszJ+I/vX1f/Qo/1PTTnwlQBz7OeAwBcnV3h7GTfDXCJiKhwcViAVK5cOTg7OyMhIUGSnpCQAF9fX9l7/Pz84OLiAmdn7YdbnTp1EB8fj8zMTLi6umLs2LGaViQAaNCgAWJiYjBr1iyjAZKbmxvc3Nzs9M7IWsZakFoGtIS3uzc29t6I+NR4vLHmDZyNO2tRmbrBkdrzbDFA8ijmYXNdiYioaHBYP4OrqyuCg4MRGRmpSVOpVIiMjERISIjsPa1atcKNGzegUmlbEq5duwY/Pz+4uroCANLT0+HkJH1bzs7OknsofzEWIK3vuV5z7FvcF2eGnpFcz1BmGNyz4/oOrL+03iA9NilWs32JhwsDJCIiMs2hAzHCwsKwdOlSrFixAleuXMHw4cORlpammdXWv39/hIdrV1QePnw4njx5gtGjR+PatWvYvn07Zs6ciZEjR2rydOvWDTNmzMD27dtx584dbN68GXPnzsVbb72V5++vMEhITZDM/tp1YxcU0xT45fQvdnuGsQBJblsRU4OrVYIKXdd0Rd8/+xpcqzyvMh6lPwJgfOA3ERGRmkMDpD59+uD777/HlClT0KhRI5w7dw67du3SDNy+e/cu4uLiNPkDAgKwe/dunD59Gg0bNsSnn36K0aNHS5YE+Pnnn9GzZ0+MGDECderUwRdffIFhw4bh66+/zvP35yiXHl5CWmYaALHl5J+Yf2wqZ9eNXfD9wRef7/lck/b6anE24MgdIxHwo+E4rZXnV0IxTYEfj/+oSTO3SKd6mr9u11dDn4ayebe9u81oOUkvkkw+p+OqjgCAW09vmcxHRESkELjEtIHk5GR4e3sjKSkJJUuWdHR1rLLn5h50/r0zAHED1vPx5/Fv/L/Y1HsT3qojbUV7+vwpPFw8ZNcSinkWg8CfAjXnaRPS4OniCcU0aQuOMFX88VGqlIhNjkXVn6pqrqmmqOA0XYzBN/fZjB61e8jWefeN3Xht9Wto5NtIs4p2/Qr1cXH4RYO8giBoytR9vkpQYdrBaZh+eLrsMwzKmcofeyKiwsaen98FahZbURMVFwVnhTOCfIMsvmfNxTWa4+XnlmuO3/7jbQBA9Kho1CxbE0kvklDmW3GrDd1gIUuZhY+3fYxl55ZJyvWa6QW/4n4Gz1NMU8BJ4WQwwwyAJJB5a/1b2PvBXnRc1RGl3UvjybgnmmvqLrZiTsVQo0wNXH9yHX3rGXaTAYBCocDVkVdRe2FtuDi54MnzJ4hLiUP9RfVl87+Y+ALuMyxfTJKIiAhggJSvXEy4iCN3j2Bgo4FQCkoELwkGAGRMyoCrs6tFZRR3LW7yeq0FtSBMFXA+4bwmTTFNgbIeZfH4+WOT98alxsmmywVHctRdXE9fPMWem3vQ6aVOAKSzy/4e9Df23NyD3vV6Gy2nlHspAOLyAGW/LWvymW7FODuRiIisx9Xy8omT906i4eKGGLFjBDxneiIqLkpzTT37Su3o3aMYv288riRegWKaAm2Xt9Vcs3TrDW83b8m5ueDI3tTdgACQmpkKQAzufIv7on9Qf5Pvw8XZxaJnPBr7SDb9q7ZfWV5RIiIqktiC5GBKlRLFvjb8Z9ANenpt6IX+Dfsj4t8IJKYn4nLiZQDAnKNzAACHYw4jJSMF6/9bjx+O/2D2mYppCsx8dabNdW4Z0BLHYo8ZvR49Khq1FtSyuDzdAMkSLk6mA6SU8BR4uXhpNrOtWbYmrj2+prnepkobi+tGRERFE1uQHCBLmYXRO0fj7+i/MXbvWLP5993ah/5b+uNQzCFNcKSv5OySGPL3ENlrb9V+C2eHShdYnLB/gkV1/aXLLxCmCvik+SfoWqMr0iak4eiHR/Fx8MeSfL3q9sLVkVdxP+w+apatiYg3IxBaLRT3w+6juX9zs+8PAKIfR1tUJ1MraANioKUOjgBg9/u7Jdcfpj206DlERFR0MUDKQ4IgYPTO0XD9xhXzT83Hm+vexI8nfjR/ow3uh93XHNcoUwO1y9U2mnfKK1MAiGOA5oTOQexnsfhn0D9QTVFheLPhAID5r8/Htne3adYQWvTGIsR9rh2TVMypGGqVq4WKJSoCAD5s/CH2frAXFUtUxMnBJzGmxRgAwPR22llmcSni/X9F/wUARoM/fZZ2sakFlgpEt5rdNOc1ytSw6n4iIip6GCDloQsJFzD/1Pxcf85nL3+GiiUq4t0G78LV2RUfN/3Y5OKIX7X7CldHXkXqhFR82epLVCpZCa0rt5a0wsjxLe6rWbixfWB7k3nndp6LB2EP8EHQB5o03YHiABDeOlz/NlnOCuv3URvz8hjNcRO/JlbfT0RERQsDpDykHmtjyuDGg7Gx10aLy/xn0D+aIOXLll/i7TpvY1q7aQCA39/6HY+/fIyqpatqzuUoFArUKlfLph3ur39yHcu7L8eHjT80mU+hUMCvhJ9kdezXV78umQFXxbuKRc80F7jJaR/YHkObDMXcTnNtup+IiIoWDtLOQwKML054bdQ1/PHfH/ii5RdwK+aGxr6N8W/8v1j7zlpExUXhu2PfSfKrpqg0H/SZkzPxIvuFwSBnhUIhSXuv4Xt4t8G7yFBmIHhJMC4nXkb1MtVz9J5eKvMSXirzksX59ccPOU/XtgZ1fKljjurSyLcRfu32q+w1hUKB/3X7X47KJyKiooMBUh7631njH9A1ytbAxFcmas6jhkUhU5kJV2dX9K3fF6XcS2Hi/olY8PoCjGw+UnJvMadiFs8AUygUcC/mji19tmDeiXkY13qcbW8mF5T3LG9x3oY+DXEh4YIk7d9h/9q7SkREVESxiy0PmZuerk93ccjw1uGIGRODEc1G2KUuNcrWwMKuC1HZu7JdyrNGrbLySwB4uHjIpsvhOCIiIspNDJDyUMSbEbLpujO7jFEoFKjsXblQjJ/pWbenQdoPncyv36QrvHW4xauLExERWYsBUh5SKBTY2ncrOlTtIFmbZ1DjQQ6sVd7beWOnQdrQ4KFWlVGzbE08G/fMTjUiIiKS4hikPNatVjd0q9UNmcpMTZp/CX8H1ijvDQgaINlK5buO31k8hkqXNV1yRERE1mALkoO4OrsiNTwVGZMyCkW3mTVGNhuJgY0Gas6/aPmFzWWV8ywHAGhasWlOq0VERKTBFiQH8nL1cnQVHMLZyRm/df8NL5V+CYGlAnNU1pFBRzD/5HyMbz3ePpUjIiICoBAEwfjiPEVUcnIyvL29kZSUhJIlSzq6OkRERGQBe35+s4uNiIiISA8DJCIiIiI9DJCIiIiI9DBAIiIiItLDWWwy1OPWk5OTHVwTIiIispT6c9se888YIMlISUkBAAQEBDi4JkRERGStlJQUeHt756gMTvOXoVKp8ODBA5QoUcLuizi++uqrOHv2rF3LJCIiKoj279+P4OBgu5UnCAJSUlJQsWJFODnlbBQRW5BkODk5oVKlSrlSdrFi/JYTEREBQPHixe2+3mBOW47UOEibiIiISA8DJCIiIiI9DJDyWNu2bR1dBSIiIodzcXGBn5+fo6thFAdpExEREelhCxIRERGRHgZIRERERHoYIBERERHpYYBEREREpIcBEhEREZEeLutshpubGzIzMx1dDSIiIsqh5cuXY8CAARblZQuSGdnZ2Y6uAhEREdlBUFCQxXkZIJmhVCohCAK4XBQREVHBNnv2bIvzMkAiIiKiIiE2NtbivAyQiIiIqEhITEy0OC8DJCIiIioSHj9+bHFe7sVmBYVC4egqEBERkY0UCgVUKpVFedmCREREREVCqVKlLM7LAMmM77//HgqFgq1HREREBdy0adMszssuNjNcXV2RlZXl6GoQERFRDh04cADt2rWzKC8DJCIiIiI97GIjIiIi0sMAiYiIiEgPAyQiIiIiPQyQiIiIiPQwQCIiIiLSwwCJiIiISA8DJCIiIiI9DJCIiIiI9DBAIiIiItLDAImIiIhIDwMkIiIiIj3/B48jl9Ezc1O5AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Create a figure and axis object\n", - "fig, ax = plt.subplots(2 , 1)\n", + "# print (df_concat_btc.head(3))\n", "\n", - "# Plot the data\n", - "ax[0].plot(df_concat_btc['date'], df_concat_btc['close_BTC'], 'blue')\n", - "# ax[0].plot(df_concat_btc['date'], df_concat_btc['vwap_BTC'], 'green')\n", - "\n", - "# Customize the plot\n", - "ax[0].set_title('PAIR-BTC-USDT')\n", - "ax[0].set_xlabel('date')\n", - "ax[0].set_ylabel('close')\n", - "\n", - "ax[1].plot(df_concat_btc['date'], df_concat_btc['vwap_BTC'], 'green')\n", - "# ax[1].plot(df_concat_btc['date'], df_concat_btc['volume_BTC'], 'red')\n", - "\n", - "# Show the plot\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 143, - "id": "a7c8b332-cd4a-455f-b7cf-381aec15c456", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " date close_ltc volume_ltc vwap_ltc\n", - "0 1-0-0 0.8317 110.056253 0.831662\n", - "1 1-0-1 0.8312 176.868598 0.831441\n", - "2 1-0-2 0.8315 52.367396 0.831319\n" - ] - } - ], - "source": [ "# LTC\n", "df_concat_ltc = df_concat[df_concat['instrument_id'] == 'PAIR-LTC-USD']\n", "\n", @@ -376,27 +264,8 @@ "df_concat_ltc = df_concat_ltc.drop('vwap', axis = 1)\n", "df_concat_ltc = df_concat_ltc.drop('instrument_id', axis = 1)\n", "\n", - "print (df_concat_ltc.head(3))" - ] - }, - { - "cell_type": "code", - "execution_count": 148, - "id": "0a27972a-f457-4ca5-8530-d6c87c7d9d91", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " date close_eth volume_eth vwap_eth\n", - "0 1-0-0 0.376204 37.497964 0.376108\n", - "1 1-0-1 0.375942 11.703305 0.376013\n", - "2 1-0-2 0.376096 145.335061 0.376016\n" - ] - } - ], - "source": [ + "# print (df_concat_ltc.head(3))\n", + "\n", "# ETH\n", "df_concat_eth = df_concat[df_concat['instrument_id'] == 'PAIR-ETH-USD']\n", "\n", @@ -413,63 +282,379 @@ "df_concat_eth = df_concat_eth.drop('vwap', axis = 1)\n", "df_concat_eth = df_concat_eth.drop('instrument_id', axis = 1)\n", "\n", - "print (df_concat_eth.head(3))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e94efeb3-eeeb-467b-9493-b305a3bf1a52", - "metadata": {}, - "outputs": [], - "source": [ + "# print (df_concat_eth.head(3))\n", + "\n", "# XRP\n", - "df_concat_ltc = df_concat[df_concat['instrument_id'] == 'PAIR-LTC-USD']\n", + "df_concat_xrp = df_concat[df_concat['instrument_id'] == 'PAIR-XRP-USD']\n", "\n", "# Reset Index\n", - "df_concat_ltc = df_concat_ltc.reset_index(drop = True)\n", + "df_concat_xrp = df_concat_xrp.reset_index(drop = True)\n", "\n", "# Rename Vars\n", - "df_concat_ltc['close_ltc'] = df_concat_ltc['close']/100.00\n", - "df_concat_ltc['volume_ltc'] = df_concat_ltc['volume']\n", - "df_concat_ltc['vwap_ltc'] = df_concat_ltc['vwap']/100.00\n", + "df_concat_xrp['close_xrp'] = df_concat_xrp['close']\n", + "df_concat_xrp['volume_xrp'] = df_concat_xrp['volume']\n", + "df_concat_xrp['vwap_xrp'] = df_concat_xrp['vwap']\n", "\n", - "df_concat_ltc = df_concat_ltc.drop('close', axis = 1)\n", - "df_concat_ltc = df_concat_ltc.drop('volume', axis = 1)\n", - "df_concat_ltc = df_concat_ltc.drop('vwap', axis = 1)\n", - "df_concat_ltc = df_concat_ltc.drop('instrument_id', axis = 1)\n", + "df_concat_xrp = df_concat_xrp.drop('close', axis = 1)\n", + "df_concat_xrp = df_concat_xrp.drop('volume', axis = 1)\n", + "df_concat_xrp = df_concat_xrp.drop('vwap', axis = 1)\n", + "df_concat_xrp = df_concat_xrp.drop('instrument_id', axis = 1)\n", "\n", - "print (df_concat_ltc.head(3))" + "# print (df_concat_xrp.head(3))\n", + "\n", + "df_M1 = pd.merge(df_concat_xrp, df_concat_eth, on = 'date', how = 'outer')\n", + "# print (df_M1.head(3))\n", + "# print (\"M1: \", df_M1.shape[0])\n", + "df_M2 = pd.merge(df_M1, df_concat_ltc, on = 'date', how = 'outer')\n", + "# print (df_M2.head(3))\n", + "# print (\"M2: \", df_M2.shape[0])\n", + "df_M3 = pd.merge(df_M2, df_concat_btc, on = 'date', how = 'outer')\n", + "# print (df_M3.head(3))\n", + "# print (\"M3: \", df_M3.shape[0])\n", + "\n", + "# Drop rows with any NaN value and assign it to a new DataFrame\n", + "# sample = df_M3.dropna(axis = 0).reset_index(drop = True)\n", + "print (\"========================================\")\n", + "print (sample.head(3))\n", + "sample_size = sample.shape[0]\n", + "print (\"test sample size: \", sample_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "id": "92700c76-8eac-4ebb-86d3-27066486c437", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAGzCAYAAADUo+joAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACDEklEQVR4nO3dd3hTVR8H8G9aOoGW2QEUyt4ULFDZoEVERECZiiAOEBCRqkAFisiSKTKkgmzZyF4CZchSNoLsXUYLZbRQoPO+f9w34yY3aZKmuUn7/TxPnt6ce+65J9Amv5ypEgRBABERERFpuChdASIiIiJHwwCJiIiISA8DJCIiIiI9DJCIiIiI9DBAIiIiItLDAImIiIhIDwMkIiIiIj0MkIiIiIj0MEAiIiIi0sMAiYiIiEgPAySiPG7hwoVQqVSah6enJypVqoQvvvgC8fHxkrxbt26FSqVCiRIlkJmZKVtecHAw3n77bUmabvkqlQo+Pj5o1qwZtmzZYlYdmzdvLrne3d0dZcuWRe/evREbG2v0PsYee/fuBQAkJSVh1KhRCAkJQYECBeDl5YUaNWpgyJAhuHv3bpb1knutaseOHYNKpcLChQsl6QcOHEDr1q1RsmRJeHp6onTp0mjbti2WLVtm9N8sX758KFKkCEJDQzFw4ECcO3fO5L+Pscf333+f9T82EQEA8ildASJyDD/88APKli2Lly9f4sCBA5g9eza2bt2Ks2fPwtvbGwCwdOlSBAcH48aNG9i9ezfCw8PNLr9ly5bo0aMHBEHAzZs3MXv2bLRt2xbbtm1Dq1atsry+VKlSGD9+PAAgNTUV586dQ3R0NP7880+cP38e3t7eWLJkieSaxYsXY+fOnQbpVatWxbVr1xAeHo5bt26hU6dO6N27N9zd3fHvv/9i3rx5WLduHS5dumT26zPH6tWr0aVLF9SuXRsDBw5E4cKFcf36dfz111+YO3cu3n//fUl+3X+zxMREnD59GosWLcIvv/yCCRMmICIiAgAwbNgwfPrpp5rrjh49iunTp+O7775D1apVNem1atWy6eshytUEIsrTFixYIAAQjh49KkmPiIgQAAjLli0TBEEQnj17JuTPn1+YPn26UKdOHeGjjz6SLa9MmTJCmzZtJGkAhP79+0vSzp07JwAQWrdunWUdmzVrJlSvXt0gfebMmQIAYceOHbLX9e/fX5B7m0tLSxNCQkIEb29vYf/+/QbnExMThe+++y7Lesm9VrWjR48KAIQFCxZo0qpVqyZUr15dSElJMcgfHx8veS73byYIgpCQkCA0aNBAACBs2bJF9t6rV68WAAh79uzJ8jUQkTx2sRGRrNdeew0AcP36dQDAunXr8OLFC3Tq1Aldu3bF2rVr8fLlS6vLr1q1KooVK4arV69aXUZAQAAAIF8+yxrD//jjD5w+fRrDhg1D48aNDc77+Phg7NixVtfLmKtXr6JevXpwd3c3OOfn52dWGUWLFsWKFSuQL1++HKkjEYkYIBGRLHXgUrRoUQBi91qLFi0QEBCArl274unTp9i0aZPV5ScmJuLx48coXLiwWfkzMjKQkJCAhIQE3Lt3D7t378bIkSNRoUIFNGrUyKJ7b9y4EQDw4YcfWlzv7ChTpgxiYmJw+/btbJVTunRpNGvWDH///TeSkpJsVDsi0sUAiYgAiAFLQkICbt++jZUrV+KHH36Al5cX3n77bdy/fx+7du1C165dAYgf0A0aNMDSpUvNLv/ly5dISEjAgwcPcPz4cXTt2hUZGRno2LGjWddfuHABxYsXR/HixVGiRAm8/vrryMzMxI4dO2RbZEw5f/48fH19ERQUZNF12TVkyBDExsaifPnyeO211xAVFYUDBw4YHfBuSo0aNZCZmYkbN27YvqJExACJiETh4eEoXrw4goKC0LVrVxQoUADr1q1DyZIlsWLFCri4uOC9997T5O/WrRu2bduGx48fm1X+vHnzULx4cfj5+aFu3bqIiYnB4MGDNQONsxIcHIydO3di586d2LZtG6ZNm4bExES0bt0aDx48sOi1JiUloWDBghZdYwsff/wxtm/fjubNm+PAgQMYPXo0mjRpgooVK+LQoUMWlVWgQAEAwNOnT3OiqkR5HmexEREAYNasWahUqRLy5csHf39/VK5cGS4u4neo33//HfXr18fDhw/x8OFDAECdOnWQmpqK1atXo3fv3lmW365dO3zxxRdITU3F0aNHMW7cODx//lxzDwB48OABMjIyNM8LFCigCQTy588vmTX35ptvonHjxqhbty5+/PFHTJkyxezX6uPjg2vXrpmV99mzZ3j27JnmuaurK4oXL272vVQqleR5q1at0KpVKzx//hzHjx/HypUrER0djbfffhsXLlwweyySuk5KBHpEeQEDJCIC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vvgCKpWKrUdERERObuTIkWbnZRdbFhgYERER5Q579uxB8+bNzcrLlbSzwPiRiIgo72EXGxEREZEeBkhEREREehggEREREelhgERERESkhwESERERkR4GSERERER6GCARERER6WGARERERKSHARIR5SrNmzfHV199pXQ1iMjJMUAiojxr7969UKlUePLkidJVISIHw61GZGRmZuLu3bsoWLAg92IjcjLp6elISUlBUlJSlnmTk5MBAElJSXBx4fdFImcnCAKePn2KEiVKZPtvmpvVyrh9+zaCgoKUrgYRERFZITY2FqVKlcpWGWxBklGwYEEA4j+wj4+PwrUhIiIicyQlJSEoKEjzOZ4dDhEgzZo1C5MmTUJcXBxCQkIwY8YM1K9fXzZv8+bNsW/fPoP0t956C1u2bEFaWhqGDx+OrVu34tq1a/D19UV4eDh+/PFHlChRwqz6qLvVfHx8GCARERE5GVsMj1G8033lypWIiIjAyJEjceLECYSEhKBVq1a4f/++bP61a9fi3r17msfZs2fh6uqKTp06AQCeP3+OEydOYMSIEThx4gTWrl2Lixcv4p133rHnyyIiIiInpvgYpLCwMNSrVw8zZ84EIA6QDgoKwoABAzB06NAsr582bRqioqJw79495M+fXzbP0aNHUb9+fdy8eROlS5fOssykpCT4+voiMTGRLUhEREROwpaf34q2IKWmpuL48eMIDw/XpLm4uCA8PByHDx82q4x58+aha9euRoMjAEhMTIRKpUKhQoVkz6tnvOg+iIiIKO9SNEBKSEhARkYG/P39Jen+/v6Ii4vL8vojR47g7Nmz+PTTT43mefnyJYYMGYJu3boZjSbHjx8PX19fzYMz2IhI1/O05+CEX6K8RfExSNkxb9481KxZ0+iA7rS0NHTu3BmCIGD27NlGy4mMjERiYqLmERsbm1NVJiInc+PJDeQflx8VZ1RUuipEZEeKzmIrVqwYXF1dER8fL0mPj49HQECAyWuTk5OxYsUK/PDDD7Ln1cHRzZs3sXv3bpN9kR4eHvDw8LD8BRBRrlf257IAgKuPrypcEyKyJ0VbkNzd3REaGoqYmBhNWmZmJmJiYtCgQQOT165evRopKSno3r27wTl1cHT58mXs2rULRYsWtXndiSjveZn+UukqEJGdKN7FFhERgblz52LRokU4f/48+vbti+TkZPTq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UKJgCaWrlesputXIypUrERERgejoaISFhWHatGlo1aoVLl68CD8/P4P8qampaNmyJfz8/LBmzRqULFkSN2/eRKFChTR5Hj9+jEaNGqFFixbYtm0bihcvjsuXL6Nw4cJ2fGVERES2UbdEXdwadEvzvKBHQQVrk3eoBEFQrCMzLCwM9erVw8yZMwEAmZmZCAoKwoABAzB06FCD/NHR0Zg0aRIuXLgANzc32TKHDh2KgwcPYv/+/VbXKykpCb6+vkhMTISPj4/V5RAREZH92PLzW7EuttTUVBw/fhzh4eHayri4IDw8HIcPy68QunHjRjRo0AD9+/eHv78/atSogXHjxiEjI0OSp27duujUqRP8/PxQp04dzJ0712RdUlJSkJSUJHkQERFR3qVYgJSQkICMjAz4+/tL0v39/REXFyd7zbVr17BmzRpkZGRg69atGDFiBKZMmYIxY8ZI8syePRsVK1bEn3/+ib59++LLL7/EokWLjNZl/Pjx8PX11TyCgoJs8yKJiIjIKSk6BslSmZmZ8PPzw5w5c+Dq6orQ0FDcuXMHkyZNwsiRIzV56tati3HjxgEA6tSpg7NnzyI6Oho9e/aULTcyMhIRERGa50lJSQySiIiI8jDFAqRixYrB1dUV8fHxkvT4+HgEBATIXhMYGAg3Nze4urpq0qpWrYq4uDikpqbC3d0dgYGBqFatmuS6qlWr4o8//jBaFw8PD3h4eGieq4dlsauNiIjIeag/t20xvFqxAMnd3R2hoaGIiYlB+/btAYitPzExMfjiiy9kr2nUqBGWLVuGzMxMuLiIvYOXLl1CYGAg3N3dNXkuXrwoue7SpUsoU6aM2XV7+vQpALAViYiIyAk9ffoUvr6+2SpD0S62iIgI9OzZE3Xr1kX9+vUxbdo0JCcno1evXgCAHj16oGTJkhg/fjwAoG/fvpg5cyYGDhyIAQMG4PLlyxg3bhy+/PJLTZmDBg1Cw4YNMW7cOHTu3BlHjhzBnDlzMGfOHLPrVaJECcTGxqJgwYJQqVQ2fc2hoaG4cuWKTcskIiJyRrt370ZoaKjNyhMEAU+fPkWJEjZYJ0pQ2IwZM4TSpUsL7u7uQv369YW///5bc65Zs2ZCz549JfkPHTokhIWFCR4eHkK5cuWEsWPHCunp6ZI8mzZtEmrUqCF4eHgIVapUEebMmWOPl2KWypUrCwD44IMPPvjgI88/jhw5ovTHslGKroOUF1WpUsWgC5CIiCgvOnLkCOrVq6d0NWQpvtUIERERkaNhgGRnTZo0UboKREREinN1dUVgYKDS1TCKXWxEREREetiCRERERKSHARIRERGRHgZIRERERHoYIBERERHpYYBEREREpEfRrUacga23GiEiIiJlLFy4ED179jQrL1uQiIiIKE8ICQkxOy8DpCwIgqB5EBERkfMaN26c2XkZIBEREVGecOfOHbPzMkAiIiKiPCE+Pt7svNxqxAIcsE1EROS8vL29kZycbFZeBkgWYIBERETk3MwNe9jFRkRERHmCm5ub2XkZIGXhiy++gEqlYusRERGRkxs5cqTZednFlgUGRkRERLnDnj170Lx5c7PyciXtLDB+JCIiynvYxUZERESkhwESERERkR4GSERERER6GCARERER6WGARERERKSHARIRERGRHgZIRERERHoYIBERERHpYYBEREREpIcBEhEREZEeBkhEREREev4Hy73hByHbkmMAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a figure and axis object\n", + "fig, ax = plt.subplots(2 , 1)\n", + "\n", + "# Plot the data\n", + "ax[0].plot(df_concat_btc['date'], df_concat_btc['close_btc'], 'blue')\n", + "# ax[0].plot(df_concat_btc['date'], df_concat_btc['vwap_btc'], 'green')\n", + "\n", + "# Customize the plot\n", + "ax[0].set_title('PAIR-BTC-USDT')\n", + "ax[0].set_xlabel('date')\n", + "ax[0].set_ylabel('close')\n", + "\n", + "ax[1].plot(df_concat_btc['date'], df_concat_btc['vwap_btc'], 'green')\n", + "# ax[1].plot(df_concat_btc['date'], df_concat_btc['volume_BTC'], 'red')\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "id": "3c6d80b3-4a46-432b-9b88-6a264f9b7a7e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "First part of the DataFrame:\n", + " date close_xrp volume_xrp vwap_xrp close_eth volume_eth \\\n", + "13356 7-23-25 0.4995 8673.755143 0.499557 0.368412 53.830657 \n", + "13357 7-23-26 0.4996 34403.036949 0.499605 0.368370 89.163024 \n", + "\n", + " vwap_eth close_ltc volume_ltc vwap_ltc close_btc volume_btc \\\n", + "13356 0.368548 0.8003 74.882298 0.800537 0.69375 1.598973 \n", + "13357 0.368411 0.8002 30.666566 0.800233 0.69381 1.612419 \n", + "\n", + " vwap_btc \n", + "13356 0.693999 \n", + "13357 0.693838 \n", + "\n", + "Second part of the DataFrame:\n", + " date close_xrp volume_xrp vwap_xrp close_eth volume_eth \\\n", + "13358 7-23-27 0.4995 8240.166990 0.499561 0.368369 108.118487 \n", + "13359 7-23-28 0.4995 21256.045405 0.499585 0.367813 229.373936 \n", + "\n", + " vwap_eth close_ltc volume_ltc vwap_ltc close_btc volume_btc \\\n", + "13358 0.368353 0.8002 43.931145 0.800134 0.693709 1.765308 \n", + "13359 0.368127 0.8002 22.408370 0.800188 0.693200 2.643365 \n", + "\n", + " vwap_btc \n", + "13358 0.693748 \n", + "13359 0.693508 \n" + ] + } + ], + "source": [ + "split_index = round(sample.shape[0] * 0.8)\n", + "\n", + "# First part of the DataFrame\n", + "sample_test = sample.iloc[:split_index]\n", + "\n", + "# Second part of the DataFrame\n", + "sample_valid = sample.iloc[split_index:]\n", + "\n", + "print(\"\\nFirst part of the DataFrame:\")\n", + "print (sample_test.tail(2))\n", + "\n", + "print(\"\\nSecond part of the DataFrame:\")\n", + "print (sample_valid.head(2))" ] }, { "cell_type": "code", "execution_count": null, - "id": "97a4fe65-b999-4459-b21e-8c1f0c20a25e", + "id": "4edcdbdb-85fb-415e-a6c4-71cc383c4410", "metadata": {}, "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": 182, + "id": "71c8bf0d-7762-47ef-a8a1-6d57ee5c8bb7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sample_size: 13358\n" + ] + } + ], + "source": [ + "print ('sample_size: ', sample_size)" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "b5356525-e614-4858-af4e-648c03b7d21e", + "id": "0802e693-29a6-4eda-a496-9504f3008c2e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", - "execution_count": null, - "id": "695de24a-41f4-4c82-a0dd-dbbd7bfba2bd", + "execution_count": 211, + "id": "c3dee439-a3e8-4843-8f8b-33572b4170e9", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sample_size: 13358\n", + "[ 1108 13291]\n", + "[[5.18272282e-01 1.68025214e-04 3.77189791e-01 1.45151777e-04\n", + " 8.31595503e-01 3.95645238e-04 6.76253699e-01 2.15301382e-04]\n", + " [5.18303634e-01 1.68025214e-04 3.77154892e-01 1.45151777e-04\n", + " 8.32082769e-01 3.95645238e-04 6.76271128e-01 2.15301382e-04]\n", + " [5.18562378e-01 1.68025214e-04 3.77397110e-01 1.45151777e-04\n", + " 8.30954599e-01 3.95645238e-04 6.76918294e-01 2.15301382e-04]\n", + " [5.18341398e-01 1.68025214e-04 3.77160454e-01 1.45151777e-04\n", + " 8.31766697e-01 3.95645238e-04 6.76294450e-01 2.15301382e-04]\n", + " [5.18497467e-01 1.68025214e-04 3.77261769e-01 1.45151777e-04\n", + " 8.31990904e-01 3.95645238e-04 6.76269889e-01 2.15301382e-04]\n", + " [5.18698229e-01 1.68025214e-04 3.77392003e-01 1.45151777e-04\n", + " 8.31954856e-01 3.95645238e-04 6.76339962e-01 2.15301382e-04]\n", + " [5.18693630e-01 1.68025214e-04 3.77533283e-01 1.45151777e-04\n", + " 8.32184637e-01 3.95645238e-04 6.76516962e-01 2.15301382e-04]\n", + " [5.18672691e-01 1.68025214e-04 3.77517862e-01 1.45151777e-04\n", + " 8.32276407e-01 3.95645238e-04 6.76558233e-01 2.15301382e-04]\n", + " [4.99269291e-01 5.45867382e-04 3.68653612e-01 1.43205019e-04\n", + " 7.99339573e-01 3.86775482e-04 6.92654223e-01 3.72953569e-04]\n", + " [4.99424699e-01 5.45867382e-04 3.68590151e-01 1.43205019e-04\n", + " 7.99839862e-01 3.86775482e-04 6.92737055e-01 3.72953569e-04]\n", + " [4.99437041e-01 5.45867382e-04 3.68505112e-01 1.43205019e-04\n", + " 7.99388893e-01 3.86775482e-04 6.92646980e-01 3.72953569e-04]\n", + " [4.99561765e-01 5.45867382e-04 3.68547552e-01 1.43205019e-04\n", + " 7.99601900e-01 3.86775482e-04 6.92723486e-01 3.72953569e-04]\n", + " [4.99664819e-01 5.45867382e-04 3.68704191e-01 1.43205019e-04\n", + " 7.99877210e-01 3.86775482e-04 6.92928189e-01 3.72953569e-04]\n", + " [4.99833312e-01 5.45867382e-04 3.68823620e-01 1.43205019e-04\n", + " 7.99375187e-01 3.86775482e-04 6.93065604e-01 3.72953569e-04]\n", + " [4.99855255e-01 5.45867382e-04 3.68840191e-01 1.43205019e-04\n", + " 7.99747347e-01 3.86775482e-04 6.93183729e-01 3.72953569e-04]\n", + " [4.98030589e-01 5.45867382e-04 3.68931667e-01 1.43205019e-04\n", + " 7.98594073e-01 3.86775482e-04 6.91868385e-01 3.72953569e-04]]\n", + "XXXX ====== Actual Input ====== XXXX\n", + "(2, 8, 8)\n", + "[[0.51863729 0.37762073 0.83232141 0.6765906 ]\n", + " [0.49999486 0.36888691 0.79994226 0.69325938]]\n", + "(2, 1, 1)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_28/500398063.py:15: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " sample_test['Selected'] = 0\n" + ] + } + ], + "source": [ + "# 05.17.2024\n", + "# ============================\n", + "sample_size = sample_test.shape[0]\n", + "print ('sample_size: ', sample_size)\n", + "\n", + "sl = 8 # <--- sequence length\n", + "batch = 2 # <--- batch size\n", + "n_features = 8 # <---- no. of variables\n", + "n_out = 1 # <----- no. of predicted variables\n", + "frwd = 1 # <--- how many to predict\n", + "\n", + "\n", + "# Trimming Indices !!!\n", + "# Marking selected rows\n", + "sample_test['Selected'] = 0\n", + "\n", + "# Selecting m random rows without replacement\n", + "np.random.seed(125)\n", + "selected_indices = np.random.choice(sample_test.index, size = batch, replace = False)\n", + "\n", + "sample_test.loc[selected_indices, 'Selected'] = 1 # print (sample_test[sample_test['Selected'] == 1])\n", + "chosen_idx1 = sample_test[sample_test['Selected'] == 1].index\n", + "chosen_idx2 = chosen_idx1[chosen_idx1 > sl]\n", + "\n", + "thrown_idx1 = chosen_idx1[chosen_idx1 <= sl]\n", + "cnt_thrown_idx1 = len(thrown_idx1)\n", + "\n", + "chosen_idx3 = chosen_idx2[chosen_idx2 < (sample_size - frwd)]\n", + "\n", + "thrown_idx2 = chosen_idx2[chosen_idx2 >= (sample_size - frwd)]\n", + "cnt_thrown_idx2 = len(thrown_idx2)\n", + "\n", + "cnt_thrown_idx = cnt_thrown_idx1 + cnt_thrown_idx2\n", + "\n", + "print (selected_indices)\n", + "\n", + "all_ts_xrp = np.empty((1, )) # final input/output\n", + "all_ts_eth = np.empty((1, )) # final input/output\n", + "all_ts_ltc = np.empty((1, )) # final input/output\n", + "all_ts_btc = np.empty((1, )) # final input/output\n", + "\n", + "stdev_xrp = np.empty((1, )) # final input/output\n", + "stdev_eth = np.empty((1, )) # final input/output\n", + "stdev_ltc = np.empty((1, )) # final input/output\n", + "stdev_btc = np.empty((1, )) # final input/output\n", + "\n", + "aft_ts_xrp = np.empty((1))\n", + "aft_ts_eth = np.empty((1))\n", + "aft_ts_ltc = np.empty((1))\n", + "aft_ts_btc = np.empty((1))\n", + "\n", + "for idx in chosen_idx3:\n", + " selected_rows_before = sample_test.iloc[max(0, idx-sl): idx]\n", + " selected_rows_after = sample_test.iloc[max(0, idx): idx+frwd]\n", + "\n", + " # print ('====================')\n", + " sr_before_vwap_xrp = np.array(selected_rows_before['vwap_xrp'])\n", + " sr_after_vwap_xrp = np.array(selected_rows_after['vwap_xrp']) \n", + " # print (sr_before_vwap_xrp)\n", + "\n", + "# Compute standard deviation\n", + " std_dev_xrp = np.std(sr_before_vwap_xrp)\n", + " std_dev_xrp_arr = np.repeat(std_dev_xrp, sl)\n", + " # print(std_dev_xrp_arr)\n", + "\n", + " sr_before_vwap_eth = np.array(selected_rows_before['vwap_eth'])\n", + " sr_after_vwap_eth = np.array(selected_rows_after['vwap_eth'])\n", + "\n", + "# Compute standard deviation\n", + " std_dev_eth = np.std(sr_before_vwap_eth)\n", + " std_dev_eth_arr = np.repeat(std_dev_eth, sl)\n", + " # print(std_dev_eth_arr)\n", + " \n", + "\n", + " sr_before_vwap_ltc = np.array(selected_rows_before['vwap_ltc'])\n", + " sr_after_vwap_ltc = np.array(selected_rows_after['vwap_ltc'])\n", + "\n", + "# Compute standard deviation\n", + " std_dev_ltc = np.std(sr_before_vwap_ltc)\n", + " std_dev_ltc_arr = np.repeat(std_dev_ltc, sl)\n", + " # print(std_dev_ltc_arr)\n", + " \n", + " sr_before_vwap_btc = np.array(selected_rows_before['vwap_btc'])\n", + " sr_after_vwap_btc = np.array(selected_rows_after['vwap_btc'])\n", + "\n", + "# Compute standard deviation\n", + " std_dev_btc = np.std(sr_before_vwap_btc)\n", + " std_dev_btc_arr = np.repeat(std_dev_btc, sl)\n", + " # print(std_dev_btc_arr)\n", + " \n", + " all_ts_xrp = np.concatenate((all_ts_xrp, sr_before_vwap_xrp))\n", + " stdev_xrp = np.concatenate((stdev_xrp, std_dev_xrp_arr))\n", + " \n", + " all_ts_eth = np.concatenate((all_ts_eth, sr_before_vwap_eth))\n", + " stdev_eth = np.concatenate((stdev_eth, std_dev_eth_arr))\n", + "\n", + " all_ts_ltc = np.concatenate((all_ts_ltc, sr_before_vwap_ltc))\n", + " stdev_ltc = np.concatenate((stdev_ltc, std_dev_ltc_arr))\n", + "\n", + " all_ts_btc = np.concatenate((all_ts_btc, sr_before_vwap_btc))\n", + " stdev_btc = np.concatenate((stdev_btc, std_dev_btc_arr))\n", + "\n", + " aft_ts_xrp = np.concatenate((aft_ts_xrp, sr_after_vwap_xrp))\n", + " aft_ts_eth = np.concatenate((aft_ts_eth, sr_after_vwap_eth))\n", + " aft_ts_ltc = np.concatenate((aft_ts_ltc, sr_after_vwap_ltc))\n", + " aft_ts_btc = np.concatenate((aft_ts_btc, sr_after_vwap_btc))\n", + "\n", + "X_XRP = all_ts_xrp[1:]\n", + "X_XRP_stdev = stdev_xrp[1:]\n", + "\n", + "X_ETH = all_ts_eth[1:]\n", + "X_ETH_stdev = stdev_eth[1:]\n", + "\n", + "X_LTC = all_ts_ltc[1:]\n", + "X_LTC_stdev = stdev_ltc[1:]\n", + "\n", + "X_BTC = all_ts_btc[1:]\n", + "X_BTC_stdev = stdev_btc[1:]\n", + "\n", + "X0 = np.column_stack((X_XRP, X_XRP_stdev, X_ETH, X_ETH_stdev, X_LTC, X_LTC_stdev, X_BTC, X_BTC_stdev))\n", + "print (X0)\n", + "\n", + "# ======== Model Input =========\n", + "X = X0.reshape(batch-cnt_thrown_idx, sl, n_features)\n", + "print ('XXXX ====== Actual Input ====== XXXX')\n", + "print (X.shape)\n", + "\n", + "y_XRP = aft_ts_xrp[1:]\n", + "y_ETH = aft_ts_eth[1:]\n", + "y_LTC = aft_ts_ltc[1:]\n", + "y_BTC = aft_ts_btc[1:]\n", + "\n", + "y = np.column_stack((y_XRP, y_ETH, y_LTC, y_BTC))\n", + "print (y)\n", + "\n", + "y = y_BTC.reshape(batch-cnt_thrown_idx, frwd, n_out)\n", + "# print ('YYYY ====== Actual Input ====== YYYY')\n", + "print (y.shape)" + ] }, { "cell_type": "code", "execution_count": null, - "id": "3c6d80b3-4a46-432b-9b88-6a264f9b7a7e", + "id": "88e292cc-1244-462a-b311-3e964773c742", "metadata": {}, "outputs": [], "source": []