{ "cells": [ { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/nick/git/qrust/.venv/bin/python\n", "Requirement already satisfied: clickhouse-connect in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (0.7.0)\n", "Requirement already satisfied: numpy in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (1.26.4)\n", "Requirement already satisfied: pandas in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (2.2.1)\n", "Requirement already satisfied: matplotlib in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (3.8.3)\n", "Requirement already satisfied: scikit-learn in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (1.4.1.post1)\n", "Requirement already satisfied: keras in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (2.15.0)\n", "Requirement already satisfied: tensorflow in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (2.15.0.post1)\n", "Requirement already satisfied: certifi in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from clickhouse-connect) (2024.2.2)\n", "Requirement already satisfied: urllib3>=1.26 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from clickhouse-connect) (2.2.1)\n", "Requirement already satisfied: pytz in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from clickhouse-connect) (2024.1)\n", "Requirement already satisfied: zstandard in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from clickhouse-connect) (0.22.0)\n", "Requirement already satisfied: lz4 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from clickhouse-connect) (4.3.3)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from pandas) (2.8.2)\n", "Requirement already satisfied: tzdata>=2022.7 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from pandas) (2024.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from matplotlib) (1.2.0)\n", "Requirement already satisfied: cycler>=0.10 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from matplotlib) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from matplotlib) (4.49.0)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from matplotlib) (1.4.5)\n", "Requirement already satisfied: packaging>=20.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from matplotlib) (23.2)\n", "Requirement already satisfied: pillow>=8 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from matplotlib) (10.2.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from matplotlib) (3.1.1)\n", "Requirement already satisfied: scipy>=1.6.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from scikit-learn) (1.12.0)\n", "Requirement already satisfied: joblib>=1.2.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from scikit-learn) (1.3.2)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from scikit-learn) (3.3.0)\n", "Requirement already satisfied: absl-py>=1.0.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (2.1.0)\n", "Requirement already satisfied: astunparse>=1.6.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (1.6.3)\n", "Requirement already satisfied: flatbuffers>=23.5.26 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (23.5.26)\n", "Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (0.5.4)\n", "Requirement already satisfied: google-pasta>=0.1.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: h5py>=2.9.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (3.10.0)\n", "Requirement already satisfied: libclang>=13.0.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (16.0.6)\n", "Requirement already satisfied: ml-dtypes~=0.2.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: opt-einsum>=2.3.2 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (3.3.0)\n", "Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (4.25.3)\n", "Requirement already satisfied: setuptools in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (65.5.0)\n", "Requirement already satisfied: six>=1.12.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (1.16.0)\n", "Requirement already satisfied: termcolor>=1.1.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (2.4.0)\n", "Requirement already satisfied: typing-extensions>=3.6.6 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (4.10.0)\n", "Requirement already satisfied: wrapt<1.15,>=1.11.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (1.14.1)\n", "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (0.36.0)\n", "Requirement already satisfied: grpcio<2.0,>=1.24.3 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (1.62.0)\n", "Requirement already satisfied: tensorboard<2.16,>=2.15 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (2.15.2)\n", "Requirement already satisfied: tensorflow-estimator<2.16,>=2.15.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorflow) (2.15.0)\n", "Requirement already satisfied: wheel<1.0,>=0.23.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from astunparse>=1.6.0->tensorflow) (0.42.0)\n", "Requirement already satisfied: google-auth<3,>=1.6.3 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.28.1)\n", "Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorboard<2.16,>=2.15->tensorflow) (1.2.0)\n", "Requirement already satisfied: markdown>=2.6.8 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.5.2)\n", "Requirement already satisfied: requests<3,>=2.21.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.31.0)\n", "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorboard<2.16,>=2.15->tensorflow) (0.7.2)\n", "Requirement already satisfied: werkzeug>=1.0.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.0.1)\n", "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (5.3.2)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.3.0)\n", "Requirement already satisfied: rsa<5,>=3.1.4 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (4.9)\n", "Requirement already satisfied: requests-oauthlib>=0.7.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (1.3.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.6)\n", "Requirement already satisfied: MarkupSafe>=2.1.1 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from werkzeug>=1.0.1->tensorboard<2.16,>=2.15->tensorflow) (2.1.5)\n", "Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.5.1)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /home/nick/git/qrust/.venv/lib/python3.11/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (3.2.2)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "import sys\n", "print(sys.executable)\n", "%pip install clickhouse-connect numpy pandas matplotlib scikit-learn keras tensorflow\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "from clickhouse_connect import get_client\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'AAPL': time day_of_week open high low close volume \\\n", "0 14 1 92.110 92.320 91.870 92.090 74648.0 \n", "1 15 1 92.120 92.210 91.290 91.750 53624.0 \n", "2 16 1 91.750 92.010 91.580 92.010 34056.0 \n", "3 17 1 92.040 92.340 91.980 92.340 64616.0 \n", "4 18 1 92.350 92.470 92.100 92.100 103912.0 \n", "... ... ... ... ... ... ... ... \n", "7185 17 5 182.900 183.020 182.310 182.800 72038.0 \n", "7186 18 5 182.805 182.970 182.610 182.725 53376.0 \n", "7187 19 5 182.735 182.750 182.440 182.610 53989.0 \n", "7188 20 5 182.605 182.815 182.445 182.500 194456.0 \n", "7189 21 5 182.500 182.500 182.500 182.500 0.0 \n", "\n", " score \n", "0 0.000000 \n", "1 0.000000 \n", "2 0.000000 \n", "3 -0.861785 \n", "4 0.000000 \n", "... ... \n", "7185 0.000000 \n", "7186 0.000000 \n", "7187 0.000000 \n", "7188 0.000000 \n", "7189 0.000000 \n", "\n", "[7190 rows x 8 columns], 'ABNB': time day_of_week open high low close volume \\\n", "0 18 4 147.580 165.000 145.000 147.265 5320620.0 \n", "1 19 4 147.900 151.320 141.310 149.110 512945.0 \n", "2 20 4 149.240 149.820 144.115 144.425 183596.0 \n", "3 21 4 144.425 144.425 144.425 144.425 0.0 \n", "4 14 5 146.630 151.310 144.700 147.700 141133.0 \n", "... ... ... ... ... ... ... ... \n", "6415 16 5 151.795 151.920 150.885 151.920 28941.0 \n", "6416 17 5 151.775 153.015 151.585 153.015 15991.0 \n", "6417 18 5 153.010 153.360 152.825 153.190 11255.0 \n", "6418 19 5 153.250 153.250 151.855 152.230 8654.0 \n", "6419 20 5 152.230 152.820 151.890 152.650 34805.0 \n", "\n", " score \n", "0 -0.155592 \n", "1 0.000000 \n", "2 0.000000 \n", "3 0.569204 \n", "4 0.000000 \n", "... ... \n", "6415 0.000000 \n", "6416 0.000000 \n", "6417 0.000000 \n", "6418 0.000000 \n", "6419 0.000000 \n", "\n", "[6420 rows x 8 columns], 'ADBE': time day_of_week open high low close volume score\n", "0 14 1 435.870 437.250 435.870 436.000 5432.0 0.0\n", "1 15 1 436.115 436.115 433.620 434.790 7615.0 0.0\n", "2 16 1 434.790 435.920 434.620 435.635 1278.0 0.0\n", "3 17 1 435.635 437.020 435.635 436.000 1526.0 0.0\n", "4 18 1 436.000 437.655 436.000 437.210 1715.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 548.590 551.740 546.650 550.340 10991.0 0.0\n", "7185 17 5 549.870 554.810 549.720 554.425 15871.0 0.0\n", "7186 18 5 553.970 556.770 553.950 555.260 17259.0 0.0\n", "7187 19 5 555.260 556.370 554.350 555.380 6576.0 0.0\n", "7188 20 5 555.380 555.380 552.855 553.650 32474.0 0.0\n", "\n", "[7189 rows x 8 columns], 'AMD': time day_of_week open high low close volume \\\n", "0 14 1 69.265 69.880 69.160 69.300 137720.0 \n", "1 15 1 69.285 69.390 67.840 68.345 233532.0 \n", "2 16 1 68.290 69.300 68.290 69.280 88941.0 \n", "3 17 1 69.270 69.475 68.855 69.185 61441.0 \n", "4 18 1 69.140 69.295 68.680 68.730 68129.0 \n", "... ... ... ... ... ... ... ... \n", "7184 16 5 176.450 176.630 174.580 176.395 59643.0 \n", "7185 17 5 176.385 176.940 174.820 175.910 62200.0 \n", "7186 18 5 175.885 176.970 175.820 176.750 34577.0 \n", "7187 19 5 176.840 177.190 176.350 177.000 20157.0 \n", "7188 20 5 177.125 177.190 175.730 176.470 66345.0 \n", "\n", " score \n", "0 0.461448 \n", "1 -0.914508 \n", "2 0.000000 \n", "3 0.000000 \n", "4 0.000000 \n", "... ... \n", "7184 0.000000 \n", "7185 -0.441834 \n", "7186 0.000000 \n", "7187 0.000000 \n", "7188 0.000000 \n", "\n", "[7189 rows x 8 columns], 'AMZN': time day_of_week open high low close volume score\n", "0 14 1 152.460 153.64 152.460 152.910 86720.0 0.000000\n", "1 15 1 152.910 152.91 150.810 151.880 120060.0 0.000000\n", "2 16 1 151.730 152.55 151.730 151.880 51960.0 0.000000\n", "3 17 1 152.030 152.24 151.790 151.880 93400.0 0.000000\n", "4 18 1 151.880 153.25 151.880 152.680 35340.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7185 17 5 174.610 174.82 174.365 174.650 80360.0 0.000000\n", "7186 18 5 174.625 174.81 174.105 174.280 102124.0 -0.471062\n", "7187 19 5 174.320 174.50 174.085 174.275 65826.0 0.000000\n", "7188 20 5 174.290 175.65 174.025 174.900 171674.0 0.000000\n", "7189 21 5 174.900 174.90 174.900 174.900 0.0 0.000000\n", "\n", "[7190 rows x 8 columns], 'ARM': time day_of_week open high low close volume score\n", "0 16 4 56.175 61.94 55.560 60.020 7385670.0 0.000000\n", "1 17 4 59.990 61.33 59.000 59.540 313281.0 0.000000\n", "2 18 4 59.590 60.00 58.320 58.590 488254.0 0.000000\n", "3 19 4 58.620 66.17 58.010 63.485 1344639.0 0.000000\n", "4 20 4 63.300 63.34 62.650 62.990 2976.0 0.000000\n", ".. ... ... ... ... ... ... ... ...\n", "885 16 5 132.510 134.95 130.930 134.000 44083.0 0.000000\n", "886 17 5 133.775 134.40 132.800 133.640 11077.0 -0.883668\n", "887 18 5 133.640 134.97 133.200 133.940 17129.0 0.000000\n", "888 19 5 133.860 134.19 132.350 132.900 67990.0 0.000000\n", "889 20 5 133.085 133.57 131.585 133.330 55684.0 0.891405\n", "\n", "[890 rows x 8 columns], 'BA': time day_of_week open high low close volume score\n", "0 14 1 172.570 173.230 171.420 172.150 24098.0 0.0\n", "1 15 1 172.225 172.225 170.365 170.365 30297.0 0.0\n", "2 16 1 170.365 170.950 169.225 169.420 33800.0 0.0\n", "3 17 1 169.650 170.440 169.000 169.815 24379.0 0.0\n", "4 18 1 169.855 169.990 169.030 169.320 18305.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 200.850 201.620 200.100 200.580 21660.0 0.0\n", "7185 17 5 200.710 200.960 200.350 200.730 7887.0 0.0\n", "7186 18 5 200.640 202.030 199.560 201.815 23485.0 0.0\n", "7187 19 5 201.870 201.870 201.170 201.675 5096.0 0.0\n", "7188 20 5 201.700 201.950 200.810 200.810 19839.0 0.0\n", "\n", "[7189 rows x 8 columns], 'BABA': time day_of_week open high low close volume score\n", "0 14 1 246.780 247.460 246.670 247.01 21847.0 0.000000\n", "1 15 1 247.140 247.240 244.680 245.03 37630.0 0.000000\n", "2 16 1 245.040 246.730 244.770 246.33 34793.0 0.000000\n", "3 17 1 246.410 246.800 245.690 246.51 21781.0 0.000000\n", "4 18 1 246.460 247.970 246.460 247.54 38211.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 76.215 76.410 75.935 76.41 22721.0 0.000000\n", "7185 17 5 76.410 76.460 76.150 76.15 28972.0 -0.332342\n", "7186 18 5 76.160 76.205 76.060 76.06 16974.0 0.000000\n", "7187 19 5 76.060 76.060 75.680 75.95 25976.0 0.000000\n", "7188 20 5 75.990 76.050 75.790 75.93 18743.0 0.000000\n", "\n", "[7189 rows x 8 columns], 'BCS': time day_of_week open high low close volume score\n", "0 14 1 5.111 5.120 5.111 5.111 4300.0 0.0\n", "1 15 1 5.111 5.111 5.066 5.084 6005.0 0.0\n", "2 16 1 5.084 5.084 5.080 5.080 400.0 0.0\n", "3 17 1 5.080 5.084 5.071 5.075 1518.0 0.0\n", "4 18 1 5.075 5.075 5.071 5.071 1874.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 8.440 8.470 8.420 8.470 9460.0 0.0\n", "7185 17 5 8.470 8.505 8.470 8.505 6651.0 0.0\n", "7186 18 5 8.505 8.505 8.475 8.475 5401.0 0.0\n", "7187 19 5 8.475 8.475 8.460 8.465 21249.0 0.0\n", "7188 20 5 8.465 8.500 8.465 8.500 25902.0 0.0\n", "\n", "[7189 rows x 8 columns], 'COIN': time day_of_week open high low close volume \\\n", "0 17 3 384.145 429.260 375.00 375.500 4473384.0 \n", "1 18 3 375.950 380.000 325.00 329.750 519187.0 \n", "2 19 3 328.995 344.510 310.00 327.930 759904.0 \n", "3 20 3 327.930 328.510 327.93 328.510 300.0 \n", "4 21 3 328.510 328.510 328.51 328.510 0.0 \n", "... ... ... ... ... ... ... ... \n", "5747 16 5 164.280 165.695 160.66 165.445 23324.0 \n", "5748 17 5 165.610 167.550 165.61 167.430 14192.0 \n", "5749 18 5 167.560 167.560 165.85 165.930 6228.0 \n", "5750 19 5 165.840 165.890 164.52 165.365 12632.0 \n", "5751 20 5 165.365 166.220 164.50 165.950 35600.0 \n", "\n", " score \n", "0 -0.142270 \n", "1 0.000000 \n", "2 0.000000 \n", "3 0.000000 \n", "4 0.000000 \n", "... ... \n", "5747 0.000000 \n", "5748 0.000000 \n", "5749 0.000000 \n", "5750 0.000000 \n", "5751 -0.696359 \n", "\n", "[5752 rows x 8 columns], 'CSCO': time day_of_week open high low close volume score\n", "0 14 2 36.810 36.810 36.810 36.810 0.0 0.0\n", "1 15 2 36.810 36.810 36.810 36.810 0.0 0.0\n", "2 16 2 36.810 36.810 36.810 36.810 0.0 0.0\n", "3 17 2 36.810 36.810 36.810 36.810 0.0 0.0\n", "4 18 2 36.810 36.810 36.810 36.810 0.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "11550 16 5 48.945 49.080 48.895 49.070 50178.0 0.0\n", "11551 17 5 49.075 49.135 48.960 48.995 33591.0 0.0\n", "11552 18 5 49.000 49.060 48.970 49.020 26737.0 0.0\n", "11553 19 5 49.035 49.100 48.985 49.065 28723.0 0.0\n", "11554 20 5 49.065 49.095 48.850 48.850 79556.0 0.0\n", "\n", "[11555 rows x 8 columns], 'DASH': time day_of_week open high low close volume \\\n", "0 17 3 183.23 195.470 176.460 182.160 3073680.0 \n", "1 18 3 182.48 187.740 175.730 177.390 261133.0 \n", "2 19 3 177.27 179.710 173.285 174.955 154506.0 \n", "3 20 3 175.25 190.255 174.590 189.800 155441.0 \n", "4 21 3 189.80 189.800 189.800 189.800 0.0 \n", "... ... ... ... ... ... ... ... \n", "6424 16 5 120.35 121.900 120.110 121.850 7496.0 \n", "6425 17 5 121.85 122.180 121.630 122.150 7099.0 \n", "6426 18 5 122.15 122.470 121.805 121.955 5015.0 \n", "6427 19 5 121.92 121.920 121.020 121.040 6107.0 \n", "6428 20 5 121.06 122.320 120.740 121.820 40835.0 \n", "\n", " score \n", "0 -0.053689 \n", "1 0.000000 \n", "2 -0.565758 \n", "3 0.000000 \n", "4 0.929532 \n", "... ... \n", "6424 0.000000 \n", "6425 0.000000 \n", "6426 0.000000 \n", "6427 0.000000 \n", "6428 0.000000 \n", "\n", "[6429 rows x 8 columns], 'DIS': time day_of_week open high low close volume score\n", "0 14 3 96.440 96.440 96.440 96.44 0.0 0.000000\n", "1 15 3 96.440 96.440 96.440 96.44 0.0 0.000000\n", "2 16 3 96.440 96.440 96.440 96.44 0.0 -0.426249\n", "3 17 3 96.440 96.440 96.440 96.44 0.0 0.000000\n", "4 18 3 96.440 96.440 96.440 96.44 0.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "11702 16 5 106.560 106.870 106.060 106.75 26093.0 0.000000\n", "11703 17 5 106.745 107.205 106.745 107.06 23099.0 -0.944393\n", "11704 18 5 107.090 107.670 107.050 107.50 32401.0 0.000000\n", "11705 19 5 107.445 107.790 107.155 107.45 14983.0 -0.541146\n", "11706 20 5 107.500 107.890 107.450 107.80 36773.0 0.000000\n", "\n", "[11707 rows x 8 columns], 'EBAY': time day_of_week open high low close volume score\n", "0 14 1 53.220 53.660 53.220 53.530 8619.0 0.0\n", "1 15 1 53.530 53.570 52.980 53.310 12321.0 0.0\n", "2 16 1 53.310 53.640 53.310 53.500 10618.0 0.0\n", "3 17 1 53.530 53.650 53.490 53.540 12116.0 0.0\n", "4 18 1 53.540 53.900 53.540 53.760 17578.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 44.075 44.135 43.925 44.100 23936.0 0.0\n", "7185 17 5 44.155 44.415 44.120 44.250 13857.0 0.0\n", "7186 18 5 44.250 44.250 44.110 44.165 11446.0 0.0\n", "7187 19 5 44.165 44.325 44.045 44.080 15877.0 0.0\n", "7188 20 5 44.060 44.100 43.830 44.010 143927.0 0.0\n", "\n", "[7189 rows x 8 columns], 'FSLY': time day_of_week open high low close volume score\n", "0 14 1 78.980 80.660 78.980 80.615 4454.0 0.0\n", "1 15 1 80.250 80.285 78.000 78.225 5188.0 0.0\n", "2 16 1 78.225 79.245 77.880 79.245 1178.0 0.0\n", "3 17 1 79.280 79.280 78.780 79.010 1078.0 0.0\n", "4 18 1 79.010 79.750 79.005 79.750 1200.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 14.410 14.450 14.275 14.395 9763.0 0.0\n", "7185 17 5 14.380 14.490 14.295 14.370 9346.0 0.0\n", "7186 18 5 14.370 14.450 14.320 14.350 6229.0 0.0\n", "7187 19 5 14.345 14.400 14.295 14.330 6653.0 0.0\n", "7188 20 5 14.320 14.325 14.105 14.210 28732.0 0.0\n", "\n", "[7189 rows x 8 columns], 'GD': time day_of_week open high low close volume score\n", "0 14 1 137.050 137.05 136.34 136.450 1400.0 0.0\n", "1 15 1 136.450 136.45 136.08 136.110 2392.0 0.0\n", "2 16 1 136.060 136.63 135.76 136.550 2997.0 0.0\n", "3 17 1 136.530 136.65 136.29 136.400 2434.0 0.0\n", "4 18 1 136.400 136.40 135.76 135.830 1832.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 273.400 273.75 273.23 273.640 2132.0 0.0\n", "7185 17 5 273.550 274.21 273.55 274.210 1693.0 0.0\n", "7186 18 5 274.110 274.89 273.91 273.920 2809.0 0.0\n", "7187 19 5 273.920 273.92 273.56 273.765 725.0 0.0\n", "7188 20 5 273.765 274.19 273.72 273.880 5909.0 0.0\n", "\n", "[7189 rows x 8 columns], 'GOOG': time day_of_week open high low close volume score\n", "0 14 1 76.490 76.590 76.430 76.450 56240.0 0.0\n", "1 15 1 76.450 76.510 75.980 76.170 101420.0 0.0\n", "2 16 1 76.230 76.400 76.050 76.320 66380.0 0.0\n", "3 17 1 76.320 76.420 76.210 76.210 54140.0 0.0\n", "4 18 1 76.210 76.660 76.210 76.400 118380.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 145.175 145.205 144.810 145.190 45073.0 0.0\n", "7185 17 5 145.315 145.575 145.155 145.220 19922.0 0.0\n", "7186 18 5 145.220 145.445 145.170 145.405 12166.0 0.0\n", "7187 19 5 145.360 145.395 144.880 145.155 19984.0 0.0\n", "7188 20 5 145.155 145.470 144.995 145.290 51898.0 0.0\n", "\n", "[7189 rows x 8 columns], 'GOOGL': time day_of_week open high low close volume score\n", "0 14 1 76.410 76.54 76.290 76.290 99860.0 0.0\n", "1 15 1 76.290 76.40 75.840 76.080 124700.0 0.0\n", "2 16 1 76.160 76.28 75.900 76.230 62800.0 0.0\n", "3 17 1 76.250 76.35 76.130 76.140 98680.0 0.0\n", "4 18 1 76.170 76.59 76.170 76.320 136820.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 143.840 143.91 143.445 143.910 69908.0 0.0\n", "7185 17 5 143.960 144.19 143.760 143.870 36315.0 0.0\n", "7186 18 5 143.870 144.14 143.750 144.075 20617.0 0.0\n", "7187 19 5 144.065 144.10 143.535 143.820 42350.0 0.0\n", "7188 20 5 143.810 144.13 143.670 143.940 87190.0 0.0\n", "\n", "[7189 rows x 8 columns], 'HOOD': time day_of_week open high low close volume score\n", "0 16 4 37.985 40.090 33.38 36.010 1534658.0 -0.453231\n", "1 17 4 35.975 38.070 35.60 35.960 300769.0 0.000000\n", "2 18 4 36.040 36.800 35.67 36.440 216585.0 0.000000\n", "3 19 4 36.320 36.360 34.59 34.740 334604.0 0.000000\n", "4 20 4 34.740 35.190 34.51 35.080 3132.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "5156 16 5 14.355 14.450 14.10 14.425 68225.0 0.000000\n", "5157 17 5 14.440 14.480 14.40 14.445 26655.0 0.000000\n", "5158 18 5 14.445 14.455 14.39 14.415 18674.0 0.000000\n", "5159 19 5 14.440 14.500 14.35 14.440 17061.0 0.000000\n", "5160 20 5 14.440 14.500 14.43 14.485 61245.0 0.000000\n", "\n", "[5161 rows x 8 columns], 'INTC': time day_of_week open high low close volume score\n", "0 14 1 45.250 45.420 45.070 45.090 229787.0 0.000000\n", "1 15 1 45.090 45.500 44.990 45.460 840750.0 -0.609672\n", "2 16 1 45.450 45.570 45.170 45.260 204524.0 0.000000\n", "3 17 1 45.260 45.270 44.910 45.010 202942.0 0.000000\n", "4 18 1 45.010 45.200 44.830 44.900 399254.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 42.935 43.235 42.775 43.215 71462.0 0.000000\n", "7185 17 5 43.220 43.385 43.075 43.220 61589.0 0.000000\n", "7186 18 5 43.260 43.340 43.180 43.205 28138.0 0.000000\n", "7187 19 5 43.195 43.265 43.130 43.170 28575.0 0.000000\n", "7188 20 5 43.180 43.215 42.930 42.970 153382.0 0.891405\n", "\n", "[7189 rows x 8 columns], 'JNJ': time day_of_week open high low close volume score\n", "0 14 1 134.250 134.33 133.890 134.030 14730.0 0.0\n", "1 15 1 134.000 134.22 133.570 133.700 16033.0 0.0\n", "2 16 1 133.670 133.70 133.330 133.440 8851.0 0.0\n", "3 17 1 133.460 133.57 133.370 133.370 12108.0 0.0\n", "4 18 1 133.350 133.79 132.860 132.910 38634.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 162.210 162.21 161.740 161.900 5872.0 0.0\n", "7185 17 5 161.900 161.98 161.520 161.520 3094.0 0.0\n", "7186 18 5 161.460 161.71 161.420 161.465 3589.0 0.0\n", "7187 19 5 161.465 161.47 161.345 161.430 7689.0 0.0\n", "7188 20 5 161.460 162.20 161.460 161.800 27974.0 0.0\n", "\n", "[7189 rows x 8 columns], 'KO': time day_of_week open high low close volume score\n", "0 14 1 43.450 43.510 43.390 43.390 30364.0 0.0\n", "1 15 1 43.400 43.550 43.390 43.550 32339.0 0.0\n", "2 16 1 43.550 43.580 43.520 43.520 63923.0 0.0\n", "3 17 1 43.520 43.540 43.410 43.410 26501.0 0.0\n", "4 18 1 43.400 43.570 43.400 43.530 34539.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 61.380 61.420 61.195 61.220 51087.0 0.0\n", "7185 17 5 61.210 61.255 61.105 61.105 33572.0 0.0\n", "7186 18 5 61.105 61.230 61.105 61.195 19254.0 0.0\n", "7187 19 5 61.195 61.360 61.170 61.355 28244.0 0.0\n", "7188 20 5 61.360 61.405 61.190 61.190 87795.0 0.0\n", "\n", "[7189 rows x 8 columns], 'LLY': time day_of_week open high low close volume score\n", "0 14 1 152.85 152.990 152.640 152.68 2330.0 0.0\n", "1 15 1 152.68 152.910 152.230 152.45 3443.0 0.0\n", "2 16 1 152.45 152.700 152.350 152.56 7614.0 0.0\n", "3 17 1 152.56 152.970 152.360 152.69 5796.0 0.0\n", "4 18 1 152.68 152.760 152.170 152.61 8762.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 765.03 765.410 763.375 765.41 6708.0 0.0\n", "7185 17 5 765.41 767.115 763.650 764.88 2334.0 0.0\n", "7186 18 5 764.88 767.070 764.415 766.14 2849.0 0.0\n", "7187 19 5 766.14 767.620 763.710 767.45 2670.0 0.0\n", "7188 20 5 767.45 771.640 766.380 770.12 17259.0 0.0\n", "\n", "[7189 rows x 8 columns], 'LMT': time day_of_week open high low close volume score\n", "0 14 1 343.17 343.170 341.80 341.800 2371.0 0.0\n", "1 15 1 341.80 342.150 341.14 342.150 400.0 0.0\n", "2 16 1 342.15 342.390 341.56 342.390 1120.0 0.0\n", "3 17 1 342.39 342.390 341.20 341.620 1594.0 0.0\n", "4 18 1 341.57 341.630 340.77 340.770 1201.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 430.67 431.250 430.64 430.990 638.0 0.0\n", "7185 17 5 430.99 430.990 430.17 430.180 640.0 0.0\n", "7186 18 5 430.18 430.640 429.77 429.910 856.0 0.0\n", "7187 19 5 429.91 430.330 429.91 430.100 2534.0 0.0\n", "7188 20 5 430.10 431.145 430.10 431.145 7235.0 0.0\n", "\n", "[7189 rows x 8 columns], 'LYFT': time day_of_week open high low close volume score\n", "0 14 1 30.320 30.450 30.220 30.250 8172.0 0.0\n", "1 15 1 30.230 30.230 29.610 29.800 28388.0 0.0\n", "2 16 1 29.800 29.825 29.570 29.690 33078.0 0.0\n", "3 17 1 29.670 29.680 29.440 29.460 18084.0 0.0\n", "4 18 1 29.460 29.695 29.450 29.580 40962.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 15.610 15.660 15.515 15.550 60803.0 0.0\n", "7185 17 5 15.530 15.995 15.530 15.880 58184.0 0.0\n", "7186 18 5 15.920 16.190 15.920 16.125 39355.0 0.0\n", "7187 19 5 16.135 16.155 15.970 15.990 22814.0 0.0\n", "7188 20 5 15.990 16.065 15.975 16.015 103544.0 0.0\n", "\n", "[7189 rows x 8 columns], 'MA': time day_of_week open high low close volume score\n", "0 14 1 302.690 303.710 302.490 303.580 8374.0 0.0\n", "1 15 1 303.340 303.540 301.560 302.070 7770.0 0.0\n", "2 16 1 301.970 303.600 301.970 303.420 4316.0 0.0\n", "3 17 1 303.420 303.700 302.790 302.940 5057.0 0.0\n", "4 18 1 302.940 303.570 302.840 303.030 3591.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 473.140 473.140 471.950 472.895 5285.0 0.0\n", "7185 17 5 472.895 474.090 472.895 473.940 5125.0 0.0\n", "7186 18 5 473.940 474.280 472.950 473.160 6806.0 0.0\n", "7187 19 5 473.290 473.515 472.960 473.460 2889.0 0.0\n", "7188 20 5 473.460 474.020 473.410 473.510 15371.0 0.0\n", "\n", "[7189 rows x 8 columns], 'META': time day_of_week open high low close volume score\n", "0 14 1 232.780 233.22 232.600 233.090 15988.0 0.0\n", "1 15 1 232.995 233.34 231.230 232.340 18409.0 0.0\n", "2 16 1 232.150 232.72 231.825 232.210 31090.0 0.0\n", "3 17 1 232.390 233.41 232.350 232.995 14613.0 0.0\n", "4 18 1 233.355 234.38 233.320 233.830 12380.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 486.390 487.33 482.910 487.250 27940.0 0.0\n", "7185 17 5 487.250 488.43 486.335 488.070 16376.0 0.0\n", "7186 18 5 488.205 488.58 486.585 486.835 21064.0 0.0\n", "7187 19 5 486.840 487.01 482.400 482.880 69736.0 0.0\n", "7188 20 5 483.460 485.32 482.550 484.100 69825.0 0.0\n", "\n", "[7189 rows x 8 columns], 'MSFT': time day_of_week open high low close volume score\n", "0 14 1 194.490 196.100 194.470 195.870 56303.0 0.000000\n", "1 15 1 195.810 196.050 194.680 195.400 63476.0 0.000000\n", "2 16 1 195.270 195.730 194.920 195.530 20035.0 0.000000\n", "3 17 1 195.530 196.330 195.530 195.930 20354.0 -0.861785\n", "4 18 1 196.000 196.800 196.000 196.230 29993.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 411.430 411.430 409.290 410.065 70614.0 0.439064\n", "7185 17 5 410.150 410.395 409.045 409.800 12456.0 0.000000\n", "7186 18 5 409.695 410.365 409.630 410.365 10830.0 0.000000\n", "7187 19 5 410.365 410.710 409.860 410.520 15374.0 0.000000\n", "7188 20 5 410.585 410.800 409.540 410.360 49690.0 0.000000\n", "\n", "[7189 rows x 8 columns], 'NFLX': time day_of_week open high low close volume score\n", "0 14 1 485.670 488.770 485.240 488.035 7342.0 0.0\n", "1 15 1 488.035 488.565 483.440 486.000 16212.0 0.0\n", "2 16 1 486.000 489.980 485.490 489.920 9488.0 0.0\n", "3 17 1 489.920 494.480 489.800 491.590 9301.0 0.0\n", "4 18 1 492.130 495.210 491.140 494.680 8231.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 582.300 583.360 579.855 583.360 7082.0 0.0\n", "7185 17 5 583.615 584.620 583.425 584.470 4040.0 0.0\n", "7186 18 5 584.820 585.900 584.590 585.900 2477.0 0.0\n", "7187 19 5 585.900 586.190 583.540 584.220 4717.0 0.0\n", "7188 20 5 584.590 584.590 582.270 583.640 15948.0 0.0\n", "\n", "[7189 rows x 8 columns], 'NKE': time day_of_week open high low close volume score\n", "0 14 1 94.820 94.990 94.720 94.830 7641.0 0.0\n", "1 15 1 94.830 94.830 94.160 94.370 8270.0 0.0\n", "2 16 1 94.350 94.600 94.300 94.510 7800.0 0.0\n", "3 17 1 94.520 94.530 94.240 94.240 2474.0 0.0\n", "4 18 1 94.180 94.180 93.950 94.070 3282.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 106.085 106.085 105.645 105.645 21473.0 0.0\n", "7185 17 5 105.650 105.890 105.560 105.870 12941.0 0.0\n", "7186 18 5 105.870 105.915 105.660 105.805 12674.0 0.0\n", "7187 19 5 105.775 105.790 105.470 105.600 12175.0 0.0\n", "7188 20 5 105.600 105.855 105.580 105.620 27059.0 0.0\n", "\n", "[7189 rows x 8 columns], 'NVDA': time day_of_week open high low close volume score\n", "0 14 1 103.45 103.570 103.08 103.230 14760.0 0.000000\n", "1 15 1 103.20 103.290 101.90 102.730 31664.0 0.000000\n", "2 16 1 102.80 103.110 102.53 103.100 11500.0 0.000000\n", "3 17 1 103.10 103.840 103.10 103.720 25600.0 0.000000\n", "4 18 1 103.83 104.080 103.63 103.680 30180.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 787.17 800.370 776.18 800.170 561909.0 0.557597\n", "7185 17 5 800.34 804.260 791.71 800.850 259227.0 -0.294556\n", "7186 18 5 801.06 802.795 796.22 798.015 42212.0 0.000000\n", "7187 19 5 798.36 800.140 795.75 798.000 48338.0 0.000000\n", "7188 20 5 798.54 798.540 786.92 788.270 120464.0 0.000000\n", "\n", "[7189 rows x 8 columns], 'ORCL': time day_of_week open high low close volume score\n", "0 14 1 52.830 52.930 52.82 52.86 8596.0 0.0\n", "1 15 1 52.860 52.860 52.71 52.77 20923.0 0.0\n", "2 16 1 52.770 52.790 52.73 52.76 23360.0 0.0\n", "3 17 1 52.760 52.790 52.65 52.65 53647.0 0.0\n", "4 18 1 52.650 52.710 52.54 52.60 35732.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 113.050 113.050 111.94 111.97 13434.0 0.0\n", "7185 17 5 112.035 112.105 111.72 112.06 13114.0 0.0\n", "7186 18 5 112.060 112.220 111.82 112.22 17104.0 0.0\n", "7187 19 5 112.210 112.520 112.14 112.29 19345.0 0.0\n", "7188 20 5 112.250 112.360 111.90 111.90 63414.0 0.0\n", "\n", "[7189 rows x 8 columns], 'PARA': time day_of_week open high low close volume score\n", "0 14 1 22.180 22.18 22.000 22.110 24774.0 0.000000\n", "1 15 1 22.110 22.15 21.960 22.010 36106.0 0.000000\n", "2 16 1 22.020 22.22 22.000 22.160 40387.0 0.000000\n", "3 17 1 22.160 22.30 22.120 22.210 38497.0 0.000000\n", "4 18 1 22.200 22.21 22.050 22.140 27896.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 11.230 11.30 11.135 11.265 57643.0 0.000000\n", "7185 17 5 11.260 11.32 11.190 11.220 67559.0 -0.944393\n", "7186 18 5 11.220 11.26 11.200 11.205 53237.0 0.000000\n", "7187 19 5 11.200 11.20 11.100 11.155 48565.0 0.000000\n", "7188 20 5 11.155 11.22 11.100 11.210 87858.0 0.000000\n", "\n", "[7189 rows x 8 columns], 'PEP': time day_of_week open high low close volume score\n", "0 14 1 124.04 124.130 123.940 123.940 8333.0 0.0\n", "1 15 1 123.89 124.380 123.890 124.360 8029.0 0.0\n", "2 16 1 124.35 124.380 123.930 124.010 10771.0 0.0\n", "3 17 1 123.96 124.150 123.960 124.070 11943.0 0.0\n", "4 18 1 124.07 124.610 124.070 124.580 21981.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 169.87 170.240 169.710 169.710 16721.0 0.0\n", "7185 17 5 169.67 169.745 169.125 169.125 10028.0 0.0\n", "7186 18 5 169.09 169.470 169.020 169.400 7514.0 0.0\n", "7187 19 5 169.44 169.730 169.340 169.730 12632.0 0.0\n", "7188 20 5 169.73 169.920 169.540 169.600 20989.0 0.0\n", "\n", "[7189 rows x 8 columns], 'PFE': time day_of_week open high low close volume score\n", "0 14 1 32.430 32.430 32.190 32.200 12767.0 0.0\n", "1 15 1 32.200 32.250 32.130 32.190 23618.0 0.0\n", "2 16 1 32.190 32.220 32.130 32.130 17923.0 0.0\n", "3 17 1 32.130 32.330 32.110 32.320 37609.0 0.0\n", "4 18 1 32.320 32.390 32.230 32.300 44119.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 28.085 28.085 27.915 28.040 106023.0 0.0\n", "7185 17 5 28.040 28.040 27.900 27.900 40524.0 0.0\n", "7186 18 5 27.905 27.905 27.785 27.785 61818.0 0.0\n", "7187 19 5 27.785 27.830 27.755 27.830 37968.0 0.0\n", "7188 20 5 27.840 27.865 27.750 27.755 115552.0 0.0\n", "\n", "[7189 rows x 8 columns], 'PG': time day_of_week open high low close volume score\n", "0 14 1 115.970 115.97 115.530 115.620 9953.0 0.0\n", "1 15 1 115.640 116.06 115.610 115.940 16271.0 0.0\n", "2 16 1 115.940 116.13 115.550 115.550 10375.0 0.0\n", "3 17 1 115.530 115.64 115.490 115.550 6095.0 0.0\n", "4 18 1 115.540 115.91 115.540 115.840 9565.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 161.020 161.13 160.680 160.680 6316.0 0.0\n", "7185 17 5 160.680 160.78 160.640 160.695 8595.0 0.0\n", "7186 18 5 160.685 160.96 160.685 160.915 7313.0 0.0\n", "7187 19 5 160.915 161.46 160.765 161.415 14205.0 0.0\n", "7188 20 5 161.395 161.65 161.000 161.000 53167.0 0.0\n", "\n", "[7189 rows x 8 columns], 'PYPL': time day_of_week open high low close volume score\n", "0 14 1 174.810 176.225 174.810 175.785 6009.0 0.0\n", "1 15 1 175.785 176.075 173.805 175.215 104117.0 0.0\n", "2 16 1 175.080 176.050 174.900 176.050 5406.0 0.0\n", "3 17 1 176.050 176.730 175.785 176.495 4512.0 0.0\n", "4 18 1 176.495 177.710 176.495 177.310 16529.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 59.165 59.240 58.865 59.160 57871.0 0.0\n", "7185 17 5 59.205 59.425 59.205 59.305 22652.0 0.0\n", "7186 18 5 59.275 59.335 59.185 59.240 21579.0 0.0\n", "7187 19 5 59.245 59.255 59.120 59.215 20226.0 0.0\n", "7188 20 5 59.215 59.410 59.160 59.160 62287.0 0.0\n", "\n", "[7189 rows x 8 columns], 'QCOM': time day_of_week open high low close volume score\n", "0 14 1 84.130 84.16 83.970 84.060 9358.0 0.0\n", "1 15 1 84.070 84.37 83.840 84.280 15758.0 0.0\n", "2 16 1 84.290 84.84 84.280 84.840 7404.0 0.0\n", "3 17 1 84.890 85.26 84.790 84.970 10182.0 0.0\n", "4 18 1 84.970 85.27 84.950 85.120 7335.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 155.150 155.40 154.450 155.335 27482.0 0.0\n", "7185 17 5 155.345 155.68 154.800 155.080 14733.0 0.0\n", "7186 18 5 155.100 155.49 155.030 155.190 18462.0 0.0\n", "7187 19 5 155.190 155.23 154.895 155.120 21531.0 0.0\n", "7188 20 5 155.160 155.24 154.660 154.940 54681.0 0.0\n", "\n", "[7189 rows x 8 columns], 'RBLX': time day_of_week open high low close volume score\n", "0 18 3 64.675 74.720 61.09 70.385 2290524.0 0.000000\n", "1 19 3 70.825 72.220 68.72 70.920 257711.0 0.946122\n", "2 20 3 70.930 71.630 68.28 69.500 262409.0 0.000000\n", "3 21 3 69.500 69.500 69.50 69.500 0.0 0.000000\n", "4 14 4 74.860 77.770 72.19 72.810 368304.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "5938 16 5 42.580 42.860 42.41 42.740 9632.0 0.000000\n", "5939 17 5 42.740 42.750 41.94 42.230 10243.0 0.000000\n", "5940 18 5 42.230 42.245 41.94 42.035 12803.0 0.000000\n", "5941 19 5 42.035 42.050 41.84 41.860 7389.0 0.000000\n", "5942 20 5 41.850 41.850 41.44 41.460 61089.0 0.000000\n", "\n", "[5943 rows x 8 columns], 'SBUX': time day_of_week open high low close volume score\n", "0 14 1 70.310 70.440 70.220 70.350 16222.0 0.0\n", "1 15 1 70.390 70.630 70.330 70.630 13903.0 0.0\n", "2 16 1 70.630 70.670 70.580 70.600 9275.0 0.0\n", "3 17 1 70.600 70.990 70.600 70.780 19923.0 0.0\n", "4 18 1 70.800 70.800 70.580 70.690 9607.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 96.595 96.910 96.530 96.620 29269.0 0.0\n", "7185 17 5 96.620 96.810 96.320 96.320 19357.0 0.0\n", "7186 18 5 96.335 96.425 96.225 96.350 19694.0 0.0\n", "7187 19 5 96.365 96.385 95.730 95.790 16773.0 0.0\n", "7188 20 5 95.790 95.870 95.600 95.615 62078.0 0.0\n", "\n", "[7189 rows x 8 columns], 'SHOP': time day_of_week open high low close volume score\n", "0 14 1 94.280 95.66 94.280 95.630 20880.0 0.0\n", "1 15 1 95.650 95.71 93.980 94.400 94310.0 0.0\n", "2 16 1 94.400 95.58 94.400 95.580 33230.0 0.0\n", "3 17 1 95.580 97.11 95.580 96.370 88150.0 0.0\n", "4 18 1 96.370 97.45 96.370 97.300 84120.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 75.030 76.28 74.790 76.265 24682.0 0.0\n", "7185 17 5 76.265 76.75 76.055 76.580 8933.0 0.0\n", "7186 18 5 76.580 76.77 76.250 76.360 14786.0 0.0\n", "7187 19 5 76.360 76.43 75.950 76.025 15685.0 0.0\n", "7188 20 5 76.090 76.49 75.760 76.225 46945.0 0.0\n", "\n", "[7189 rows x 8 columns], 'SMCI': time day_of_week open high low close volume score\n", "0 14 1 28.050 28.160 28.020 28.020 1122.0 0.000000\n", "1 15 1 28.020 28.170 27.920 28.100 1549.0 0.000000\n", "2 16 1 28.100 28.265 28.100 28.220 3114.0 0.000000\n", "3 17 1 28.220 28.220 27.995 28.145 1700.0 0.000000\n", "4 18 1 28.145 28.185 28.135 28.150 907.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 852.460 855.350 824.930 855.350 48687.0 0.000000\n", "7185 17 5 856.000 878.530 846.830 875.230 70394.0 -0.441834\n", "7186 18 5 875.000 876.850 851.645 859.270 13631.0 0.000000\n", "7187 19 5 860.510 873.050 855.855 873.050 10809.0 0.744281\n", "7188 20 5 873.050 875.490 856.515 860.010 28612.0 0.000000\n", "\n", "[7189 rows x 8 columns], 'SNAP': time day_of_week open high low close volume score\n", "0 14 1 22.565 22.645 22.455 22.475 8417.0 0.0\n", "1 15 1 22.455 22.455 22.225 22.315 31402.0 0.0\n", "2 16 1 22.315 22.625 22.290 22.620 20099.0 0.0\n", "3 17 1 22.630 22.650 22.555 22.565 7683.0 0.0\n", "4 18 1 22.565 22.810 22.565 22.675 19751.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 10.580 10.645 10.490 10.625 60171.0 0.0\n", "7185 17 5 10.630 10.800 10.630 10.790 46121.0 0.0\n", "7186 18 5 10.795 10.890 10.785 10.790 56933.0 0.0\n", "7187 19 5 10.790 10.800 10.710 10.760 53459.0 0.0\n", "7188 20 5 10.765 10.815 10.730 10.790 110284.0 0.0\n", "\n", "[7189 rows x 8 columns], 'TRIP': time day_of_week open high low close volume score\n", "0 14 1 20.370 20.540 20.320 20.540 2915.0 0.0\n", "1 15 1 20.655 20.655 20.195 20.220 7364.0 0.0\n", "2 16 1 20.220 20.485 20.215 20.445 6317.0 0.0\n", "3 17 1 20.435 20.585 20.430 20.535 10412.0 0.0\n", "4 18 1 20.535 20.705 20.495 20.680 6703.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 26.985 26.985 26.880 26.935 2512.0 0.0\n", "7185 17 5 26.935 27.390 26.900 27.385 4635.0 0.0\n", "7186 18 5 27.385 27.395 27.270 27.340 9801.0 0.0\n", "7187 19 5 27.340 27.370 27.265 27.300 10934.0 0.0\n", "7188 20 5 27.300 27.350 27.190 27.310 16841.0 0.0\n", "\n", "[7189 rows x 8 columns], 'TSLA': time day_of_week open high low close volume score\n", "0 14 1 97.17 97.770 96.76 97.420 70620.0 0.000000\n", "1 15 1 97.48 97.480 94.48 96.060 111135.0 0.000000\n", "2 16 1 96.06 97.380 96.05 97.100 41730.0 0.000000\n", "3 17 1 97.50 98.490 97.08 98.230 28860.0 0.000000\n", "4 18 1 98.23 100.840 98.23 100.230 71820.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 195.04 195.225 193.50 194.945 67256.0 0.439064\n", "7185 17 5 195.06 195.350 193.14 193.660 87446.0 -0.327437\n", "7186 18 5 193.77 194.000 192.75 193.270 39868.0 0.000000\n", "7187 19 5 193.09 193.125 192.16 193.010 46479.0 0.000000\n", "7188 20 5 193.10 193.150 191.73 191.970 115326.0 0.000000\n", "\n", "[7189 rows x 8 columns], 'TSM': time day_of_week open high low close volume score\n", "0 14 1 77.070 77.810 77.030 77.69 206434.0 0.922895\n", "1 15 1 77.690 78.200 77.140 77.92 297032.0 -0.938402\n", "2 16 1 77.930 78.650 77.780 77.90 116610.0 0.946411\n", "3 17 1 77.900 78.560 77.790 78.22 149022.0 0.000000\n", "4 18 1 78.200 78.480 77.990 78.43 105894.0 0.000000\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 128.675 129.470 127.945 129.37 25900.0 0.794664\n", "7185 17 5 129.240 129.720 129.125 129.63 27474.0 0.000000\n", "7186 18 5 129.645 129.945 129.300 129.40 24104.0 0.000000\n", "7187 19 5 129.395 129.405 128.860 129.13 12977.0 0.000000\n", "7188 20 5 129.140 129.765 128.850 129.56 66424.0 0.000000\n", "\n", "[7189 rows x 8 columns], 'V': time day_of_week open high low close volume score\n", "0 14 1 191.390 192.400 191.160 192.070 10021.0 0.0\n", "1 15 1 192.030 192.030 190.890 191.360 9189.0 0.0\n", "2 16 1 191.380 192.090 191.130 192.040 11974.0 0.0\n", "3 17 1 192.040 192.420 191.990 192.110 6696.0 0.0\n", "4 18 1 192.010 192.290 191.690 191.690 7708.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 284.415 284.420 283.725 283.790 15999.0 0.0\n", "7185 17 5 283.935 284.225 283.935 284.045 9042.0 0.0\n", "7186 18 5 284.045 284.220 283.560 283.740 10052.0 0.0\n", "7187 19 5 283.620 284.280 283.590 284.230 16395.0 0.0\n", "7188 20 5 284.260 284.600 283.690 283.690 37995.0 0.0\n", "\n", "[7189 rows x 8 columns], 'WFC': time day_of_week open high low close volume score\n", "0 14 1 23.680 23.700 23.520 23.530 60988.0 0.0\n", "1 15 1 23.530 23.600 23.480 23.530 157850.0 0.0\n", "2 16 1 23.540 23.550 23.460 23.460 147400.0 0.0\n", "3 17 1 23.460 23.470 23.360 23.360 191117.0 0.0\n", "4 18 1 23.350 23.350 23.230 23.290 241180.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 53.955 53.955 53.610 53.875 47579.0 0.0\n", "7185 17 5 53.865 54.010 53.790 53.975 75574.0 0.0\n", "7186 18 5 53.975 53.990 53.820 53.900 42300.0 0.0\n", "7187 19 5 53.910 53.930 53.695 53.745 41555.0 0.0\n", "7188 20 5 53.750 53.995 53.745 53.860 123957.0 0.0\n", "\n", "[7189 rows x 8 columns], 'WMT': time day_of_week open high low close volume score\n", "0 14 1 124.70 124.99 124.67 124.86 38713.0 0.0\n", "1 15 1 124.81 124.81 124.36 124.63 12298.0 0.0\n", "2 16 1 124.68 124.72 124.40 124.56 27220.0 0.0\n", "3 17 1 124.50 124.53 124.12 124.32 31125.0 0.0\n", "4 18 1 124.32 124.37 124.09 124.15 15493.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 58.91 58.91 58.72 58.75 51579.0 0.0\n", "7185 17 5 58.74 58.74 58.52 58.59 43473.0 0.0\n", "7186 18 5 58.57 58.69 58.55 58.55 48372.0 0.0\n", "7187 19 5 58.56 58.67 58.45 58.67 43275.0 0.0\n", "7188 20 5 58.67 58.80 58.54 58.54 224949.0 0.0\n", "\n", "[7189 rows x 8 columns], 'XOM': time day_of_week open high low close volume score\n", "0 14 1 36.520 36.590 36.380 36.380 27037.0 0.0\n", "1 15 1 36.370 36.460 36.160 36.170 30180.0 0.0\n", "2 16 1 36.170 36.310 36.150 36.210 19694.0 0.0\n", "3 17 1 36.210 36.390 36.170 36.320 22894.0 0.0\n", "4 18 1 36.300 36.350 36.240 36.270 17921.0 0.0\n", "... ... ... ... ... ... ... ... ...\n", "7184 16 5 103.885 103.960 103.535 103.535 36405.0 0.0\n", "7185 17 5 103.535 103.710 103.335 103.655 23612.0 0.0\n", "7186 18 5 103.670 103.985 103.580 103.870 32235.0 0.0\n", "7187 19 5 103.880 103.980 103.720 103.935 28721.0 0.0\n", "7188 20 5 103.940 104.080 103.770 103.810 60089.0 0.0\n", "\n", "[7189 rows x 8 columns]}\n" ] } ], "source": [ "def get_bars(client, symbol):\n", " query = f\"\"\"\n", "WITH bars AS (\n", " SELECT symbol,\n", " time,\n", " open,\n", " high,\n", " low,\n", " close,\n", " volume\n", " FROM bars FINAL\n", " WHERE symbol = '{symbol}'\n", " ORDER BY time WITH FILL step INTERVAL 1 MINUTE INTERPOLATE (\n", " symbol AS symbol,\n", " open AS close,\n", " high AS close,\n", " low AS close,\n", " close AS close\n", " )\n", "),\n", "news AS (\n", " SELECT time_updated AS time,\n", " symbols,\n", " CAST(sentiment, 'Int8') * confidence AS score\n", " FROM news FINAL\n", " WHERE has(symbols, '{symbol}')\n", "),\n", "grouped AS (\n", " SELECT toStartOfHour(bars.time),\n", " toHour(toStartOfHour(bars.time)) AS time,\n", " toDayOfWeek(calendar.date) AS day_of_week,\n", " any(bars.open) AS open,\n", " max(bars.high) AS high,\n", " min(bars.low) AS low,\n", " anyLast(bars.close) AS close,\n", " sum(bars.volume) AS volume,\n", " avg(news.score) AS score\n", " FROM bars\n", " INNER JOIN calendar ON toDate(bars.time) = calendar.date\n", " LEFT JOIN news ON toStartOfHour(bars.time) = toStartOfHour(news.time)\n", " WHERE bars.time BETWEEN calendar.open AND calendar.close\n", " GROUP BY toStartOfHour(bars.time),\n", " toDayOfWeek(calendar.date)\n", " ORDER BY toStartOfHour(bars.time)\n", ")\n", "SELECT time,\n", " day_of_week,\n", " open,\n", " high,\n", " low,\n", " close,\n", " volume,\n", " score\n", "FROM grouped\n", " \"\"\"\n", "\n", " return client.query_df(query)\n", "\n", "def get_symbols(client):\n", " query = \"\"\"\n", " SELECT symbol\n", " FROM assets FINAL\n", " WHERE class = 'us_equity'\n", " \"\"\"\n", " return client.query_df(query)\n", "\n", "client = get_client(host='localhost', port=8123, user='qrust', password='qrust', database='qrust')\n", "\n", "symbols = get_symbols(client)\n", "\n", "bars = {}\n", "for symbol in symbols['symbol']:\n", " bars[symbol] = get_bars(client, symbol)\n", "\n", "bars\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Preprocessing\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "np.random.seed(0)\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "scaler = StandardScaler()\n", "\n", "def scale(df, keys):\n", " df.loc[:, keys] = scaler.fit_transform(df[keys])\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "def position(df):\n", " smooth_close = df['close'].rolling(window=32).mean()\n", " smooth_close = smooth_close.shift(-16)\n", " derivative = smooth_close.diff()\n", "\n", " df['position'] = np.where(derivative > 0, 1, 0)\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "def sma(df):\n", " df['sma_6'] = df['close'].rolling(window=6).mean()\n", " df['sma_12'] = df['close'].rolling(window=12).mean()\n", " df['sma_24'] = df['close'].rolling(window=24).mean()\n", " df['sma_48'] = df['close'].rolling(window=48).mean()\n", " df['sma_72'] = df['close'].rolling(window=72).mean()\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "def ema(df):\n", " df['ema_6'] = df['close'].ewm(span=6, adjust=False).mean()\n", " df['ema_12'] = df['close'].ewm(span=12, adjust=False).mean()\n", " df['ema_24'] = df['close'].ewm(span=24, adjust=False).mean()\n", " df['ema_48'] = df['close'].ewm(span=48, adjust=False).mean()\n", " df['ema_72'] = df['close'].ewm(span=72, adjust=False).mean()\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "def macd(df):\n", " ema_12 = df['close'].ewm(span=12, adjust=False).mean()\n", " ema_26 = df['close'].ewm(span=26, adjust=False).mean()\n", "\n", " df['macd'] = ema_12 - ema_26\n", " df['macd_signal'] = df['macd'].ewm(span=9, adjust=False).mean()\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def rsi(df):\n", " delta = df['close'].diff()\n", " gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()\n", " loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()\n", "\n", " rs = gain / loss\n", " df['rsi'] = 100 - (100 / (1 + rs))\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "def preprocess(df):\n", " df = position(df)\n", "\n", " df = sma(df)\n", " df = ema(df)\n", " df = macd(df)\n", " df = rsi(df)\n", "\n", " df = scale(df, ['open', 'high', 'low', 'close', 'volume', 'sma_6', 'sma_12', 'sma_24', 'sma_48', 'sma_72', 'ema_6', 'ema_12', 'ema_24', 'ema_48', 'ema_72', 'macd', 'macd_signal'])\n", " df = df.dropna()\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'AAPL': time day_of_week open high low close volume \\\n", " 71 21 4 -1.684193 -1.699834 -1.650000 -1.667291 -0.273717 \n", " 72 14 5 -1.734334 -1.711148 -1.700097 -1.680271 -0.136885 \n", " 73 15 5 -1.697255 -1.710729 -1.705149 -1.721305 -0.112472 \n", " 74 16 5 -1.743182 -1.739643 -1.737144 -1.748103 -0.057222 \n", " 75 17 5 -1.768463 -1.776101 -1.765772 -1.770714 -0.032899 \n", " ... ... ... ... ... ... ... ... \n", " 7185 17 5 1.339828 1.312727 1.346601 1.333631 -0.183914 \n", " 7186 18 5 1.335825 1.310631 1.359231 1.330490 -0.207178 \n", " 7187 19 5 1.332875 1.301412 1.352074 1.325675 -0.206414 \n", " 7188 20 5 1.327398 1.304136 1.352285 1.321069 -0.031308 \n", " 7189 21 5 1.322974 1.290936 1.354600 1.321069 -0.273717 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.687459 ... -1.985862 -2.175991 -1.691094 -1.729581 \n", " 72 0.0 1 -1.679621 ... -1.969523 -2.164841 -1.688302 -1.722008 \n", " 73 0.0 1 -1.682701 ... -1.954550 -2.154073 -1.698048 -1.721925 \n", " 74 0.0 1 -1.697117 ... -1.940394 -2.143840 -1.712676 -1.725984 \n", " 75 0.0 1 -1.714403 ... -1.926929 -2.134126 -1.729595 -1.732904 \n", " ... ... ... ... ... ... ... ... ... \n", " 7185 0.0 0 1.371196 ... 1.340909 1.401947 1.358976 1.359274 \n", " 7186 0.0 0 1.359894 ... 1.340705 1.398158 1.351751 1.355660 \n", " 7187 0.0 0 1.347787 ... 1.340439 1.394399 1.345213 1.351860 \n", " 7188 0.0 0 1.337954 ... 1.339091 1.390628 1.339225 1.347934 \n", " 7189 0.0 0 1.331656 ... 1.337654 1.386857 1.334948 1.344613 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.795377 -1.924553 -2.021402 1.723403 1.768411 92.400000 \n", " 72 -1.785990 -1.914293 -2.011730 1.678510 1.773698 91.304348 \n", " 73 -1.780643 -1.906132 -2.003452 1.548934 1.750217 76.053963 \n", " 74 -1.777873 -1.899401 -1.996137 1.380271 1.695364 66.612642 \n", " 75 -1.777138 -1.893871 -1.989646 1.190490 1.610898 59.247649 \n", " ... ... ... ... ... ... ... \n", " 7185 1.351521 1.369091 1.401539 0.193723 0.193206 64.696223 \n", " 7186 1.350571 1.368201 1.400268 0.130681 0.182532 54.170958 \n", " 7187 1.349310 1.367150 1.398899 0.070123 0.161042 52.917505 \n", " 7188 1.347781 1.365953 1.397441 0.012579 0.131544 42.216981 \n", " 7189 1.346374 1.364805 1.396023 -0.033606 0.098070 46.493506 \n", " \n", " [7119 rows x 22 columns],\n", " 'ABNB': time day_of_week open high low close volume \\\n", " 71 17 3 0.672880 0.696063 0.707007 0.677807 -0.116615 \n", " 72 18 3 0.651573 0.728749 0.710542 0.680970 -0.146635 \n", " 73 19 3 0.655939 0.685804 0.718848 0.728589 -0.288915 \n", " 74 20 3 0.702046 0.680415 0.702236 0.665682 -0.176353 \n", " 75 21 3 0.639522 0.605652 0.702236 0.665682 -0.390705 \n", " ... ... ... ... ... ... ... ... \n", " 6415 16 5 0.397983 0.369542 0.425658 0.427057 -0.010981 \n", " 6416 17 5 0.397284 0.407619 0.450399 0.465540 -0.180893 \n", " 6417 18 5 0.440422 0.419616 0.494228 0.471690 -0.243032 \n", " 6418 19 5 0.448806 0.415790 0.459943 0.437952 -0.277159 \n", " 6419 20 5 0.413177 0.400838 0.461180 0.452712 0.065958 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 0.722217 ... 0.422671 0.239793 0.728512 0.764612 \n", " 72 0.0 0 0.698834 ... 0.449112 0.245701 0.716018 0.752669 \n", " 73 0.0 0 0.683421 ... 0.476488 0.251365 0.720774 0.749952 \n", " 74 0.0 0 0.684686 ... 0.501666 0.258469 0.706099 0.737893 \n", " 75 0.0 0 0.688745 ... 0.526845 0.265572 0.695617 0.727688 \n", " ... ... ... ... ... ... ... ... ... \n", " 6415 0.0 0 0.489473 ... 0.416608 0.411962 0.463408 0.455249 \n", " 6416 0.0 0 0.476855 ... 0.421267 0.414674 0.464769 0.457473 \n", " 6417 0.0 0 0.464737 ... 0.424876 0.417191 0.467507 0.460309 \n", " 6418 0.0 0 0.446972 ... 0.427256 0.419135 0.459771 0.457473 \n", " 6419 0.0 0 0.448913 ... 0.430545 0.421676 0.458486 0.457364 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.704514 0.531906 0.432081 1.200402 2.176329 34.363387 \n", " 72 0.703416 0.538669 0.439528 1.018594 1.960418 40.851554 \n", " 73 0.706268 0.547146 0.448117 0.921873 1.766865 44.324090 \n", " 74 0.703790 0.552648 0.454692 0.759789 1.577126 35.192563 \n", " 75 0.701509 0.557926 0.461086 0.624114 1.396124 28.305583 \n", " ... ... ... ... ... ... ... \n", " 6415 0.430305 0.411733 0.394939 0.448128 0.418462 66.050354 \n", " 6416 0.433669 0.414400 0.397309 0.432012 0.427833 68.166728 \n", " 6417 0.437262 0.417215 0.399787 0.421841 0.433140 65.889328 \n", " 6418 0.437831 0.418506 0.401243 0.368401 0.425881 61.241734 \n", " 6419 0.439552 0.420361 0.403077 0.340084 0.413976 46.501014 \n", " \n", " [6349 rows x 22 columns],\n", " 'ADBE': time day_of_week open high low close volume \\\n", " 71 21 4 -0.185866 -0.204977 -0.139654 -0.159910 -0.728914 \n", " 72 14 5 -0.259398 -0.265654 -0.217964 -0.220726 -0.529038 \n", " 73 15 5 -0.245598 -0.264648 -0.231100 -0.248360 -0.376826 \n", " 74 16 5 -0.280551 -0.299565 -0.282331 -0.302317 -0.446884 \n", " 75 17 5 -0.328096 -0.347060 -0.319364 -0.336205 -0.485960 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.663789 0.675498 0.693065 0.708449 -0.234687 \n", " 7185 17 5 0.676682 0.706390 0.724086 0.749648 -0.015251 \n", " 7186 18 5 0.717981 0.726113 0.766828 0.758070 0.047163 \n", " 7187 19 5 0.730975 0.722088 0.770870 0.759280 -0.433214 \n", " 7188 20 5 0.732184 0.712126 0.755764 0.741832 0.731328 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 -0.181795 ... -0.335706 -0.371435 -0.185685 -0.220836 \n", " 72 0.0 0 -0.181298 ... -0.330064 -0.368297 -0.195828 -0.220867 \n", " 73 0.0 0 -0.188128 ... -0.326124 -0.365375 -0.211001 -0.225167 \n", " 74 0.0 0 -0.209127 ... -0.323650 -0.363329 -0.237315 -0.237151 \n", " 75 0.0 0 -0.238609 ... -0.322214 -0.361809 -0.265831 -0.252532 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 0.644714 ... 0.794568 0.979666 0.663494 0.640665 \n", " 7185 0.0 0 0.668504 ... 0.783765 0.969451 0.689072 0.658184 \n", " 7186 0.0 0 0.699218 ... 0.773037 0.959448 0.709757 0.674311 \n", " 7187 0.0 0 0.730134 ... 0.762870 0.949186 0.724879 0.688143 \n", " 7188 0.0 0 0.737285 ... 0.752074 0.938832 0.730676 0.697149 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.264597 -0.314022 -0.342255 1.128337 0.921156 82.680036 \n", " 72 -0.261077 -0.310160 -0.338850 1.042490 0.962050 60.040650 \n", " 73 -0.260066 -0.307598 -0.336308 0.911545 0.966479 55.547198 \n", " 74 -0.263486 -0.307370 -0.335339 0.697689 0.923826 47.507237 \n", " 75 -0.269364 -0.308552 -0.335342 0.458725 0.838083 45.798450 \n", " ... ... ... ... ... ... ... \n", " 7184 0.661968 0.790005 0.906232 -0.657756 -1.498816 73.142357 \n", " 7185 0.669587 0.788899 0.902480 -0.399786 -1.285484 77.165354 \n", " 7186 0.677275 0.788186 0.899065 -0.177710 -1.066846 72.919528 \n", " 7187 0.684446 0.787553 0.895777 0.000270 -0.853488 73.008486 \n", " 7188 0.689637 0.786224 0.892094 0.106893 -0.659770 64.632286 \n", " \n", " [7118 rows x 22 columns],\n", " 'AMD': time day_of_week open high low close volume \\\n", " 71 21 4 -0.488297 -0.526368 -0.468676 -0.506327 -0.706607 \n", " 72 14 5 -0.519325 -0.538501 -0.505286 -0.521191 -0.568293 \n", " 73 15 5 -0.505853 -0.543557 -0.525030 -0.552140 -0.454263 \n", " 74 16 5 -0.533411 -0.561758 -0.559172 -0.595917 -0.363529 \n", " 75 17 5 -0.582198 -0.617978 -0.633214 -0.621980 0.133603 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 3.175878 3.110933 3.146206 3.146317 -0.319146 \n", " 7185 17 5 3.173224 3.123471 3.156078 3.126566 -0.302535 \n", " 7186 18 5 3.152811 3.124684 3.197213 3.160774 -0.481983 \n", " 7187 19 5 3.191800 3.133582 3.219014 3.170954 -0.575660 \n", " 7188 20 5 3.203436 3.133582 3.193511 3.149371 -0.275607 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 -0.513507 ... -0.727922 -0.869559 -0.515999 \n", " 72 0.932555 0 -0.513405 ... -0.720460 -0.859571 -0.517798 \n", " 73 0.000000 0 -0.518144 ... -0.714246 -0.849468 -0.527970 \n", " 74 0.000000 0 -0.533215 ... -0.708736 -0.840543 -0.547808 \n", " 75 0.000000 0 -0.552582 ... -0.704066 -0.831939 -0.569461 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.000000 0 3.290507 ... 3.100267 3.131748 3.241004 \n", " 7185 -0.441834 0 3.244511 ... 3.099632 3.134258 3.213267 \n", " 7186 0.000000 0 3.210619 ... 3.099480 3.136890 3.203279 \n", " 7187 0.000000 0 3.178432 ... 3.098541 3.139453 3.199067 \n", " 7188 0.000000 0 3.165987 ... 3.096610 3.141792 3.189861 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.536357 -0.592872 -0.710019 -0.803724 1.203587 1.440767 77.479339 \n", " 72 -0.534202 -0.587214 -0.702332 -0.795988 1.130069 1.395710 79.787234 \n", " 73 -0.537182 -0.584523 -0.696258 -0.789347 1.010464 1.333958 58.833333 \n", " 74 -0.546497 -0.585603 -0.692269 -0.784138 0.836136 1.247085 43.850932 \n", " 75 -0.558424 -0.588713 -0.689538 -0.779816 0.648511 1.137258 33.333333 \n", " ... ... ... ... ... ... ... ... \n", " 7184 3.210743 3.136530 3.124709 3.154289 2.001372 1.788568 74.219331 \n", " 7185 3.202506 3.140120 3.128996 3.157736 1.764462 1.810309 72.840410 \n", " 7186 3.200845 3.146201 3.134545 3.162065 1.611099 1.794738 72.850348 \n", " 7187 3.201019 3.152623 3.140294 3.166566 1.487518 1.755719 73.096447 \n", " 7188 3.197817 3.156778 3.144903 3.170328 1.339206 1.692625 49.523810 \n", " \n", " [7118 rows x 22 columns],\n", " 'AMZN': time day_of_week open high low close volume \\\n", " 71 21 4 0.736285 0.713745 0.757653 0.734349 -0.642157 \n", " 72 14 5 0.723252 0.716008 0.739052 0.736607 -0.519860 \n", " 73 15 5 0.738519 0.716008 0.703710 0.680899 -0.460241 \n", " 74 16 5 0.678569 0.666221 0.676925 0.661325 -0.478984 \n", " 75 17 5 0.664047 0.640574 0.623726 0.613898 -0.390781 \n", " ... ... ... ... ... ... ... ... \n", " 7185 17 5 1.233385 1.225189 1.245187 1.238362 -0.452942 \n", " 7186 18 5 1.233944 1.224812 1.235514 1.224434 -0.401696 \n", " 7187 19 5 1.222587 1.213119 1.234770 1.224246 -0.487164 \n", " 7188 20 5 1.221470 1.256494 1.232538 1.247772 -0.237934 \n", " 7189 21 5 1.244184 1.228206 1.265090 1.247772 -0.642157 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 1 0.732769 ... 0.613885 0.541709 0.729234 \n", " 72 0.000000 0 0.738808 ... 0.622021 0.546154 0.732128 \n", " 73 0.000000 0 0.732517 ... 0.627381 0.550361 0.718226 \n", " 74 0.000000 0 0.716100 ... 0.631872 0.554293 0.702684 \n", " 75 0.000000 0 0.695972 ... 0.635359 0.557559 0.677986 \n", " ... ... ... ... ... ... ... ... \n", " 7185 0.000000 0 1.237514 ... 1.077379 1.101429 1.231136 \n", " 7186 -0.471062 0 1.235816 ... 1.080766 1.101304 1.230477 \n", " 7187 0.000000 0 1.234086 ... 1.084059 1.100993 1.229952 \n", " 7188 0.000000 0 1.237074 ... 1.087162 1.101199 1.236321 \n", " 7189 0.000000 0 1.240408 ... 1.090266 1.101405 1.240870 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.709234 0.671329 0.616571 0.581481 0.970142 0.984974 69.204152 \n", " 72 0.714129 0.677136 0.621986 0.586216 0.950967 0.993419 67.279412 \n", " 73 0.709655 0.677985 0.624874 0.589264 0.830319 0.974128 47.334410 \n", " 74 0.702842 0.677188 0.626834 0.591683 0.692920 0.929033 47.030498 \n", " 75 0.689744 0.672628 0.626751 0.592711 0.496653 0.850584 33.913043 \n", " ... ... ... ... ... ... ... ... \n", " 7185 1.199227 1.148229 1.111063 1.088447 1.280170 1.122685 87.621098 \n", " 7186 1.204178 1.155235 1.116485 1.092918 1.238657 1.165696 82.528736 \n", " 7187 1.208339 1.161665 1.121678 1.097260 1.191532 1.189931 82.481333 \n", " 7188 1.215497 1.169478 1.127632 1.102141 1.180827 1.207009 71.733086 \n", " 7189 1.221554 1.176666 1.133343 1.106888 1.158819 1.215919 71.280603 \n", " \n", " [7119 rows x 22 columns],\n", " 'ARM': time day_of_week open high low close volume \\\n", " 71 15 3 -0.697893 -0.690165 -0.724317 -0.716016 -0.078853 \n", " 72 16 3 -0.716331 -0.721515 -0.740299 -0.735537 -0.121560 \n", " 73 17 3 -0.735005 -0.727923 -0.744658 -0.732950 -0.096897 \n", " 74 18 3 -0.733350 -0.697717 -0.726254 -0.698142 -0.102667 \n", " 75 19 3 -0.696002 -0.679410 -0.695742 -0.687323 0.000761 \n", " .. ... ... ... ... ... ... ... \n", " 885 16 5 3.061997 3.047784 3.085848 3.113306 -0.002947 \n", " 886 17 5 3.121801 3.022613 3.176416 3.096372 -0.124484 \n", " 887 18 5 3.115419 3.048699 3.195789 3.110483 -0.102199 \n", " 888 19 5 3.125820 3.013002 3.154621 3.061564 0.085085 \n", " 889 20 5 3.089181 2.984627 3.117571 3.081790 0.039771 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 1 -0.687768 ... -0.736697 -0.633665 -0.694456 \n", " 72 0.000000 1 -0.697165 ... -0.740594 -0.640223 -0.707654 \n", " 73 0.000000 1 -0.707438 ... -0.744249 -0.646333 -0.716327 \n", " 74 0.000000 1 -0.711818 ... -0.746568 -0.651031 -0.712375 \n", " 75 0.000000 0 -0.714366 ... -0.748830 -0.659628 -0.706399 \n", " .. ... ... ... ... ... ... ... \n", " 885 0.000000 0 3.021699 ... 3.283621 3.718041 3.070215 \n", " 886 -0.883668 0 3.032927 ... 3.290534 3.734040 3.098464 \n", " 887 0.000000 0 3.075851 ... 3.298792 3.748969 3.122756 \n", " 888 0.000000 0 3.110492 ... 3.304539 3.762686 3.125846 \n", " 889 0.891405 0 3.141869 ... 3.312380 3.777694 3.133950 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.696354 -0.710075 -0.696303 -0.662160 -0.212327 -0.220600 44.282511 \n", " 72 -0.703941 -0.713784 -0.699868 -0.666302 -0.253271 -0.229476 33.562428 \n", " 73 -0.709945 -0.716971 -0.703160 -0.670238 -0.283267 -0.242957 19.889503 \n", " 74 -0.709439 -0.716863 -0.704612 -0.672809 -0.278476 -0.252722 33.486239 \n", " 75 -0.707273 -0.715820 -0.705474 -0.674920 -0.265745 -0.257826 36.819172 \n", " .. ... ... ... ... ... ... ... \n", " 885 3.086767 3.159995 3.367174 3.484678 0.699600 0.510481 66.004335 \n", " 886 3.112254 3.181257 3.385581 3.505158 0.756528 0.570148 66.004335 \n", " 887 3.136086 3.202050 3.403929 3.525585 0.800956 0.627330 69.707207 \n", " 888 3.148399 3.216908 3.419130 3.543688 0.784482 0.669572 67.088150 \n", " 889 3.162065 3.232344 3.434702 3.562024 0.775992 0.701561 50.596529 \n", " \n", " [819 rows x 22 columns],\n", " 'BA': time day_of_week open high low close volume \\\n", " 71 21 4 -0.826848 -0.860994 -0.797188 -0.830845 -0.412959 \n", " 72 14 5 -0.883662 -0.891963 -0.853938 -0.877373 -0.336026 \n", " 73 15 5 -0.868419 -0.875240 -0.867010 -0.901023 -0.125320 \n", " 74 16 5 -0.896749 -0.899706 -0.874393 -0.889275 -0.303274 \n", " 75 17 5 -0.885048 -0.913952 -0.878084 -0.911998 -0.318768 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.054149 0.048886 0.059756 0.045306 -0.107314 \n", " 7185 17 5 0.049838 0.028446 0.067446 0.049943 -0.301665 \n", " 7186 18 5 0.047682 0.061583 0.043146 0.083487 -0.081561 \n", " 7187 19 5 0.085558 0.056628 0.092668 0.079159 -0.341049 \n", " 7188 20 5 0.080323 0.059106 0.081595 0.052417 -0.133010 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 1 -0.839897 ... -1.059335 -1.024933 -0.833099 \n", " 72 0.000000 1 -0.848494 ... -1.053273 -1.025550 -0.846359 \n", " 73 -0.303302 1 -0.852108 ... -1.048159 -1.025722 -0.862606 \n", " 74 0.000000 1 -0.862073 ... -1.042901 -1.025317 -0.870846 \n", " 75 0.000000 1 -0.875626 ... -1.037985 -1.025404 -0.883241 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.000000 0 0.055802 ... 0.123683 0.160732 0.055592 \n", " 7185 0.000000 0 0.049967 ... 0.122154 0.157212 0.054107 \n", " 7186 0.000000 0 0.051594 ... 0.121142 0.154145 0.062657 \n", " 7187 0.000000 0 0.052497 ... 0.119993 0.150965 0.067524 \n", " 7188 0.000000 0 0.060500 ... 0.118314 0.147312 0.063339 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.846616 -0.903342 -0.964867 -0.979047 1.030538 1.258468 51.622060 \n", " 72 -0.851891 -0.901753 -0.961761 -0.976727 0.906870 1.199716 37.305917 \n", " 73 -0.860011 -0.902200 -0.959762 -0.975134 0.767457 1.123047 41.348837 \n", " 74 -0.865065 -0.901663 -0.957358 -0.973255 0.665209 1.039953 33.979058 \n", " 75 -0.872855 -0.903002 -0.955994 -0.972066 0.546588 0.948235 24.906667 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.070878 0.093493 0.130900 0.162747 -0.431427 -0.400212 41.522491 \n", " 7185 0.067801 0.090162 0.127759 0.159827 -0.427556 -0.411195 44.614148 \n", " 7186 0.070383 0.089804 0.126137 0.157928 -0.374425 -0.408676 51.117103 \n", " 7187 0.071898 0.089126 0.124402 0.155960 -0.334565 -0.398178 50.571646 \n", " 7188 0.069046 0.086344 0.121628 0.153295 -0.335896 -0.390063 38.338926 \n", " \n", " [7118 rows x 22 columns],\n", " 'BABA': time day_of_week open high low close volume \\\n", " 71 21 4 1.692610 1.677409 1.703094 1.686974 -0.450757 \n", " 72 14 5 1.567046 1.566522 1.577201 1.561422 0.118387 \n", " 73 15 5 1.565494 1.552432 1.538052 1.522477 -0.060867 \n", " 74 16 5 1.527543 1.514812 1.498482 1.485078 0.251117 \n", " 75 17 5 1.487898 1.472965 1.452433 1.453725 0.175353 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.931049 -0.940065 -0.919624 -0.924873 -0.305034 \n", " 7185 17 5 -0.928298 -0.939361 -0.916597 -0.928528 -0.264942 \n", " 7186 18 5 -0.931825 -0.942954 -0.917864 -0.929794 -0.341893 \n", " 7187 19 5 -0.933236 -0.944997 -0.923215 -0.931340 -0.284157 \n", " 7188 20 5 -0.934223 -0.945138 -0.921666 -0.931621 -0.330547 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 1.671519 ... 1.593023 1.562601 1.673966 \n", " 72 -0.478290 0 1.658362 ... 1.594785 1.563827 1.641814 \n", " 73 0.000000 0 1.636669 ... 1.595426 1.564898 1.607715 \n", " 74 0.000000 0 1.606509 ... 1.595346 1.565190 1.572668 \n", " 75 0.000000 0 1.567602 ... 1.594370 1.565010 1.538672 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.000000 0 -0.930466 ... -0.954455 -0.964770 -0.930934 \n", " 7185 -0.332342 0 -0.930408 ... -0.953506 -0.963777 -0.930630 \n", " 7186 0.000000 0 -0.930525 ... -0.952647 -0.962946 -0.930775 \n", " 7187 0.000000 0 -0.930900 ... -0.951871 -0.962121 -0.931320 \n", " 7188 0.000000 0 -0.929540 ... -0.951127 -0.961353 -0.931790 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 1.662995 1.640008 1.596397 1.565790 1.135479 1.296917 58.886159 \n", " 72 1.647249 1.633517 1.594715 1.565398 0.719482 1.192703 29.474216 \n", " 73 1.627929 1.624427 1.591511 1.563948 0.257343 1.009687 25.357143 \n", " 74 1.605825 1.613069 1.586909 1.561512 -0.230553 0.758075 22.417934 \n", " 75 1.582294 1.600110 1.581215 1.558282 -0.713023 0.452757 20.633751 \n", " ... ... ... ... ... ... ... ... \n", " 7184 -0.935051 -0.944113 -0.958021 -0.967422 0.427624 0.469158 60.000000 \n", " 7185 -0.934428 -0.943237 -0.957181 -0.966718 0.416606 0.465191 61.016949 \n", " 7186 -0.934096 -0.942532 -0.956428 -0.966068 0.400145 0.458468 57.080292 \n", " 7187 -0.934053 -0.942008 -0.955768 -0.965479 0.378675 0.448460 55.304102 \n", " 7188 -0.934060 -0.941548 -0.955147 -0.964913 0.357720 0.435935 58.885542 \n", " \n", " [7118 rows x 22 columns],\n", " 'BCS': time day_of_week open high low close volume \\\n", " 71 21 4 -2.097063 -2.120302 -2.060520 -2.082336 -0.586186 \n", " 72 14 5 -2.218348 -2.214566 -2.181705 -2.183221 -0.562104 \n", " 73 15 5 -2.198639 -2.207779 -2.162012 -2.169669 0.793131 \n", " 74 16 5 -2.184995 -2.173844 -2.148379 -2.135790 -0.423630 \n", " 75 17 5 -2.150883 -2.146696 -2.124142 -2.108687 -0.387507 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.555294 0.540941 0.574506 0.574551 -0.016638 \n", " 7185 17 5 0.578035 0.567335 0.612376 0.600902 -0.185757 \n", " 7186 18 5 0.604566 0.567335 0.616163 0.578315 -0.261014 \n", " 7187 19 5 0.581825 0.544712 0.604802 0.570787 0.693129 \n", " 7188 20 5 0.574245 0.563565 0.608589 0.597137 0.973267 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -2.097815 ... -2.214807 -2.177490 -2.092934 -2.096808 \n", " 72 0.0 1 -2.112456 ... -2.211821 -2.180748 -2.121797 -2.112072 \n", " 73 0.0 1 -2.125961 ... -2.209186 -2.183524 -2.138520 -2.122889 \n", " 74 0.0 1 -2.135553 ... -2.206471 -2.185775 -2.140734 -2.126794 \n", " 75 0.0 1 -2.139971 ... -2.203261 -2.187586 -2.134531 -2.125901 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 0.562923 ... 0.182185 -0.000222 0.567286 0.550847 \n", " 7185 0.0 0 0.574282 ... 0.202546 0.012694 0.578057 0.559471 \n", " 7186 0.0 0 0.577437 ... 0.222668 0.025020 0.579263 0.563270 \n", " 7187 0.0 0 0.579331 ... 0.242471 0.037507 0.577963 0.565318 \n", " 7188 0.0 0 0.583748 ... 0.262593 0.050208 0.584602 0.571132 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -2.114655 -2.127934 -2.120185 0.296295 0.413140 33.082707 \n", " 72 -2.121331 -2.130940 -2.122512 0.123906 0.357613 17.322835 \n", " 73 -2.126380 -2.133264 -2.124398 0.007188 0.287889 22.794118 \n", " 74 -2.128291 -2.134095 -2.125290 -0.034215 0.223133 33.753943 \n", " 75 -2.127862 -2.133772 -2.125405 -0.026260 0.173054 38.235294 \n", " ... ... ... ... ... ... ... \n", " 7184 0.466618 0.285722 0.174347 1.899700 2.548830 62.500000 \n", " 7185 0.478092 0.299185 0.186577 1.838969 2.437970 64.705882 \n", " 7186 0.486825 0.311166 0.197843 1.736194 2.327002 55.223881 \n", " 7187 0.494252 0.322346 0.208592 1.624146 2.213937 53.623188 \n", " 7188 0.503211 0.334159 0.219779 1.556727 2.108869 60.273973 \n", " \n", " [7118 rows x 22 columns],\n", " 'COIN': time day_of_week open high low close volume \\\n", " 71 16 2 1.902625 1.840654 1.930651 1.866338 -0.303792 \n", " 72 17 2 1.867483 1.816586 1.931577 1.872827 -0.280306 \n", " 73 18 2 1.872715 1.814683 1.908991 1.862923 -0.227403 \n", " 74 19 2 1.863503 1.827221 1.930187 1.873965 -0.180107 \n", " 75 20 2 1.873852 1.811772 1.940728 1.873965 -0.350851 \n", " ... ... ... ... ... ... ... ... \n", " 5747 16 5 0.304283 0.282671 0.300240 0.316082 -0.121369 \n", " 5748 17 5 0.319409 0.303437 0.357576 0.338680 -0.211218 \n", " 5749 18 5 0.341586 0.303549 0.360355 0.321604 -0.289575 \n", " 5750 19 5 0.322025 0.284854 0.344950 0.315171 -0.226566 \n", " 5751 20 5 0.316623 0.288548 0.344719 0.321831 -0.000587 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 1 1.904067 ... 1.990992 2.102139 1.887945 \n", " 72 0.000000 0 1.900213 ... 1.983111 2.090319 1.885155 \n", " 73 0.000000 1 1.894699 ... 1.975718 2.085734 1.880323 \n", " 74 0.000000 1 1.891036 ... 1.968482 2.081600 1.880037 \n", " 75 0.000000 1 1.887029 ... 1.961247 2.077372 1.879833 \n", " ... ... ... ... ... ... ... ... \n", " 5747 0.000000 0 0.348748 ... 0.381161 0.292906 0.333725 \n", " 5748 0.000000 0 0.343750 ... 0.383322 0.297100 0.335174 \n", " 5749 0.000000 0 0.334344 ... 0.384632 0.301212 0.331314 \n", " 5750 0.000000 0 0.323860 ... 0.386024 0.305309 0.326712 \n", " 5751 -0.696359 0 0.323001 ... 0.387368 0.309177 0.325335 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 1.874078 1.876844 1.948262 2.028235 -0.302279 -0.887293 63.222822 \n", " 72 1.874375 1.876266 1.944493 2.023142 -0.270083 -0.770581 71.937262 \n", " 73 1.873098 1.874941 1.940475 2.017920 -0.262018 -0.675398 69.378577 \n", " 74 1.873722 1.874607 1.937070 2.013141 -0.228295 -0.591668 70.546599 \n", " 75 1.874250 1.874299 1.933805 2.008492 -0.198396 -0.517960 50.981675 \n", " ... ... ... ... ... ... ... ... \n", " 5747 0.338233 0.338755 0.299847 0.242508 -0.001546 0.091464 54.003287 \n", " 5748 0.338103 0.338392 0.300981 0.244656 0.002473 0.073715 60.066815 \n", " 5749 0.335359 0.336691 0.301375 0.246282 -0.029933 0.052229 57.480818 \n", " 5750 0.332044 0.334611 0.301491 0.247688 -0.067817 0.026521 56.129032 \n", " 5751 0.330266 0.333230 0.301873 0.249237 -0.081651 0.002844 44.773382 \n", " \n", " [5681 rows x 22 columns],\n", " 'CSCO': time day_of_week open high low close volume \\\n", " 4366 14 1 -0.198563 -0.196586 -0.193532 -0.197843 -0.246189 \n", " 4367 15 1 -0.203094 -0.202559 -0.199614 -0.190324 -0.197457 \n", " 4368 16 1 -0.194032 -0.195092 -0.185930 -0.182806 0.020853 \n", " 4369 17 1 -0.184971 -0.168212 -0.172246 -0.158747 -0.010899 \n", " 4370 18 1 -0.156276 -0.153278 -0.146398 -0.145214 0.117970 \n", " ... ... ... ... ... ... ... ... \n", " 11550 16 5 0.862384 0.859212 0.874593 0.877300 0.083864 \n", " 11551 17 5 0.882017 0.867425 0.884476 0.866022 -0.137896 \n", " 11552 18 5 0.870691 0.856225 0.885997 0.869781 -0.229531 \n", " 11553 19 5 0.875976 0.862198 0.888277 0.876548 -0.202979 \n", " 11554 20 5 0.880507 0.861452 0.867751 0.844218 0.476633 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 4366 0.0 1 -0.838845 ... -0.953988 -0.960855 -0.747062 -0.848635 \n", " 4367 0.0 1 -0.709426 ... -0.937764 -0.950023 -0.587937 -0.747275 \n", " 4368 0.0 1 -0.578753 ... -0.921384 -0.939087 -0.472126 -0.660351 \n", " 4369 0.0 1 -0.444067 ... -0.904501 -0.927815 -0.382523 -0.583091 \n", " 4370 0.0 1 -0.307123 ... -0.887334 -0.916354 -0.314650 -0.515632 \n", " ... ... ... ... ... ... ... ... ... \n", " 11550 0.0 0 0.831313 ... 0.832381 0.887783 0.840017 0.819616 \n", " 11551 0.0 0 0.841220 ... 0.829284 0.885274 0.847813 0.827120 \n", " 11552 0.0 0 0.853259 ... 0.825889 0.882777 0.854457 0.834049 \n", " 11553 0.0 0 0.866426 ... 0.822635 0.880457 0.861138 0.840955 \n", " 11554 0.0 0 0.866050 ... 0.818296 0.877781 0.856663 0.841816 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 4366 -0.905691 -0.936210 -0.946849 1.792705 0.357492 100.000000 \n", " 4367 -0.848365 -0.905657 -0.926007 3.219416 0.977323 100.000000 \n", " 4368 -0.795021 -0.876042 -0.905529 4.318011 1.709093 100.000000 \n", " 4369 -0.744014 -0.846649 -0.884948 5.186295 2.480958 100.000000 \n", " 4370 -0.696002 -0.817900 -0.864556 5.839245 3.238661 100.000000 \n", " ... ... ... ... ... ... ... \n", " 11550 0.812360 0.842607 0.880966 0.213521 -0.253013 80.851064 \n", " 11551 0.817004 0.843903 0.880896 0.310964 -0.135623 80.168776 \n", " 11552 0.821578 0.845301 0.880933 0.392326 -0.024239 76.262626 \n", " 11553 0.826329 0.846920 0.881155 0.467305 0.080968 77.294686 \n", " 11554 0.828106 0.847146 0.880478 0.443583 0.160040 65.573770 \n", " \n", " [7189 rows x 22 columns],\n", " 'DASH': time day_of_week open high low close volume \\\n", " 71 16 2 0.952852 0.919163 0.948906 0.915876 0.056762 \n", " 72 17 2 0.934450 0.905313 0.936359 0.925260 -0.129671 \n", " 73 18 2 0.943800 0.937402 0.940044 0.920959 -0.332096 \n", " 74 19 2 0.939622 0.895463 0.912859 0.880489 -0.146472 \n", " 75 20 2 0.898442 0.937207 0.923414 0.925944 0.508908 \n", " ... ... ... ... ... ... ... ... \n", " 6424 16 5 0.227623 0.227361 0.247096 0.250565 -0.342105 \n", " 6425 17 5 0.257463 0.232823 0.277367 0.256430 -0.349239 \n", " 6426 18 5 0.263432 0.238479 0.280852 0.252618 -0.386687 \n", " 6427 19 5 0.258856 0.227751 0.265219 0.234729 -0.367064 \n", " 6428 20 5 0.241747 0.235553 0.259642 0.249978 0.256977 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 0.983808 ... 0.986155 1.098427 0.973289 0.994202 \n", " 72 0.0 0 0.965010 ... 0.987670 1.091356 0.960270 0.984009 \n", " 73 0.0 0 0.953470 ... 0.987662 1.085533 0.949737 0.974721 \n", " 74 0.0 0 0.935163 ... 0.985679 1.079810 0.930615 0.960610 \n", " 75 0.0 0 0.921041 ... 0.984200 1.070655 0.929984 0.955692 \n", " ... ... ... ... ... ... ... ... ... \n", " 6424 0.0 0 0.241684 ... 0.182941 0.186615 0.236571 0.218796 \n", " 6425 0.0 0 0.244218 ... 0.184402 0.187470 0.242344 0.224586 \n", " 6426 0.0 0 0.246065 ... 0.185615 0.188222 0.245376 0.228897 \n", " 6427 0.0 0 0.244921 ... 0.186064 0.188716 0.242413 0.229781 \n", " 6428 0.0 0 0.245215 ... 0.186827 0.189406 0.244668 0.232885 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 1.000011 1.033639 1.081985 -0.137112 0.128040 36.557025 \n", " 72 0.994237 1.029294 1.077718 -0.250340 0.048208 30.000000 \n", " 73 0.988579 1.024950 1.073450 -0.344029 -0.035980 26.100370 \n", " 74 0.980119 1.019119 1.068180 -0.490290 -0.135058 24.052312 \n", " 75 0.975992 1.015395 1.064310 -0.512274 -0.219089 35.409434 \n", " ... ... ... ... ... ... ... \n", " 6424 0.192184 0.171839 0.155082 0.702194 0.578793 73.567073 \n", " 6425 0.197254 0.175178 0.157728 0.724040 0.620175 77.474937 \n", " 6426 0.201612 0.178225 0.160195 0.726006 0.653707 74.521008 \n", " 6427 0.204182 0.180411 0.162101 0.685540 0.671754 70.202660 \n", " 6428 0.207773 0.183136 0.164375 0.675463 0.684007 45.981630 \n", " \n", " [6358 rows x 22 columns],\n", " 'DIS': time day_of_week open high low close volume \\\n", " 4518 14 1 0.042599 0.030944 0.037217 0.030256 -0.039649 \n", " 4519 15 1 0.031596 0.020633 0.019243 0.022107 1.261805 \n", " 4520 16 1 0.024994 0.028132 0.029964 0.033077 -0.165071 \n", " 4521 17 1 0.033482 0.023445 0.024603 0.013957 -0.195562 \n", " 4522 18 1 0.016820 0.005324 0.012305 0.002987 0.056847 \n", " ... ... ... ... ... ... ... ... \n", " 11702 16 5 -0.271779 -0.271803 -0.279696 -0.267823 0.018580 \n", " 11703 17 5 -0.265963 -0.261336 -0.258096 -0.258106 -0.028259 \n", " 11704 18 5 -0.255117 -0.246808 -0.248478 -0.244315 0.117266 \n", " 11705 19 5 -0.243957 -0.243059 -0.245167 -0.245882 -0.155230 \n", " 11706 20 5 -0.242228 -0.239935 -0.235865 -0.234912 0.185664 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 4518 0.000000 1 -0.487778 ... -0.580064 -0.585237 -0.413654 \n", " 4519 0.000000 1 -0.385564 ... -0.567283 -0.576715 -0.289126 \n", " 4520 0.000000 1 -0.281520 ... -0.554273 -0.568040 -0.197042 \n", " 4521 0.000000 1 -0.180664 ... -0.541661 -0.559631 -0.136733 \n", " 4522 0.000000 1 -0.081638 ... -0.529278 -0.551375 -0.096791 \n", " ... ... ... ... ... ... ... ... \n", " 11702 0.000000 0 -0.256437 ... -0.171314 -0.174736 -0.259483 \n", " 11703 -0.944393 0 -0.260330 ... -0.173558 -0.175161 -0.259112 \n", " 11704 0.000000 0 -0.261062 ... -0.175793 -0.175590 -0.254905 \n", " 11705 -0.541146 0 -0.262055 ... -0.178273 -0.175991 -0.252348 \n", " 11706 0.000000 0 -0.254451 ... -0.180684 -0.176261 -0.247385 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal \\\n", " 4518 -0.495725 -0.541825 -0.566578 -0.575411 1.929118 0.404433 \n", " 4519 -0.416030 -0.496679 -0.542517 -0.559008 3.399943 1.050123 \n", " 4520 -0.346907 -0.454266 -0.518988 -0.542752 4.547674 1.811969 \n", " 4521 -0.291362 -0.416778 -0.497202 -0.527468 5.335324 2.589783 \n", " 4522 -0.246052 -0.383168 -0.476755 -0.512904 5.857305 3.323593 \n", " ... ... ... ... ... ... ... \n", " 11702 -0.246867 -0.224334 -0.209315 -0.226421 -1.003633 -1.015817 \n", " 11703 -0.248610 -0.227042 -0.211308 -0.227290 -0.965250 -1.019011 \n", " 11704 -0.247961 -0.228428 -0.212654 -0.227756 -0.881257 -1.003615 \n", " 11705 -0.247653 -0.229829 -0.214010 -0.228253 -0.810397 -0.976154 \n", " 11706 -0.245704 -0.230238 -0.214861 -0.228434 -0.711523 -0.933054 \n", " \n", " rsi \n", " 4518 100.000000 \n", " 4519 98.705179 \n", " 4520 98.727362 \n", " 4521 95.865019 \n", " 4522 94.296400 \n", " ... ... \n", " 11702 36.221591 \n", " 11703 44.900850 \n", " 11704 47.855228 \n", " 11705 47.222222 \n", " 11706 45.192308 \n", " \n", " [7189 rows x 22 columns],\n", " 'EBAY': time day_of_week open high low close volume \\\n", " 71 21 4 0.150614 0.114398 0.188730 0.151476 -0.726003 \n", " 72 14 5 0.216588 0.181572 0.231019 0.198431 -0.182865 \n", " 73 15 5 0.197434 0.161629 0.201417 0.163997 -0.089431 \n", " 74 16 5 0.164448 0.139588 0.188730 0.167127 -0.005764 \n", " 75 17 5 0.163383 0.134340 0.180272 0.143128 0.142395 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.690551 -0.709003 -0.662873 -0.670755 -0.115620 \n", " 7185 17 5 -0.682038 -0.679614 -0.642257 -0.655103 -0.372641 \n", " 7186 18 5 -0.671929 -0.696932 -0.643314 -0.663972 -0.434123 \n", " 7187 19 5 -0.680974 -0.689061 -0.650186 -0.672842 -0.321130 \n", " 7188 20 5 -0.692147 -0.712676 -0.672916 -0.680146 2.944223 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 0.154958 ... 0.203140 0.221424 0.163980 0.190403 \n", " 72 0.0 0 0.162633 ... 0.205831 0.219818 0.173934 0.191679 \n", " 73 0.0 0 0.163680 ... 0.207603 0.218051 0.171170 0.187434 \n", " 74 0.0 0 0.164378 ... 0.209090 0.216050 0.170094 0.184326 \n", " 75 0.0 0 0.162982 ... 0.209746 0.213654 0.162442 0.177985 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -0.670688 ... -0.756154 -0.797603 -0.675367 -0.679351 \n", " 7185 0.0 0 -0.674177 ... -0.751243 -0.794624 -0.670368 -0.676258 \n", " 7186 0.0 0 -0.675922 ... -0.746627 -0.792097 -0.669341 -0.675011 \n", " 7187 0.0 0 -0.679149 ... -0.742209 -0.789899 -0.671150 -0.675329 \n", " 7188 0.0 0 -0.671735 ... -0.738228 -0.787620 -0.674537 -0.676726 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.212679 0.221917 0.229706 -0.538565 -0.193156 19.730942 \n", " 72 0.211529 0.220914 0.228790 -0.481534 -0.258910 33.333333 \n", " 73 0.207696 0.218530 0.226940 -0.495430 -0.314526 23.272727 \n", " 74 0.204422 0.216373 0.225228 -0.494558 -0.358831 24.723247 \n", " 75 0.199475 0.213313 0.222895 -0.532810 -0.402572 23.591549 \n", " ... ... ... ... ... ... ... \n", " 7184 -0.702483 -0.749851 -0.785466 0.594631 0.788370 52.346570 \n", " 7185 -0.699215 -0.746442 -0.782332 0.589682 0.758681 57.866184 \n", " 7186 -0.696924 -0.743539 -0.779530 0.562780 0.729094 56.063269 \n", " 7187 -0.695531 -0.741121 -0.777053 0.518984 0.695924 54.436860 \n", " 7188 -0.694838 -0.739103 -0.774846 0.465375 0.657759 56.360424 \n", " \n", " [7118 rows x 22 columns],\n", " 'FSLY': time day_of_week open high low close volume \\\n", " 71 21 4 1.818511 1.800702 1.845829 1.826085 -0.639475 \n", " 72 14 5 1.532474 1.563681 1.557365 1.571431 1.203980 \n", " 73 15 5 1.565887 1.547981 1.516180 1.506449 2.037014 \n", " 74 16 5 1.499060 1.524853 1.501544 1.481953 2.217161 \n", " 75 17 5 1.477460 1.459521 1.399432 1.432962 4.359547 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.725450 -0.742877 -0.724313 -0.738825 -0.197685 \n", " 7185 17 5 -0.726462 -0.741527 -0.723632 -0.739676 -0.216555 \n", " 7186 18 5 -0.726800 -0.742877 -0.722781 -0.740356 -0.357604 \n", " 7187 19 5 -0.727644 -0.744566 -0.723632 -0.741037 -0.338417 \n", " 7188 20 5 -0.728487 -0.747098 -0.730099 -0.745119 0.660691 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 1.829978 ... 2.222851 2.021162 1.850320 1.963725 \n", " 72 0.0 0 1.791148 ... 2.220130 2.021968 1.770860 1.903484 \n", " 73 0.0 0 1.731029 ... 2.213189 2.023004 1.695518 1.842497 \n", " 74 0.0 0 1.675224 ... 2.204370 2.023207 1.634696 1.787118 \n", " 75 0.0 0 1.609627 ... 2.193897 2.022834 1.577241 1.732711 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -0.735062 ... -0.684369 -0.592658 -0.737803 -0.736963 \n", " 7185 0.0 0 -0.736907 ... -0.690617 -0.597448 -0.738772 -0.737823 \n", " 7186 0.0 0 -0.738554 ... -0.697009 -0.602374 -0.739660 -0.738655 \n", " 7187 0.0 0 -0.740313 ... -0.703678 -0.607283 -0.740488 -0.739465 \n", " 7188 0.0 0 -0.741279 ... -0.710341 -0.612083 -0.742247 -0.740779 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 2.105295 2.105062 2.030490 -3.738124 -2.374718 13.663303 \n", " 72 2.062632 2.083284 2.017884 -4.244806 -2.799212 11.558266 \n", " 73 2.018170 2.059730 2.003832 -4.723694 -3.240274 10.713363 \n", " 74 1.975301 2.036132 1.989489 -5.093785 -3.671538 10.922266 \n", " 75 1.931931 2.011489 1.974189 -5.423768 -4.086465 10.592895 \n", " ... ... ... ... ... ... ... \n", " 7184 -0.726445 -0.685113 -0.652437 -0.363765 -0.523242 42.307692 \n", " 7185 -0.727949 -0.687775 -0.655246 -0.344009 -0.491534 44.897959 \n", " 7186 -0.729386 -0.690356 -0.657997 -0.325358 -0.462216 44.000000 \n", " 7187 -0.730764 -0.692859 -0.660692 -0.307784 -0.435038 42.857143 \n", " 7188 -0.732358 -0.695428 -0.663425 -0.298108 -0.411245 32.530120 \n", " \n", " [7118 rows x 22 columns],\n", " 'GD': time day_of_week open high low close volume \\\n", " 71 21 4 -1.781920 -1.790603 -1.770123 -1.778799 -0.708540 \n", " 72 14 5 -1.783580 -1.785080 -1.775404 -1.780186 -0.039560 \n", " 73 15 5 -1.783303 -1.767129 -1.771512 -1.755772 0.446339 \n", " 74 16 5 -1.758965 -1.737304 -1.747052 -1.725254 0.654968 \n", " 75 17 5 -1.728818 -1.703059 -1.717588 -1.710550 0.706419 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.986425 1.981793 2.012392 2.007872 -0.457525 \n", " 7185 17 5 1.990573 1.994497 2.021286 2.023686 -0.509212 \n", " 7186 18 5 2.006062 2.013276 2.031293 2.015640 -0.377818 \n", " 7187 19 5 2.000807 1.986488 2.021564 2.011340 -0.623181 \n", " 7188 20 5 1.996520 1.993944 2.026012 2.014531 -0.012834 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.787575 ... -1.831133 -1.835152 -1.783412 -1.787163 \n", " 72 0.0 1 -1.786231 ... -1.830542 -1.834897 -1.782773 -1.786197 \n", " 73 0.0 1 -1.780209 ... -1.829577 -1.834164 -1.775333 -1.781616 \n", " 74 0.0 1 -1.769600 ... -1.828472 -1.833173 -1.761287 -1.773035 \n", " 75 0.0 1 -1.758203 ... -1.826946 -1.831914 -1.747048 -1.763507 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.988562 ... 1.941118 1.933040 1.992285 1.979003 \n", " 7185 0.0 0 2.000653 ... 1.946834 1.934878 2.002388 1.986955 \n", " 7186 0.0 0 2.007927 ... 1.950706 1.936450 2.007302 1.992443 \n", " 7187 0.0 0 2.014482 ... 1.954334 1.938037 2.009582 1.996424 \n", " 7188 0.0 0 2.016335 ... 1.957106 1.939550 2.012123 2.000284 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.794089 -1.798249 -1.796839 0.193049 0.192869 50.267380 \n", " 72 -1.792946 -1.797390 -1.796222 0.187113 0.195089 43.823529 \n", " 73 -1.789936 -1.795564 -1.794948 0.249652 0.210465 77.198697 \n", " 74 -1.784717 -1.792560 -1.792866 0.382835 0.251730 81.182796 \n", " 75 -1.778736 -1.789076 -1.790437 0.523968 0.315434 81.723238 \n", " ... ... ... ... ... ... ... \n", " 7184 1.963973 1.946961 1.932688 0.707853 0.578565 74.403471 \n", " 7185 1.969750 1.951025 1.936078 0.795251 0.635899 78.431373 \n", " 7186 1.974418 1.954593 1.939153 0.829810 0.689282 71.516393 \n", " 7187 1.978368 1.957839 1.942026 0.833441 0.732778 69.314796 \n", " 7188 1.982258 1.961083 1.944908 0.834534 0.767813 73.721881 \n", " \n", " [7118 rows x 22 columns],\n", " 'GOOG': time day_of_week open high low close volume \\\n", " 71 21 4 -1.921206 -1.936514 -1.908534 -1.923373 -0.625084 \n", " 72 14 5 -1.931984 -1.903432 -1.919331 -1.901436 -0.438534 \n", " 73 15 5 -1.899181 -1.914615 -1.905249 -1.918239 -0.249962 \n", " 74 16 5 -1.925892 -1.931388 -1.919331 -1.930374 -0.457239 \n", " 75 17 5 -1.929172 -1.944435 -1.937637 -1.952311 -0.265887 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.363526 1.330878 1.364610 1.348939 -0.340248 \n", " 7185 17 5 1.370087 1.348118 1.380804 1.350339 -0.499188 \n", " 7186 18 5 1.365635 1.342060 1.381508 1.358973 -0.548201 \n", " 7187 19 5 1.372195 1.339731 1.367896 1.347305 -0.498796 \n", " 7188 20 5 1.362589 1.343225 1.373294 1.353606 -0.297117 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.932835 ... -1.988800 -1.972769 -1.934361 -1.949950 \n", " 72 0.0 1 -1.925119 ... -1.988613 -1.973363 -1.925374 -1.942724 \n", " 73 0.0 1 -1.923326 ... -1.989370 -1.974009 -1.923761 -1.939199 \n", " 74 0.0 1 -1.923872 ... -1.990718 -1.974925 -1.926082 -1.938088 \n", " 75 0.0 1 -1.928704 ... -1.992882 -1.976079 -1.934015 -1.940530 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.352738 ... 1.293538 1.371382 1.350979 1.338040 \n", " 7185 0.0 0 1.355933 ... 1.292535 1.367947 1.351641 1.340746 \n", " 7186 0.0 0 1.357141 ... 1.291537 1.364782 1.354584 1.344368 \n", " 7187 0.0 0 1.356401 ... 1.290312 1.361251 1.353347 1.345633 \n", " 7188 0.0 0 1.353595 ... 1.288522 1.358017 1.354267 1.347675 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.962613 -1.954977 -1.939940 0.257557 0.035974 82.383420 \n", " 72 -1.957812 -1.952772 -1.938814 0.325817 0.098884 85.593220 \n", " 73 -1.954743 -1.951347 -1.938182 0.341371 0.152557 76.515152 \n", " 74 -1.952894 -1.950478 -1.937903 0.324714 0.191914 76.515152 \n", " 75 -1.952954 -1.950544 -1.938236 0.263562 0.210253 63.299663 \n", " ... ... ... ... ... ... ... \n", " 7184 1.319664 1.329096 1.351869 0.523969 0.386595 63.596168 \n", " 7185 1.322883 1.330678 1.352519 0.514316 0.419905 67.156105 \n", " 7186 1.326537 1.332550 1.353390 0.517152 0.447162 63.393626 \n", " 7187 1.328962 1.333867 1.353915 0.489454 0.463013 60.776218 \n", " 7188 1.331699 1.335389 1.354600 0.473806 0.472330 43.181818 \n", " \n", " [7118 rows x 22 columns],\n", " 'GOOGL': time day_of_week open high low close volume \\\n", " 71 21 4 -1.962088 -2.001675 -1.869783 -1.907537 -0.633851 \n", " 72 14 5 -1.970756 -1.964440 -1.878266 -1.884366 0.002447 \n", " 73 15 5 -1.939455 -1.978464 -1.869783 -1.907537 -0.111452 \n", " 74 16 5 -1.962088 -1.992488 -1.877795 -1.907537 -0.003099 \n", " 75 17 5 -1.967385 -2.006511 -1.897117 -1.934964 -0.142678 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.343257 1.320942 1.346445 1.341652 -0.335632 \n", " 7185 17 5 1.349035 1.334482 1.361290 1.339760 -0.478936 \n", " 7186 18 5 1.344701 1.332064 1.360819 1.349454 -0.545901 \n", " 7187 19 5 1.354091 1.330130 1.350686 1.337396 -0.453191 \n", " 7188 20 5 1.341812 1.331581 1.357048 1.343070 -0.261909 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.919685 ... -1.971365 -1.957641 -1.921151 -1.935130 \n", " 72 0.0 1 -1.912325 ... -1.971196 -1.958042 -1.912216 -1.928227 \n", " 73 0.0 1 -1.911771 ... -1.972224 -1.958631 -1.912477 -1.925966 \n", " 74 0.0 1 -1.911692 ... -1.973383 -1.959321 -1.912664 -1.924053 \n", " 75 0.0 1 -1.916282 ... -1.975460 -1.960338 -1.920662 -1.926673 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.348932 ... 1.288655 1.366791 1.346471 1.334126 \n", " 7185 0.0 0 1.351385 ... 1.287671 1.363233 1.346219 1.336283 \n", " 7186 0.0 0 1.351821 ... 1.286672 1.360003 1.348819 1.339606 \n", " 7187 0.0 0 1.350238 ... 1.285474 1.356382 1.347218 1.340554 \n", " 7188 0.0 0 1.346677 ... 1.283556 1.353008 1.347702 1.342233 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.946086 -1.938994 -1.925749 0.213140 0.017610 80.571429 \n", " 72 -1.941589 -1.936918 -1.924657 0.280406 0.075215 84.545455 \n", " 73 -1.939316 -1.935878 -1.924236 0.283027 0.121870 69.924812 \n", " 74 -1.937225 -1.934881 -1.923827 0.280985 0.158749 79.148936 \n", " 75 -1.937508 -1.935053 -1.924187 0.220847 0.175156 61.231884 \n", " ... ... ... ... ... ... ... \n", " 7184 1.315722 1.325093 1.348503 0.524579 0.400346 62.598708 \n", " 7185 1.318657 1.326529 1.349036 0.507777 0.430919 65.613243 \n", " 7186 1.322137 1.328305 1.349822 0.507206 0.455253 62.571663 \n", " 7187 1.324368 1.329512 1.350254 0.476162 0.467960 60.062893 \n", " 7188 1.326877 1.330903 1.350831 0.456812 0.473912 42.272727 \n", " \n", " [7118 rows x 22 columns],\n", " 'HOOD': time day_of_week open high low close volume \\\n", " 71 15 3 3.317848 3.299632 3.156460 3.220331 -0.251568 \n", " 72 16 3 3.217469 3.283261 3.246766 3.258700 -0.293505 \n", " 73 17 3 3.255795 3.294175 3.290773 3.324474 -0.306004 \n", " 74 18 3 3.344311 3.313275 3.321945 3.294328 -0.275659 \n", " 75 19 3 3.296859 3.309637 3.319653 3.311685 -0.280672 \n", " ... ... ... ... ... ... ... ... \n", " 5156 16 5 -0.043479 -0.054687 -0.047341 -0.037800 0.314463 \n", " 5157 17 5 -0.035722 -0.051958 -0.019837 -0.035972 -0.082466 \n", " 5158 18 5 -0.035266 -0.054232 -0.020754 -0.038713 -0.158672 \n", " 5159 19 5 -0.035722 -0.050139 -0.024421 -0.036429 -0.174073 \n", " 5160 20 5 -0.035722 -0.050139 -0.017086 -0.032318 0.247815 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 3.485730 ... 3.859946 3.313923 3.438105 3.543190 \n", " 72 0.0 0 3.428545 ... 3.871569 3.332895 3.387177 3.499517 \n", " 73 0.0 0 3.386228 ... 3.880697 3.352873 3.369604 3.472691 \n", " 74 0.0 0 3.338879 ... 3.889990 3.371793 3.348434 3.445350 \n", " 75 0.0 0 3.294427 ... 3.898461 3.393184 3.338274 3.424888 \n", " ... ... ... ... ... ... ... ... ... \n", " 5156 0.0 0 -0.059360 ... -0.090433 -0.138606 -0.056674 -0.070936 \n", " 5157 0.0 0 -0.052498 ... -0.087484 -0.134675 -0.051039 -0.065888 \n", " 5158 0.0 0 -0.045788 ... -0.085289 -0.130913 -0.047798 -0.062038 \n", " 5159 0.0 0 -0.038697 ... -0.083239 -0.127099 -0.044830 -0.058429 \n", " 5160 0.0 0 -0.036791 ... -0.081053 -0.123259 -0.041535 -0.054742 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 3.616827 3.482802 3.267030 -1.695403 -0.313164 7.687793 \n", " 72 3.588047 3.473313 3.266349 -2.090155 -0.701856 13.101767 \n", " 73 3.566835 3.466896 3.267488 -2.253129 -1.048007 17.857143 \n", " 74 3.544907 3.459511 3.267770 -2.410220 -1.358852 17.203108 \n", " 75 3.526122 3.453136 3.268519 -2.472974 -1.621081 18.913043 \n", " ... ... ... ... ... ... ... \n", " 5156 -0.088045 -0.124939 -0.162125 0.460548 0.395175 89.082969 \n", " 5157 -0.084239 -0.121687 -0.159058 0.491842 0.422424 92.444444 \n", " 5158 -0.080957 -0.118680 -0.156150 0.506407 0.447368 88.995215 \n", " 5159 -0.077755 -0.115702 -0.153259 0.517001 0.469612 89.252336 \n", " 5160 -0.074480 -0.112678 -0.150335 0.527744 0.489726 86.857143 \n", " \n", " [5090 rows x 22 columns],\n", " 'INTC': time day_of_week open high low close volume \\\n", " 71 21 4 0.285526 0.266075 0.310296 0.290691 -0.493328 \n", " 72 14 5 0.240133 0.228357 0.261791 0.245554 -0.258420 \n", " 73 15 5 0.240133 0.229435 0.230532 0.211165 -0.208826 \n", " 74 16 5 0.205548 0.218658 0.226220 0.224061 -0.434322 \n", " 75 17 5 0.218517 0.199261 0.224065 0.206866 -0.396107 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.163938 0.177169 0.171787 0.199881 -0.189117 \n", " 7185 17 5 0.194740 0.193334 0.204124 0.200418 -0.231146 \n", " 7186 18 5 0.199063 0.188484 0.215442 0.198806 -0.373545 \n", " 7187 19 5 0.192038 0.180402 0.210052 0.195045 -0.371685 \n", " 7188 20 5 0.190417 0.175014 0.188495 0.173551 0.159614 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 1 0.278386 ... 0.239948 0.266522 0.283463 \n", " 72 0.000000 1 0.275516 ... 0.241408 0.264350 0.272746 \n", " 73 0.000000 1 0.267804 ... 0.242261 0.261144 0.255247 \n", " 74 0.000000 1 0.259374 ... 0.243092 0.258417 0.246439 \n", " 75 0.000000 1 0.245384 ... 0.243339 0.255825 0.235225 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.000000 0 0.179381 ... 0.261585 0.260005 0.182511 \n", " 7185 0.000000 0 0.179112 ... 0.259654 0.259900 0.187717 \n", " 7186 0.000000 0 0.183685 ... 0.257992 0.259788 0.190974 \n", " 7187 0.000000 0 0.187631 ... 0.255993 0.259548 0.192223 \n", " 7188 0.891405 0 0.189963 ... 0.253186 0.259031 0.186963 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.280581 0.273663 0.271015 0.281384 0.216098 0.264818 49.038462 \n", " 72 0.275278 0.271482 0.270033 0.280455 0.130767 0.239814 37.777778 \n", " 73 0.265486 0.266712 0.267676 0.278597 -0.007230 0.190238 28.834356 \n", " 74 0.259189 0.263360 0.265946 0.277149 -0.089076 0.133039 34.502924 \n", " 75 0.251208 0.258893 0.263579 0.275263 -0.186987 0.066298 27.683616 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.192211 0.214148 0.232853 0.240098 -0.613614 -0.626458 48.364486 \n", " 7185 0.193540 0.213101 0.231572 0.239049 -0.550385 -0.619174 50.731707 \n", " 7186 0.194415 0.212007 0.230276 0.237984 -0.497792 -0.602076 42.253521 \n", " 7187 0.194576 0.210699 0.228878 0.236844 -0.458487 -0.579975 41.436464 \n", " 7188 0.191395 0.207768 0.226654 0.235140 -0.465981 -0.563901 52.083333 \n", " \n", " [7118 rows x 22 columns],\n", " 'JNJ': time day_of_week open high low close volume \\\n", " 71 21 4 -2.155924 -2.180444 -2.118897 -2.143336 -0.741022 \n", " 72 14 5 -2.175900 -2.171571 -2.138823 -2.144319 -0.568583 \n", " 73 15 5 -2.156923 -2.144953 -2.119893 -2.116772 -0.541622 \n", " 74 16 5 -2.122963 -2.127207 -2.106941 -2.091193 -0.531342 \n", " 75 17 5 -2.105983 -2.131151 -2.118897 -2.143336 -0.468051 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.732640 0.670652 0.715605 0.671404 -0.588206 \n", " 7185 17 5 0.701677 0.647978 0.693687 0.634019 -0.660502 \n", " 7186 18 5 0.657729 0.621359 0.683723 0.628607 -0.647620 \n", " 7187 19 5 0.658229 0.597699 0.676251 0.625164 -0.540919 \n", " 7188 20 5 0.657729 0.669666 0.687709 0.661566 -0.013012 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -2.175659 ... -2.249616 -2.267360 -2.160941 -2.161232 \n", " 72 0.0 0 -2.167254 ... -2.247588 -2.268414 -2.158651 -2.160348 \n", " 73 0.0 0 -2.155224 ... -2.245141 -2.268611 -2.149110 -2.155336 \n", " 74 0.0 0 -2.141547 ... -2.242401 -2.268077 -2.134953 -2.147135 \n", " 75 0.0 0 -2.141547 ... -2.240853 -2.268189 -2.139806 -2.148268 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 0.599846 ... 0.250874 0.181503 0.609753 0.529778 \n", " 7185 0.0 0 0.622505 ... 0.266935 0.190345 0.617762 0.546730 \n", " 7186 0.0 0 0.639231 ... 0.282464 0.199461 0.621931 0.560236 \n", " 7187 0.0 0 0.655381 ... 0.298170 0.207783 0.623920 0.571131 \n", " 7188 0.0 0 0.656204 ... 0.313374 0.216527 0.635787 0.585985 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -2.172173 -2.190091 -2.192310 0.111909 0.235199 44.082840 \n", " 72 -2.171115 -2.189044 -2.191669 0.108250 0.211676 32.384342 \n", " 73 -2.167919 -2.186901 -2.190279 0.140217 0.199742 42.348754 \n", " 74 -2.162914 -2.183787 -2.188213 0.197125 0.202450 48.333333 \n", " 75 -2.162517 -2.182957 -2.187658 0.169884 0.198749 38.461538 \n", " ... ... ... ... ... ... ... \n", " 7184 0.429398 0.322398 0.273609 1.884794 1.552350 89.249493 \n", " 7185 0.446541 0.335785 0.284105 1.887423 1.648543 82.699620 \n", " 7186 0.461876 0.348403 0.294162 1.860348 1.719667 79.533404 \n", " 7187 0.475706 0.360363 0.303848 1.812917 1.766351 78.947368 \n", " 7188 0.491367 0.373341 0.314283 1.802903 1.801542 84.426230 \n", " \n", " [7118 rows x 22 columns],\n", " 'KO': time day_of_week open high low close volume \\\n", " 71 21 4 -2.111154 -2.154069 -2.100743 -2.141527 -0.897392 \n", " 72 14 5 -2.105924 -2.138322 -2.107767 -2.145046 -0.548946 \n", " 73 15 5 -2.116384 -2.124325 -2.106011 -2.113368 -0.036685 \n", " 74 16 5 -2.083261 -2.068336 -2.072651 -2.062332 -0.354672 \n", " 75 17 5 -2.032705 -2.057838 -2.032268 -2.072891 -0.390223 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.155812 1.131755 1.157123 1.128346 0.051997 \n", " 7185 17 5 1.126175 1.102886 1.141321 1.108107 -0.273498 \n", " 7186 18 5 1.107871 1.098512 1.141321 1.123946 -0.539580 \n", " 7187 19 5 1.123560 1.121258 1.152733 1.152104 -0.372512 \n", " 7188 20 5 1.152325 1.129131 1.156245 1.123066 0.734169 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -2.164631 ... -2.244030 -2.190587 -2.157673 -2.175237 \n", " 72 0.0 1 -2.155218 ... -2.243584 -2.192503 -2.155000 -2.171065 \n", " 73 0.0 1 -2.144041 ... -2.243139 -2.194369 -2.144021 -2.162649 \n", " 74 0.0 1 -2.130510 ... -2.242322 -2.195439 -2.121567 -2.147655 \n", " 75 0.0 1 -2.119039 ... -2.241097 -2.196385 -2.108552 -2.136597 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.136224 ... 0.967634 0.916891 1.134298 1.119749 \n", " 7185 0.0 0 1.134607 ... 0.974798 0.921482 1.127771 1.118762 \n", " 7186 0.0 0 1.136224 ... 0.982482 0.926234 1.127644 1.120370 \n", " 7187 0.0 0 1.142549 ... 0.990853 0.930812 1.135615 1.126074 \n", " 7188 0.0 0 1.134607 ... 0.997943 0.934856 1.132995 1.126421 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -2.193769 -2.181150 -2.154572 0.446301 0.238784 73.913043 \n", " 72 -2.190021 -2.179624 -2.154181 0.462214 0.290775 66.233766 \n", " 73 -2.184031 -2.176861 -2.152929 0.532440 0.347501 75.824176 \n", " 74 -2.174424 -2.172119 -2.150306 0.683458 0.425426 81.196581 \n", " 75 -2.166432 -2.168004 -2.148046 0.771834 0.506811 76.271186 \n", " ... ... ... ... ... ... ... \n", " 7184 1.081488 1.017881 0.985508 1.151608 1.364332 51.724138 \n", " 7185 1.084298 1.022153 0.989416 1.047820 1.317411 46.525680 \n", " 7186 1.088154 1.026899 0.993654 0.985647 1.266476 48.695652 \n", " 7187 1.093962 1.032605 0.998550 0.981630 1.224863 53.050398 \n", " 7188 1.096975 1.036888 1.002513 0.907877 1.175678 62.305296 \n", " \n", " [7118 rows x 22 columns],\n", " 'LLY': time day_of_week open high low close volume \\\n", " 71 21 4 -1.195559 -1.197843 -1.191552 -1.193696 -0.737925 \n", " 72 14 5 -1.201755 -1.199566 -1.197836 -1.196528 -0.478522 \n", " 73 15 5 -1.198413 -1.198601 -1.197836 -1.194525 -0.222537 \n", " 74 16 5 -1.196395 -1.194881 -1.194205 -1.192245 -0.252579 \n", " 75 17 5 -1.194167 -1.195984 -1.194694 -1.196805 -0.377423 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 3.118102 3.073473 3.123399 3.090218 -0.436248 \n", " 7185 17 5 3.120747 3.085218 3.125319 3.086557 -0.632959 \n", " 7186 18 5 3.117058 3.084908 3.130660 3.095262 -0.609798 \n", " 7187 19 5 3.125829 3.088696 3.125738 3.104312 -0.617848 \n", " 7188 20 5 3.134948 3.116388 3.144380 3.122759 0.038261 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 -1.198130 ... -1.207024 -1.192946 -1.195643 -1.194978 \n", " 72 0.0 0 -1.197484 ... -1.207027 -1.193708 -1.196164 -1.195452 \n", " 73 0.0 0 -1.196895 ... -1.206818 -1.194417 -1.195962 -1.195543 \n", " 74 0.0 0 -1.195857 ... -1.206739 -1.195106 -1.195165 -1.195268 \n", " 75 0.0 0 -1.196376 ... -1.206888 -1.195872 -1.195902 -1.195739 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 3.118549 ... 3.121404 3.095715 3.110106 3.103569 \n", " 7185 0.0 0 3.112901 ... 3.123378 3.098588 3.105583 3.103351 \n", " 7186 0.0 0 3.109082 ... 3.125430 3.101496 3.104844 3.104511 \n", " 7187 0.0 0 3.106774 ... 3.127707 3.104088 3.106907 3.106891 \n", " 7188 0.0 0 3.104605 ... 3.129643 3.107158 3.113662 3.111753 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.193784 -1.189446 -1.184509 -0.365257 -0.374319 44.570502 \n", " 72 -1.194212 -1.189928 -1.185018 -0.367831 -0.378099 35.953177 \n", " 73 -1.194444 -1.190308 -1.185457 -0.359532 -0.379346 41.496599 \n", " 74 -1.194474 -1.190578 -1.185820 -0.341615 -0.376507 44.246353 \n", " 75 -1.194869 -1.191025 -1.186301 -0.345889 -0.375151 34.400000 \n", " ... ... ... ... ... ... ... \n", " 7184 3.099238 3.095332 3.070795 0.966691 0.607667 79.051467 \n", " 7185 3.100710 3.097503 3.073740 0.872583 0.673079 77.784912 \n", " 7186 3.102767 3.099947 3.076849 0.823959 0.714997 74.707602 \n", " 7187 3.105388 3.102667 3.080126 0.813015 0.746188 75.489965 \n", " 7188 3.109287 3.106040 3.083830 0.872275 0.783829 62.418537 \n", " \n", " [7118 rows x 22 columns],\n", " 'LMT': time day_of_week open high low close volume \\\n", " 71 21 4 -0.983658 -1.002896 -0.969168 -0.988156 -0.755528 \n", " 72 14 5 -0.952110 -0.971302 -0.951069 -0.965223 -0.500246 \n", " 73 15 5 -0.962257 -0.945436 -0.947745 -0.944139 -0.406046 \n", " 74 16 5 -0.939749 -0.920678 -0.930016 -0.907149 0.002931 \n", " 75 17 5 -0.902852 -0.886682 -0.888278 -0.896052 -0.374983 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.692971 0.686922 0.708649 0.698558 -0.690974 \n", " 7185 17 5 0.698874 0.682118 0.699969 0.683578 -0.690771 \n", " 7186 18 5 0.683931 0.675652 0.692582 0.678584 -0.668916 \n", " 7187 19 5 0.678950 0.669924 0.695167 0.682098 -0.499133 \n", " 7188 20 5 0.682455 0.684982 0.698676 0.701425 -0.023477 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -0.996716 ... -0.993136 -0.960330 -0.988280 -0.982312 \n", " 72 0.0 1 -0.991163 ... -0.994382 -0.960529 -0.981830 -0.979781 \n", " 73 0.0 1 -0.980490 ... -0.995082 -0.960524 -0.971192 -0.974389 \n", " 74 0.0 1 -0.964326 ... -0.994943 -0.960064 -0.953013 -0.964124 \n", " 75 0.0 1 -0.948963 ... -0.994188 -0.959251 -0.936855 -0.953729 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 0.673677 ... 0.585882 0.599427 0.676095 0.657759 \n", " 7185 0.0 0 0.679939 ... 0.588273 0.600522 0.678608 0.662127 \n", " 7186 0.0 0 0.683364 ... 0.593998 0.601473 0.678975 0.665053 \n", " 7187 0.0 0 0.687374 ... 0.599298 0.602328 0.680242 0.668071 \n", " 7188 0.0 0 0.689919 ... 0.604274 0.603526 0.686675 0.673604 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.980892 -0.975471 -0.969368 -0.087338 0.019778 38.060384 \n", " 72 -0.979709 -0.975108 -0.969299 -0.050660 0.005120 33.692458 \n", " 73 -0.976928 -0.973892 -0.968649 0.020679 0.008556 48.363252 \n", " 74 -0.971400 -0.971207 -0.966993 0.150397 0.038873 57.820738 \n", " 75 -0.965423 -0.968175 -0.965076 0.272223 0.089020 56.639566 \n", " ... ... ... ... ... ... ... \n", " 7184 0.638387 0.624707 0.629035 0.573438 0.423680 73.538622 \n", " 7185 0.642403 0.627510 0.630928 0.585165 0.463375 64.565678 \n", " 7186 0.645697 0.629994 0.632631 0.577184 0.493434 62.087048 \n", " 7187 0.649010 0.632521 0.634385 0.570989 0.516166 62.827763 \n", " 7188 0.653610 0.635739 0.636626 0.598116 0.540116 78.496983 \n", " \n", " [7118 rows x 22 columns],\n", " 'LYFT': time day_of_week open high low close volume \\\n", " 71 21 4 0.187779 0.172622 0.202767 0.187323 -0.459696 \n", " 72 14 5 0.082633 0.067669 0.067885 0.059558 -0.105013 \n", " 73 15 5 0.060795 0.047217 0.053443 0.038354 -0.050288 \n", " 74 16 5 0.038418 0.038067 0.050718 0.042704 -0.160774 \n", " 75 17 5 0.043271 0.040489 0.046903 0.052218 -0.164572 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.715936 -0.726743 -0.715795 -0.727149 0.203928 \n", " 7185 17 5 -0.720249 -0.708713 -0.714978 -0.709208 0.175344 \n", " 7186 18 5 -0.699220 -0.698217 -0.693723 -0.695888 -0.030162 \n", " 7187 19 5 -0.687627 -0.700101 -0.690998 -0.703227 -0.210696 \n", " 7188 20 5 -0.695446 -0.704945 -0.690726 -0.701868 0.670418 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 0.179987 ... 0.062687 0.055446 0.176374 0.154936 \n", " 72 0.0 0 0.163124 ... 0.063950 0.055272 0.142938 0.140186 \n", " 73 0.0 1 0.141502 ... 0.064245 0.055144 0.112991 0.124438 \n", " 74 0.0 1 0.116932 ... 0.064822 0.055159 0.092844 0.111783 \n", " 75 0.0 1 0.094403 ... 0.065525 0.055480 0.081174 0.102540 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -0.713935 ... -0.648667 -0.723103 -0.715820 -0.706249 \n", " 7185 0.0 0 -0.715114 ... -0.648695 -0.721041 -0.714214 -0.706972 \n", " 7186 0.0 0 -0.713074 ... -0.648349 -0.718873 -0.709257 -0.705532 \n", " 7187 0.0 0 -0.712258 ... -0.648542 -0.716702 -0.707816 -0.705444 \n", " 7188 0.0 0 -0.710898 ... -0.648967 -0.714455 -0.706398 -0.705160 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.122314 0.089585 0.076084 1.347525 1.221968 87.440758 \n", " 72 0.117208 0.088268 0.075536 0.970186 1.185367 43.462898 \n", " 73 0.110810 0.086135 0.074418 0.601884 1.077184 39.215686 \n", " 74 0.105272 0.084268 0.073450 0.319477 0.930137 38.613861 \n", " 75 0.100941 0.082867 0.072771 0.122668 0.770336 38.342541 \n", " ... ... ... ... ... ... ... \n", " 7184 -0.693160 -0.701479 -0.725522 -0.541829 -0.444359 31.951220 \n", " 7185 -0.694695 -0.702038 -0.725321 -0.513408 -0.465529 44.772727 \n", " 7186 -0.695038 -0.702029 -0.724758 -0.446086 -0.468043 50.102669 \n", " 7187 -0.695943 -0.702320 -0.724412 -0.409383 -0.462191 47.470817 \n", " 7188 -0.696666 -0.702544 -0.724039 -0.371686 -0.449433 31.122449 \n", " \n", " [7118 rows x 22 columns],\n", " 'MA': time day_of_week open high low close volume \\\n", " 71 21 4 -1.014510 -1.078902 -0.945983 -1.007781 -0.744442 \n", " 72 14 5 -1.145396 -1.180400 -1.076002 -1.112335 -0.452151 \n", " 73 15 5 -1.121180 -1.181943 -1.091880 -1.147890 1.360497 \n", " 74 16 5 -1.157044 -1.184411 -1.087686 -1.121073 1.967345 \n", " 75 17 5 -1.132215 -1.179475 -1.097872 -1.134030 4.078536 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 3.552703 3.517812 3.482171 3.474362 -0.551202 \n", " 7185 17 5 3.545193 3.547120 3.510482 3.505849 -0.557052 \n", " 7186 18 5 3.577225 3.552982 3.512130 3.482346 -0.495589 \n", " 7187 19 5 3.557301 3.529381 3.512429 3.491386 -0.638809 \n", " 7188 20 5 3.562512 3.544961 3.525911 3.492892 -0.182420 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.046722 ... -1.479052 -1.581064 -1.041669 -1.095875 \n", " 72 0.0 1 -1.049004 ... -1.464845 -1.573471 -1.064519 -1.100467 \n", " 73 0.0 1 -1.058993 ... -1.453420 -1.565732 -1.091100 -1.109907 \n", " 74 0.0 1 -1.077197 ... -1.440294 -1.558197 -1.102349 -1.113705 \n", " 75 0.0 1 -1.098444 ... -1.427953 -1.550639 -1.114122 -1.118943 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 3.497041 ... 3.365882 3.371333 3.486678 3.429032 \n", " 7185 0.0 0 3.510682 ... 3.374311 3.378597 3.502667 3.449851 \n", " 7186 0.0 0 3.517958 ... 3.381601 3.385257 3.507305 3.463795 \n", " 7187 0.0 0 3.526756 ... 3.389075 3.391806 3.513227 3.477006 \n", " 7188 0.0 0 3.522750 ... 3.394672 3.398719 3.517892 3.488420 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.213694 -1.376353 -1.471633 1.709363 1.849553 63.848039 \n", " 72 -1.207183 -1.366869 -1.462945 1.544312 1.813570 51.380671 \n", " 73 -1.204110 -1.359287 -1.455527 1.356199 1.744127 44.454545 \n", " 74 -1.199082 -1.350873 -1.447534 1.223084 1.659802 47.007806 \n", " 75 -1.195520 -1.343353 -1.440136 1.089350 1.563437 42.378855 \n", " ... ... ... ... ... ... ... \n", " 7184 3.368986 3.367605 3.383203 1.408245 0.964020 92.668928 \n", " 7185 3.387677 3.380144 3.393080 1.450440 1.084855 92.864398 \n", " 7186 3.402945 3.391170 3.402004 1.439473 1.179153 88.166802 \n", " 7187 3.417733 3.402131 3.410945 1.423984 1.251243 88.355982 \n", " 7188 3.431462 3.412709 3.419686 1.396564 1.302989 79.541199 \n", " \n", " [7118 rows x 22 columns],\n", " 'META': time day_of_week open high low close volume \\\n", " 71 21 4 0.038276 0.003463 0.068916 0.034830 -0.475811 \n", " 72 14 5 0.154409 0.173065 0.185240 0.198550 0.633930 \n", " 73 15 5 0.198006 0.170805 0.121634 0.089906 1.399730 \n", " 74 16 5 0.093461 0.124733 0.114683 0.117696 -0.029264 \n", " 75 17 5 0.118662 0.110421 0.125263 0.096948 -0.123375 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 2.749446 2.790665 2.746044 2.825612 -0.316295 \n", " 7185 17 5 2.759992 2.804474 2.788181 2.835923 -0.382316 \n", " 7186 18 5 2.771704 2.806357 2.791257 2.820394 -0.355552 \n", " 7187 19 5 2.754964 2.786648 2.739769 2.770662 -0.077673 \n", " 7188 20 5 2.713514 2.765432 2.741615 2.786003 -0.077164 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 0.028553 ... -0.148626 -0.220659 0.013533 -0.027848 \n", " 72 0.0 1 0.060155 ... -0.136055 -0.212575 0.067002 0.007596 \n", " 73 0.0 1 0.072398 ... -0.126216 -0.205900 0.073994 0.020742 \n", " 74 0.0 1 0.086346 ... -0.115965 -0.198808 0.086969 0.036175 \n", " 75 0.0 1 0.096747 ... -0.106349 -0.192150 0.090279 0.046016 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 2.845824 ... 2.743245 2.729282 2.839805 2.813459 \n", " 7185 0.0 0 2.844814 ... 2.747989 2.732702 2.843153 2.820692 \n", " 7186 0.0 0 2.846424 ... 2.752406 2.735923 2.841085 2.824404 \n", " 7187 0.0 0 2.839708 ... 2.755533 2.738130 2.825325 2.819835 \n", " 7188 0.0 0 2.823328 ... 2.758431 2.741029 2.818474 2.818347 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.077180 -0.138798 -0.179867 1.557645 1.229331 88.547784 \n", " 72 -0.054519 -0.124438 -0.168917 1.954887 1.413540 94.766325 \n", " 73 -0.042471 -0.115193 -0.161332 1.996230 1.569998 73.911388 \n", " 74 -0.029135 -0.105166 -0.153171 2.067984 1.710945 77.553547 \n", " 75 -0.018547 -0.096414 -0.145819 2.052559 1.820310 75.270368 \n", " ... ... ... ... ... ... ... \n", " 7184 2.776754 2.752439 2.723747 1.545914 1.279877 74.555420 \n", " 7185 2.784715 2.758724 2.729552 1.530971 1.360750 79.819660 \n", " 7186 2.790781 2.764105 2.734761 1.465589 1.411070 75.286041 \n", " 7187 2.792334 2.767194 2.738423 1.283788 1.411346 68.041363 \n", " 7188 2.795005 2.770795 2.742418 1.160573 1.384469 52.700756 \n", " \n", " [7118 rows x 22 columns],\n", " 'MSFT': time day_of_week open high low close volume \\\n", " 71 21 4 -1.344158 -1.357640 -1.318603 -1.333240 -0.801426 \n", " 72 14 5 -1.379541 -1.378973 -1.353924 -1.354541 -0.509579 \n", " 73 15 5 -1.367157 -1.379364 -1.370406 -1.384441 -0.526191 \n", " 74 16 5 -1.399396 -1.407547 -1.391206 -1.404374 -0.455488 \n", " 75 17 5 -1.420232 -1.432990 -1.419463 -1.424307 -0.539509 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 2.631376 2.600499 2.607860 2.592296 -0.129199 \n", " 7185 17 5 2.606214 2.580242 2.603052 2.587118 -0.682848 \n", " 7186 18 5 2.597270 2.579655 2.614531 2.598159 -0.698327 \n", " 7187 19 5 2.610441 2.586407 2.619044 2.601188 -0.655069 \n", " 7188 20 5 2.614765 2.588169 2.612765 2.598061 -0.328390 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 -1.352978 ... -1.468312 -1.522189 -1.350126 \n", " 72 0.000000 0 -1.349027 ... -1.462711 -1.518790 -1.351809 \n", " 73 0.000000 0 -1.351378 ... -1.458404 -1.515687 -1.361573 \n", " 74 0.000000 0 -1.360194 ... -1.454751 -1.512903 -1.374254 \n", " 75 0.000000 0 -1.375409 ... -1.451714 -1.510513 -1.389020 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.439064 0 2.628114 ... 2.542534 2.609561 2.617470 \n", " 7185 0.000000 0 2.624718 ... 2.543674 2.607027 2.610819 \n", " 7186 0.000000 0 2.621502 ... 2.545018 2.604680 2.609230 \n", " 7187 0.000000 0 2.618792 ... 2.546415 2.602213 2.608962 \n", " 7188 0.000000 0 2.606091 ... 2.546882 2.599632 2.607875 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.366490 -1.390592 -1.436281 -1.470156 0.689607 0.677522 90.384615 \n", " 72 -1.364960 -1.387918 -1.433093 -1.467118 0.653170 0.683180 70.097087 \n", " 73 -1.368282 -1.387865 -1.431270 -1.464997 0.545036 0.664358 52.696456 \n", " 74 -1.374172 -1.389423 -1.430346 -1.463491 0.405556 0.619182 47.698745 \n", " 75 -1.382235 -1.392461 -1.430284 -1.462582 0.243108 0.547965 41.111111 \n", " ... ... ... ... ... ... ... ... \n", " 7184 2.594379 2.564704 2.571614 2.594429 1.191011 0.861099 73.135896 \n", " 7185 2.595288 2.568453 2.574154 2.596131 1.107908 0.928232 73.367046 \n", " 7186 2.597762 2.572792 2.577046 2.598094 1.054958 0.970505 69.666427 \n", " 7187 2.600324 2.577027 2.579945 2.600087 1.007265 0.994026 69.890424 \n", " 7188 2.602008 2.580672 2.582596 2.601939 0.949661 1.000404 47.951807 \n", " \n", " [7118 rows x 22 columns],\n", " 'NFLX': time day_of_week open high low close volume \\\n", " 71 21 4 0.646038 0.623063 0.664476 0.641674 -0.374798 \n", " 72 14 5 0.582267 0.576941 0.592943 0.591392 -0.174133 \n", " 73 15 5 0.592557 0.571702 0.585328 0.562872 -0.294041 \n", " 74 16 5 0.565477 0.544076 0.531629 0.509762 -0.163553 \n", " 75 17 5 0.507807 0.491207 0.497776 0.494245 -0.095432 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.229911 1.212564 1.222810 1.225101 -0.286018 \n", " 7185 17 5 1.240400 1.222566 1.250981 1.233822 -0.324152 \n", " 7186 18 5 1.250012 1.232727 1.260175 1.245057 -0.343746 \n", " 7187 19 5 1.258626 1.235029 1.251889 1.231858 -0.315666 \n", " 7188 20 5 1.248177 1.222328 1.241867 1.227301 -0.174873 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 0.636079 ... 0.567519 0.549148 0.634490 0.625416 \n", " 72 0.0 0 0.632153 ... 0.570818 0.550762 0.622814 0.620696 \n", " 73 0.0 0 0.622659 ... 0.573208 0.552200 0.606299 0.612295 \n", " 74 0.0 0 0.600479 ... 0.574167 0.552463 0.579277 0.596977 \n", " 75 0.0 0 0.575838 ... 0.574763 0.552325 0.555528 0.581618 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.249338 ... 1.223237 1.173284 1.239498 1.232946 \n", " 7185 0.0 0 1.244861 ... 1.224985 1.175786 1.239125 1.234059 \n", " 7186 0.0 0 1.241801 ... 1.226969 1.178388 1.242080 1.236737 \n", " 7187 0.0 0 1.236535 ... 1.228358 1.180897 1.240406 1.236963 \n", " 7188 0.0 0 1.235012 ... 1.229079 1.183366 1.237905 1.236450 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.610939 0.583666 0.566256 0.490708 0.520633 63.788222 \n", " 72 0.609798 0.584344 0.567285 0.388410 0.500759 46.058179 \n", " 73 0.606450 0.583818 0.567492 0.243319 0.453407 37.404726 \n", " 74 0.599092 0.581122 0.566217 0.014358 0.365888 29.011023 \n", " 75 0.591073 0.577896 0.564545 -0.198214 0.249790 30.441767 \n", " ... ... ... ... ... ... ... \n", " 7184 1.220135 1.201659 1.181100 0.461237 0.411632 68.239796 \n", " 7185 1.222007 1.203625 1.183151 0.440906 0.424940 77.983094 \n", " 7186 1.224634 1.205974 1.185458 0.443493 0.436146 76.371308 \n", " 7187 1.225988 1.207682 1.187335 0.412344 0.438359 71.315997 \n", " 7188 1.226866 1.209133 1.189033 0.373391 0.431685 57.832618 \n", " \n", " [7118 rows x 22 columns],\n", " 'NKE': time day_of_week open high low close volume \\\n", " 71 21 4 -1.301579 -1.329002 -1.244912 -1.271113 -0.738131 \n", " 72 14 5 -1.305044 -1.332459 -1.260164 -1.282389 -0.344214 \n", " 73 15 5 -1.311975 -1.330484 -1.270004 -1.283860 -0.459176 \n", " 74 16 5 -1.318410 -1.329990 -1.262132 -1.279938 -0.507802 \n", " 75 17 5 -1.311975 -1.335916 -1.268036 -1.281408 -0.296646 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.852332 -0.880823 -0.820058 -0.847756 -0.155785 \n", " 7185 17 5 -0.873866 -0.890454 -0.824240 -0.836725 -0.387172 \n", " 7186 18 5 -0.862975 -0.889219 -0.819320 -0.839912 -0.394413 \n", " 7187 19 5 -0.867678 -0.895392 -0.828669 -0.849962 -0.407946 \n", " 7188 20 5 -0.876341 -0.892182 -0.823256 -0.848982 -0.004294 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.280164 ... -1.394691 -1.426770 -1.278676 -1.287869 \n", " 72 0.0 1 -1.282958 ... -1.390870 -1.425419 -1.281727 -1.288381 \n", " 73 0.0 1 -1.284191 ... -1.387339 -1.423769 -1.284329 -1.289042 \n", " 74 0.0 1 -1.284519 ... -1.383932 -1.422161 -1.285060 -1.288994 \n", " 75 0.0 1 -1.286245 ... -1.380826 -1.420386 -1.286005 -1.289181 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -0.860929 ... -0.916645 -0.911062 -0.856221 -0.874108 \n", " 7185 0.0 0 -0.849466 ... -0.916013 -0.909835 -0.851931 -0.869220 \n", " 7186 0.0 0 -0.843508 ... -0.915718 -0.908993 -0.849782 -0.865577 \n", " 7187 0.0 0 -0.839235 ... -0.915966 -0.908310 -0.851134 -0.864052 \n", " 7188 0.0 0 -0.847042 ... -0.916691 -0.907534 -0.851819 -0.862610 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.317648 -1.359689 -1.382188 0.637113 0.775318 43.478261 \n", " 72 -1.315736 -1.357191 -1.380030 0.583711 0.747292 39.603960 \n", " 73 -1.314096 -1.354856 -1.377973 0.532671 0.713767 37.185930 \n", " 74 -1.312271 -1.352455 -1.375862 0.492998 0.678315 41.206030 \n", " 75 -1.310710 -1.350212 -1.373850 0.453748 0.641414 28.571429 \n", " ... ... ... ... ... ... ... \n", " 7184 -0.893281 -0.907604 -0.920303 0.384039 0.253749 52.543860 \n", " 7185 -0.889327 -0.905117 -0.918367 0.407136 0.291620 59.962756 \n", " 7186 -0.885947 -0.902863 -0.916572 0.415200 0.323671 55.297679 \n", " 7187 -0.883649 -0.901117 -0.915107 0.400020 0.346009 53.100775 \n", " 7188 -0.881455 -0.899402 -0.913655 0.385080 0.360629 51.984127 \n", " \n", " [7118 rows x 22 columns],\n", " 'NVDA': time day_of_week open high low close volume \\\n", " 71 21 4 -0.997306 -1.008354 -0.990911 -1.001854 -0.565821 \n", " 72 14 5 -0.990963 -1.000776 -0.986466 -0.995283 -0.408982 \n", " 73 15 5 -0.990741 -1.001806 -0.991725 -1.002666 -0.333160 \n", " 74 16 5 -0.998781 -1.008354 -1.001134 -1.011453 -0.435274 \n", " 75 17 5 -1.006895 -1.017917 -1.008467 -1.017655 -0.389878 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 3.975088 4.048121 3.921571 4.071730 2.412720 \n", " 7185 17 5 4.072231 4.076739 4.036616 4.076751 0.808278 \n", " 7186 18 5 4.077541 4.065961 4.070026 4.055818 -0.342065 \n", " 7187 19 5 4.057626 4.046429 4.066544 4.055707 -0.309593 \n", " 7188 20 5 4.058954 4.034659 4.001132 3.983864 0.072729 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 -1.006040 ... -1.044799 -1.067549 -1.005240 \n", " 72 0.932555 0 -1.004113 ... -1.043179 -1.066412 -1.002936 \n", " 73 0.000000 0 -1.003619 ... -1.041917 -1.065328 -1.003407 \n", " 74 0.000000 0 -1.005077 ... -1.040861 -1.064410 -1.006264 \n", " 75 0.000000 0 -1.007720 ... -1.040043 -1.063647 -1.010083 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.557597 0 4.015660 ... 3.627220 3.667791 4.005182 \n", " 7185 -0.294556 0 4.043399 ... 3.638507 3.676657 4.030434 \n", " 7186 0.000000 0 4.059140 ... 3.649278 3.684975 4.042468 \n", " 7187 0.000000 0 4.074863 ... 3.659683 3.693286 4.051032 \n", " 7188 0.000000 0 4.051755 ... 3.667517 3.700429 4.036547 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.008688 -1.016956 -1.034411 -1.048348 0.100032 0.159739 57.104558 \n", " 72 -1.007132 -1.015652 -1.033183 -1.047239 0.110121 0.152714 70.560748 \n", " 73 -1.006960 -1.015050 -1.032314 -1.046371 0.092433 0.143208 50.655022 \n", " 74 -1.008176 -1.015209 -1.031848 -1.045776 0.048936 0.126048 41.726619 \n", " 75 -1.010165 -1.015858 -1.031661 -1.045374 -0.006461 0.100149 37.001595 \n", " ... ... ... ... ... ... ... ... \n", " 7184 3.889138 3.749299 3.676939 3.650020 6.716681 5.003589 86.163627 \n", " 7185 3.923109 3.780469 3.698058 3.666435 6.869970 5.512879 87.499295 \n", " 7186 3.948610 3.807449 3.717439 3.681806 6.846421 5.915138 85.571680 \n", " 7187 3.970171 3.832261 3.736024 3.696753 6.747630 6.215241 85.564274 \n", " 7188 3.977282 3.849264 3.750845 3.709250 6.373848 6.373207 60.062062 \n", " \n", " [7118 rows x 22 columns],\n", " 'ORCL': time day_of_week open high low close volume \\\n", " 71 21 4 -1.628734 -1.621218 -1.609599 -1.603407 -0.673862 \n", " 72 14 5 -1.644520 -1.632435 -1.625906 -1.617818 0.012892 \n", " 73 15 5 -1.642887 -1.633504 -1.631341 -1.623689 -0.309457 \n", " 74 16 5 -1.651597 -1.633504 -1.635146 -1.616217 -0.108757 \n", " 75 17 5 -1.642343 -1.634572 -1.633515 -1.624223 -0.237555 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.676701 1.622331 1.630598 1.579732 -0.453079 \n", " 7185 17 5 1.621447 1.571851 1.618640 1.584536 -0.458338 \n", " 7186 18 5 1.622808 1.577994 1.624076 1.593076 -0.392764 \n", " 7187 19 5 1.630973 1.594020 1.641470 1.596812 -0.355934 \n", " 7188 20 5 1.633151 1.585473 1.628424 1.575996 0.368325 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 -1.612228 ... -1.612650 -1.618414 -1.608789 -1.605916 \n", " 72 0.0 0 -1.612317 ... -1.612751 -1.619017 -1.612659 -1.608504 \n", " 73 0.0 0 -1.615710 ... -1.613054 -1.619634 -1.617107 -1.611601 \n", " 74 0.0 0 -1.617407 ... -1.613336 -1.620139 -1.618141 -1.613066 \n", " 75 0.0 0 -1.620889 ... -1.613763 -1.620674 -1.621176 -1.615543 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.578289 ... 1.537330 1.622735 1.579540 1.540092 \n", " 7185 0.0 0 1.588647 ... 1.535282 1.618988 1.582854 1.548404 \n", " 7186 0.0 0 1.599362 ... 1.533325 1.615441 1.587670 1.556757 \n", " 7187 0.0 0 1.610702 ... 1.531615 1.611946 1.592182 1.564402 \n", " 7188 0.0 0 1.600523 ... 1.528961 1.608369 1.589436 1.567654 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.600011 -1.595137 -1.591836 -0.259636 -0.242336 33.884298 \n", " 72 -1.601796 -1.596192 -1.592598 -0.285680 -0.257143 23.571429 \n", " 73 -1.603910 -1.597445 -1.593502 -0.317436 -0.276029 23.404255 \n", " 74 -1.605253 -1.598340 -1.594175 -0.322361 -0.292231 32.191781 \n", " 75 -1.607134 -1.599527 -1.595050 -0.342105 -0.309569 30.921053 \n", " ... ... ... ... ... ... ... \n", " 7184 1.516206 1.553713 1.598412 0.735363 -0.089303 75.092251 \n", " 7185 1.522815 1.555927 1.598933 0.799179 0.105829 79.627249 \n", " 7186 1.529583 1.558402 1.599675 0.858883 0.275173 78.107735 \n", " 7187 1.536109 1.560930 1.600501 0.903545 0.420551 78.317373 \n", " 7188 1.540439 1.562498 1.600727 0.878973 0.531405 64.285714 \n", " \n", " [7118 rows x 22 columns],\n", " 'PARA': time day_of_week open high low close volume \\\n", " 71 21 4 -0.251529 -0.261415 -0.223305 -0.234191 -0.563071 \n", " 72 14 5 -0.283594 -0.285909 -0.264632 -0.271932 -0.144824 \n", " 73 15 5 -0.289349 -0.298157 -0.279509 -0.289982 0.016898 \n", " 74 16 5 -0.306614 -0.316120 -0.293560 -0.300648 -0.281349 \n", " 75 17 5 -0.318125 -0.327551 -0.309264 -0.310494 -0.307143 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -1.328579 -1.325310 -1.313910 -1.306124 0.185214 \n", " 7185 17 5 -1.326112 -1.323677 -1.309365 -1.309816 0.313937 \n", " 7186 18 5 -1.329401 -1.328576 -1.308538 -1.311046 0.128018 \n", " 7187 19 5 -1.331045 -1.333475 -1.316803 -1.315149 0.067369 \n", " 7188 20 5 -1.334745 -1.331842 -1.316803 -1.310636 0.577446 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 -0.233946 ... -0.295808 -0.335357 -0.236799 \n", " 72 0.000000 1 -0.241479 ... -0.293790 -0.333321 -0.247106 \n", " 73 0.000000 1 -0.251341 ... -0.292565 -0.331425 -0.259637 \n", " 74 0.000000 1 -0.261888 ... -0.292013 -0.329852 -0.271642 \n", " 75 0.000000 1 -0.274626 ... -0.291806 -0.328476 -0.283037 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.000000 0 -1.294016 ... -1.252605 -1.234258 -1.298325 \n", " 7185 -0.944393 0 -1.300933 ... -1.255848 -1.236351 -1.302564 \n", " 7186 0.000000 0 -1.307713 ... -1.259134 -1.238409 -1.305944 \n", " 7187 0.000000 0 -1.315178 ... -1.262584 -1.240549 -1.309534 \n", " 7188 0.000000 0 -1.312986 ... -1.266017 -1.242509 -1.310805 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.246302 -0.264198 -0.296259 -0.322643 0.346109 0.339404 60.287081 \n", " 72 -0.250524 -0.265112 -0.295582 -0.321579 0.282516 0.330224 49.411765 \n", " 73 -0.256884 -0.267408 -0.295683 -0.321052 0.203850 0.306525 51.219512 \n", " 74 -0.263915 -0.270381 -0.296223 -0.320840 0.124822 0.271135 49.027237 \n", " 75 -0.271384 -0.273911 -0.297150 -0.320911 0.047584 0.226765 46.840149 \n", " ... ... ... ... ... ... ... ... \n", " 7184 -1.288608 -1.278793 -1.265580 -1.257416 -0.312018 -0.266745 27.868852 \n", " 7185 -1.292817 -1.282270 -1.268474 -1.259985 -0.326738 -0.281366 26.587302 \n", " 7186 -1.296568 -1.285567 -1.271300 -1.262518 -0.336138 -0.295017 26.482213 \n", " 7187 -1.300376 -1.288932 -1.274182 -1.265097 -0.345365 -0.307857 25.475285 \n", " 7188 -1.302901 -1.291664 -1.276759 -1.267479 -0.342043 -0.317438 28.205128 \n", " \n", " [7118 rows x 22 columns],\n", " 'PEP': time day_of_week open high low close volume \\\n", " 71 21 4 -1.729065 -1.748370 -1.720039 -1.738685 -0.860910 \n", " 72 14 5 -1.734845 -1.750466 -1.744427 -1.752952 -0.351008 \n", " 73 15 5 -1.740098 -1.741557 -1.739125 -1.732872 0.300587 \n", " 74 16 5 -1.726439 -1.712735 -1.717388 -1.712792 -0.279116 \n", " 75 17 5 -1.702271 -1.717451 -1.702013 -1.718076 -0.211459 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.718659 0.712498 0.741542 0.714744 0.058838 \n", " 7185 17 5 0.708151 0.686558 0.710527 0.683832 -0.309314 \n", " 7186 18 5 0.677680 0.672148 0.704961 0.698363 -0.447598 \n", " 7187 19 5 0.696068 0.685772 0.721926 0.715801 -0.166080 \n", " 7188 20 5 0.711304 0.695729 0.732529 0.708931 0.293602 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 -1.742740 ... -1.714466 -1.704389 -1.739058 -1.732489 \n", " 72 0.0 0 -1.743534 ... -1.715951 -1.705078 -1.743321 -1.735705 \n", " 73 0.0 0 -1.742475 ... -1.717169 -1.705796 -1.740622 -1.735332 \n", " 74 0.0 0 -1.738771 ... -1.718709 -1.705974 -1.732951 -1.731924 \n", " 75 0.0 0 -1.735331 ... -1.719828 -1.706270 -1.728984 -1.729854 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 0.673417 ... 0.618024 0.629439 0.683362 0.664466 \n", " 7185 0.0 0 0.679723 ... 0.620766 0.629472 0.683942 0.667863 \n", " 7186 0.0 0 0.690660 ... 0.623856 0.630072 0.688514 0.672975 \n", " 7187 0.0 0 0.704508 ... 0.627368 0.630694 0.696766 0.679987 \n", " 7188 0.0 0 0.707948 ... 0.629772 0.632152 0.700696 0.684862 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.718327 -1.700484 -1.690887 -0.513710 -0.528580 33.695652 \n", " 72 -1.721000 -1.702426 -1.692351 -0.532919 -0.538147 29.047619 \n", " 73 -1.721851 -1.703468 -1.693223 -0.492712 -0.537099 45.833333 \n", " 74 -1.721024 -1.703646 -1.693521 -0.406414 -0.517584 57.805907 \n", " 75 -1.720688 -1.704033 -1.693955 -0.348139 -0.489359 50.892857 \n", " ... ... ... ... ... ... ... \n", " 7184 0.651606 0.651864 0.662657 0.436310 0.171786 58.039492 \n", " 7185 0.654568 0.653528 0.663589 0.453605 0.235657 56.139154 \n", " 7186 0.658457 0.655719 0.664895 0.497354 0.296222 54.005722 \n", " 7187 0.663433 0.658533 0.666643 0.568568 0.360086 56.079235 \n", " 7188 0.667459 0.660952 0.668155 0.599965 0.417973 76.443203 \n", " \n", " [7118 rows x 22 columns],\n", " 'PFE': time day_of_week open high low close volume \\\n", " 71 21 4 -0.788450 -0.797014 -0.765517 -0.774868 -0.404682 \n", " 72 14 5 -0.780987 -0.779575 -0.758001 -0.767544 -0.341636 \n", " 73 15 5 -0.780987 -0.770855 -0.759504 -0.751431 -0.261156 \n", " 74 16 5 -0.764570 -0.751963 -0.748981 -0.730924 -0.261227 \n", " 75 17 5 -0.745167 -0.754869 -0.748981 -0.748501 0.257622 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -1.554859 -1.543272 -1.563035 -1.533643 0.015321 \n", " 7185 17 5 -1.561576 -1.549812 -1.565290 -1.554150 -0.244149 \n", " 7186 18 5 -1.581725 -1.569431 -1.582578 -1.570995 -0.159794 \n", " 7187 19 5 -1.599635 -1.580330 -1.587088 -1.564404 -0.254275 \n", " 7188 20 5 -1.591426 -1.575244 -1.587840 -1.575390 0.053069 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 1 -0.778031 ... -0.770633 -0.786620 -0.774702 \n", " 72 0.923709 0 -0.777296 ... -0.770694 -0.784417 -0.773370 \n", " 73 0.000000 0 -0.772890 ... -0.771125 -0.781966 -0.767801 \n", " 74 0.000000 0 -0.765302 ... -0.771802 -0.779104 -0.757946 \n", " 75 0.000000 0 -0.760896 ... -0.772941 -0.776880 -0.755944 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.000000 0 -1.575406 ... -1.627851 -1.646907 -1.566687 \n", " 7185 0.000000 0 -1.567451 ... -1.625019 -1.646134 -1.564482 \n", " 7186 0.000000 0 -1.561454 ... -1.622511 -1.645486 -1.567735 \n", " 7187 0.000000 0 -1.554355 ... -1.620110 -1.644889 -1.568170 \n", " 7188 0.000000 0 -1.559740 ... -1.618094 -1.644497 -1.571628 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.771621 -0.770133 -0.780276 -0.799710 -0.090545 -0.035520 48.076923 \n", " 72 -0.771590 -0.770434 -0.780221 -0.799284 -0.082175 -0.046114 42.553191 \n", " 73 -0.769074 -0.769414 -0.779503 -0.798420 -0.041283 -0.045767 59.615385 \n", " 74 -0.763776 -0.766823 -0.777968 -0.797009 0.033677 -0.029318 64.406780 \n", " 75 -0.762010 -0.765856 -0.777221 -0.796126 0.055993 -0.011344 50.000000 \n", " ... ... ... ... ... ... ... ... \n", " 7184 -1.588005 -1.604858 -1.624634 -1.639325 0.364631 0.138392 67.088608 \n", " 7185 -1.583925 -1.601744 -1.622606 -1.637817 0.393278 0.195588 61.061947 \n", " 7186 -1.583076 -1.600236 -1.621356 -1.636820 0.376720 0.237773 53.453453 \n", " 7187 -1.581339 -1.598318 -1.619885 -1.635667 0.373230 0.270768 54.678363 \n", " 7188 -1.581567 -1.597439 -1.618927 -1.634851 0.343797 0.290814 65.384615 \n", " \n", " [7118 rows x 22 columns],\n", " 'PG': time day_of_week open high low close volume \\\n", " 71 21 4 -1.553445 -1.578725 -1.519107 -1.543663 -0.918270 \n", " 72 14 5 -1.544994 -1.552607 -1.536932 -1.556705 -0.515360 \n", " 73 15 5 -1.561897 -1.564733 -1.530365 -1.539937 -0.334475 \n", " 74 16 5 -1.548750 -1.546078 -1.514416 -1.524100 -0.582311 \n", " 75 17 5 -1.531847 -1.550742 -1.515354 -1.539937 -0.576433 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 2.142629 2.102893 2.141614 2.091353 -0.687702 \n", " 7185 17 5 2.110701 2.070246 2.137861 2.092750 -0.604506 \n", " 7186 18 5 2.111171 2.087036 2.142083 2.113245 -0.651306 \n", " 7187 19 5 2.132769 2.133674 2.149588 2.159824 -0.399710 \n", " 7188 20 5 2.177843 2.151396 2.171635 2.121163 1.022615 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.558229 ... -1.626472 -1.773391 -1.546980 -1.538159 \n", " 72 0.0 0 -1.554954 ... -1.624113 -1.765532 -1.551022 -1.541886 \n", " 73 0.0 1 -1.553862 ... -1.621219 -1.757859 -1.549099 -1.542445 \n", " 74 0.0 0 -1.548871 ... -1.619237 -1.749441 -1.543184 -1.540468 \n", " 75 0.0 1 -1.548247 ... -1.616601 -1.741249 -1.543501 -1.541245 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 2.111593 ... 1.930744 1.883058 2.104501 2.082671 \n", " 7185 0.0 0 2.111047 ... 1.941696 1.887607 2.103829 2.086562 \n", " 7186 0.0 0 2.116427 ... 1.953223 1.892802 2.109227 2.093026 \n", " 7187 0.0 0 2.129606 ... 1.965522 1.898529 2.126442 2.105702 \n", " 7188 0.0 0 2.126175 ... 1.976167 1.903311 2.127650 2.110446 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.550664 -1.628225 -1.706641 0.220935 0.572276 37.155963 \n", " 72 -1.551724 -1.625706 -1.702886 0.162802 0.492949 22.164948 \n", " 73 -1.551346 -1.622596 -1.698764 0.139745 0.424531 29.186603 \n", " 74 -1.549720 -1.618956 -1.694313 0.143032 0.370503 34.977578 \n", " 75 -1.549502 -1.616121 -1.690426 0.119320 0.322184 34.666667 \n", " ... ... ... ... ... ... ... \n", " 7184 2.038517 1.980791 1.953181 1.091689 1.143897 61.635220 \n", " 7185 2.044888 1.987192 1.958782 1.043051 1.139451 60.043668 \n", " 7186 2.052403 1.994181 1.964803 1.023003 1.131584 56.480380 \n", " 7187 2.063077 2.002815 1.971962 1.064782 1.134271 61.105207 \n", " 7188 2.069776 2.009495 1.977844 1.026423 1.128176 71.695761 \n", " \n", " [7118 rows x 22 columns],\n", " 'PYPL': time day_of_week open high low close volume \\\n", " 71 21 4 0.722443 0.712617 0.733825 0.723258 -0.407811 \n", " 72 14 5 0.706576 0.704404 0.713505 0.711805 -0.265845 \n", " 73 15 5 0.711542 0.702774 0.689437 0.679011 -0.263240 \n", " 74 16 5 0.677991 0.674209 0.675165 0.664785 -0.303293 \n", " 75 17 5 0.662730 0.653556 0.654543 0.646278 -0.258811 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -1.032672 -1.036629 -1.022395 -1.023841 0.054759 \n", " 7185 17 5 -1.032187 -1.034395 -1.018282 -1.022092 -0.226751 \n", " 7186 18 5 -1.031339 -1.035482 -1.018524 -1.022876 -0.235327 \n", " 7187 19 5 -1.031703 -1.036448 -1.019310 -1.023177 -0.246142 \n", " 7188 20 5 -1.032066 -1.034576 -1.018827 -1.023841 0.090057 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 0.709725 ... 0.645300 0.571958 0.712817 0.702850 \n", " 72 0.0 0 0.713604 ... 0.647875 0.576538 0.712502 0.704175 \n", " 73 0.0 0 0.710790 ... 0.649903 0.580758 0.702903 0.700245 \n", " 74 0.0 0 0.704138 ... 0.651527 0.584640 0.691979 0.694729 \n", " 75 0.0 0 0.691305 ... 0.652680 0.588190 0.678885 0.687211 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -1.030263 ... -1.031383 -1.031799 -1.030000 -1.033905 \n", " 7185 0.0 0 -1.028716 ... -1.031110 -1.031581 -1.028045 -1.032416 \n", " 7186 0.0 0 -1.026867 ... -1.030895 -1.031454 -1.026872 -1.031277 \n", " 7187 0.0 0 -1.025068 ... -1.030741 -1.031416 -1.026121 -1.030359 \n", " 7188 0.0 0 -1.023732 ... -1.030663 -1.031371 -1.025774 -1.029685 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.682046 0.634227 0.592420 1.198600 1.333775 54.607899 \n", " 72 0.684356 0.637314 0.595610 1.147089 1.311122 47.934322 \n", " 73 0.683853 0.638931 0.597808 0.970667 1.255458 37.242798 \n", " 74 0.682250 0.639900 0.599555 0.768447 1.167894 34.423735 \n", " 75 0.679292 0.640071 0.600743 0.532170 1.047563 31.787847 \n", " ... ... ... ... ... ... ... \n", " 7184 -1.036725 -1.038579 -1.039252 0.092970 -0.003211 78.545455 \n", " 7185 -1.035895 -1.038253 -1.039131 0.127386 0.024542 86.817326 \n", " 7186 -1.035193 -1.037972 -1.039036 0.150683 0.051702 83.852140 \n", " 7187 -1.034572 -1.037715 -1.038952 0.166824 0.076865 83.044316 \n", " 7188 -1.034054 -1.037495 -1.038888 0.175809 0.098907 78.891258 \n", " \n", " [7118 rows x 22 columns],\n", " 'QCOM': time day_of_week open high low close volume \\\n", " 71 21 4 -1.479838 -1.508130 -1.448299 -1.477431 -0.582828 \n", " 72 14 5 -1.550657 -1.568767 -1.537926 -1.566783 -0.231581 \n", " 73 15 5 -1.560137 -1.587125 -1.581330 -1.595443 -0.211308 \n", " 74 16 5 -1.596941 -1.614941 -1.633189 -1.650515 -0.389532 \n", " 75 17 5 -1.659953 -1.687817 -1.712105 -1.726380 -0.150948 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.428754 1.407479 1.452437 1.464154 -0.098362 \n", " 7185 17 5 1.439628 1.423055 1.472166 1.449824 -0.323108 \n", " 7186 18 5 1.425966 1.412485 1.485131 1.456006 -0.257371 \n", " 7187 19 5 1.430985 1.398021 1.477521 1.452072 -0.203269 \n", " 7188 20 5 1.429312 1.398578 1.464275 1.441957 0.381114 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 -1.487347 ... -1.626305 -1.926713 -1.484960 -1.490719 \n", " 72 0.0 0 -1.501287 ... -1.621653 -1.912685 -1.509984 -1.503581 \n", " 73 0.0 0 -1.520030 ... -1.617001 -1.899247 -1.536085 -1.518904 \n", " 74 0.0 1 -1.549887 ... -1.616484 -1.887054 -1.570534 -1.540399 \n", " 75 0.0 0 -1.591612 ... -1.616809 -1.876060 -1.616916 -1.570338 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.454976 ... 1.389250 1.366111 1.452481 1.419279 \n", " 7185 0.0 0 1.457895 ... 1.392256 1.369889 1.454012 1.425958 \n", " 7186 0.0 0 1.462322 ... 1.394738 1.373368 1.456880 1.432566 \n", " 7187 0.0 0 1.466090 ... 1.397178 1.376718 1.457799 1.437548 \n", " 7188 0.0 0 1.461616 ... 1.398548 1.379905 1.455552 1.440197 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.526399 -1.667438 -1.808877 0.565754 0.830066 49.868074 \n", " 72 -1.530422 -1.663880 -1.802701 0.422355 0.754754 37.649402 \n", " 73 -1.536440 -1.661656 -1.797497 0.270953 0.662014 24.008351 \n", " 74 -1.546427 -1.661809 -1.793979 0.084041 0.547712 21.178637 \n", " 75 -1.561748 -1.665105 -1.792684 -0.152943 0.405416 13.914373 \n", " ... ... ... ... ... ... ... \n", " 7184 1.385104 1.358816 1.331196 0.622716 0.376348 89.322709 \n", " 7185 1.391993 1.364054 1.335892 0.623018 0.434841 88.059701 \n", " 7186 1.398830 1.369335 1.340633 0.622768 0.481581 83.690987 \n", " 7187 1.404803 1.374237 1.345134 0.610227 0.516282 82.452431 \n", " 7188 1.409480 1.378520 1.349227 0.580954 0.537761 76.620370 \n", " \n", " [7118 rows x 22 columns],\n", " 'RBLX': time day_of_week open high low close volume \\\n", " 71 17 2 0.632176 0.611533 0.694245 0.670392 -0.488965 \n", " 72 18 2 0.613973 0.595947 0.674379 0.648308 -0.396115 \n", " 73 19 2 0.592970 0.580360 0.662332 0.647467 -0.220133 \n", " 74 20 2 0.592170 0.571568 0.673533 0.647467 -0.533657 \n", " 75 21 2 0.592170 0.571568 0.673533 0.647467 -0.533657 \n", " ... ... ... ... ... ... ... ... \n", " 5938 16 5 -0.422001 -0.430360 -0.405188 -0.412150 -0.414872 \n", " 5939 17 5 -0.415600 -0.434756 -0.425055 -0.433603 -0.407337 \n", " 5940 18 5 -0.436003 -0.454938 -0.425055 -0.441806 -0.375767 \n", " 5941 19 5 -0.443804 -0.462732 -0.429282 -0.449167 -0.442534 \n", " 5942 20 5 -0.451206 -0.470725 -0.446190 -0.465993 0.219711 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 0.713295 ... 0.868285 0.846681 0.709193 0.734872 \n", " 72 0.0 0 0.699145 ... 0.863648 0.845234 0.693471 0.722621 \n", " 73 0.0 0 0.684854 ... 0.859972 0.843456 0.681998 0.712124 \n", " 74 0.0 0 0.669042 ... 0.856296 0.842522 0.673803 0.703242 \n", " 75 0.0 0 0.664585 ... 0.852621 0.841589 0.667950 0.695726 \n", " ... ... ... ... ... ... ... ... ... \n", " 5938 0.0 0 -0.424066 ... -0.425249 -0.412488 -0.428029 -0.442610 \n", " 5939 0.0 0 -0.427321 ... -0.426237 -0.413662 -0.430983 -0.442225 \n", " 5940 0.0 0 -0.429974 ... -0.427354 -0.414973 -0.435460 -0.443177 \n", " 5941 0.0 0 -0.433865 ... -0.428876 -0.416373 -0.440781 -0.445129 \n", " 5942 0.0 0 -0.440515 ... -0.431257 -0.418115 -0.449437 -0.449401 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.770730 0.806319 0.815208 -0.742954 -0.728795 30.809399 \n", " 72 0.761547 0.800207 0.810876 -0.809938 -0.766255 28.229665 \n", " 73 0.753031 0.794309 0.806638 -0.854198 -0.806236 28.139905 \n", " 74 0.745196 0.788651 0.802517 -0.878823 -0.843790 15.196998 \n", " 75 0.737987 0.783225 0.798509 -0.887784 -0.875861 11.459354 \n", " ... ... ... ... ... ... ... \n", " 5938 -0.450943 -0.445851 -0.446254 0.130890 -0.072565 81.146305 \n", " 5939 -0.450278 -0.445903 -0.446399 0.127156 -0.029288 72.506739 \n", " 5940 -0.450332 -0.446293 -0.446770 0.110159 0.001488 67.469880 \n", " 5941 -0.450980 -0.446974 -0.447338 0.084291 0.020257 64.450128 \n", " 5942 -0.452943 -0.448328 -0.448362 0.036838 0.024538 52.894737 \n", " \n", " [5872 rows x 22 columns],\n", " 'SBUX': time day_of_week open high low close volume \\\n", " 71 21 4 -2.175797 -2.186255 -2.129245 -2.141100 -0.763500 \n", " 72 14 5 -2.203347 -2.203017 -2.163827 -2.175430 -0.629451 \n", " 73 15 5 -2.210457 -2.203017 -2.163827 -2.165747 -0.675428 \n", " 74 16 5 -2.200681 -2.181844 -2.157620 -2.137579 0.153416 \n", " 75 17 5 -2.173131 -2.181844 -2.160280 -2.163986 0.253875 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.147730 0.148160 0.183286 0.162517 0.066166 \n", " 7185 17 5 0.149952 0.139338 0.164665 0.136110 -0.214802 \n", " 7186 18 5 0.124624 0.105371 0.156241 0.138751 -0.205249 \n", " 7187 19 5 0.127290 0.101842 0.112349 0.089457 -0.288049 \n", " 7188 20 5 0.076189 0.056407 0.100822 0.074052 0.996178 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -2.155528 ... -2.199549 -2.204400 -2.151364 -2.160991 \n", " 72 0.0 1 -2.156706 ... -2.199438 -2.204762 -2.159712 -2.164175 \n", " 73 0.0 1 -2.157589 ... -2.199419 -2.205336 -2.162901 -2.165374 \n", " 74 0.0 1 -2.158472 ... -2.199624 -2.205474 -2.157109 -2.162039 \n", " 75 0.0 1 -2.162300 ... -2.200741 -2.206211 -2.160537 -2.163294 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 0.111066 ... -0.057124 -0.026033 0.117076 0.079715 \n", " 7185 0.0 0 0.122402 ... -0.052991 -0.027570 0.122845 0.088732 \n", " 7186 0.0 0 0.131529 ... -0.049192 -0.028994 0.127722 0.096770 \n", " 7187 0.0 0 0.132412 ... -0.045580 -0.031142 0.117084 0.095960 \n", " 7188 0.0 0 0.126009 ... -0.042666 -0.033222 0.105071 0.092896 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -2.168648 -2.165901 -2.161703 0.093784 -0.011633 57.894737 \n", " 72 -2.169759 -2.166587 -2.162262 0.051951 0.002022 42.771084 \n", " 73 -2.170002 -2.166848 -2.162539 0.033082 0.008869 53.947368 \n", " 74 -2.167962 -2.165940 -2.162030 0.060984 0.020375 59.064327 \n", " 75 -2.168208 -2.166155 -2.162265 0.040877 0.025235 50.248756 \n", " ... ... ... ... ... ... ... \n", " 7184 0.034916 0.001947 -0.010475 0.959841 0.761991 72.150072 \n", " 7185 0.043348 0.007750 -0.006137 0.975966 0.820568 74.515648 \n", " 7186 0.051318 0.013425 -0.001845 0.981093 0.868538 71.967213 \n", " 7187 0.054687 0.016843 0.000968 0.897290 0.888806 60.803324 \n", " 7188 0.056549 0.019489 0.003279 0.797137 0.883382 61.918195 \n", " \n", " [7118 rows x 22 columns],\n", " 'SHOP': time day_of_week open high low close volume \\\n", " 71 21 4 0.653235 0.633886 0.669370 0.649702 -0.521000 \n", " 72 14 5 0.629298 0.632392 0.645427 0.648208 -0.476982 \n", " 73 15 5 0.651739 0.632392 0.634703 0.615098 -0.463341 \n", " 74 16 5 0.618576 0.599275 0.610760 0.594186 -0.376336 \n", " 75 17 5 0.577186 0.557941 0.552399 0.565805 -0.412661 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.190035 -0.177109 -0.180107 -0.161512 -0.325244 \n", " 7185 17 5 -0.159241 -0.165406 -0.148557 -0.153669 -0.450151 \n", " 7186 18 5 -0.151387 -0.164908 -0.143693 -0.159146 -0.403730 \n", " 7187 19 5 -0.156873 -0.173374 -0.151176 -0.167486 -0.396600 \n", " 7188 20 5 -0.163605 -0.171880 -0.155914 -0.162507 -0.148673 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 0 0.651376 ... 0.597754 0.548448 0.649332 0.646372 \n", " 72 0.0 0 0.651999 ... 0.601202 0.553004 0.649185 0.646785 \n", " 73 0.0 0 0.646352 ... 0.602941 0.557525 0.639608 0.642031 \n", " 74 0.0 0 0.634934 ... 0.604265 0.561347 0.626786 0.634785 \n", " 75 0.0 0 0.620941 ... 0.604566 0.564501 0.609508 0.624279 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -0.189494 ... -0.096716 -0.044911 -0.183731 -0.178210 \n", " 7185 0.0 0 -0.184678 ... -0.098107 -0.049605 -0.175243 -0.174537 \n", " 7186 0.0 0 -0.179155 ... -0.099826 -0.054583 -0.170747 -0.172273 \n", " 7187 0.0 0 -0.175024 ... -0.101908 -0.059693 -0.169922 -0.171643 \n", " 7188 0.0 0 -0.166242 ... -0.104221 -0.064720 -0.167908 -0.170343 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 0.633851 0.594851 0.556736 0.496908 0.647533 53.929867 \n", " 72 0.635099 0.597112 0.559320 0.467680 0.618155 49.145861 \n", " 73 0.633590 0.597922 0.560919 0.358545 0.571266 38.242280 \n", " 74 0.630524 0.597840 0.561897 0.217915 0.503620 27.403846 \n", " 75 0.625426 0.596598 0.562065 0.035927 0.410507 28.217822 \n", " ... ... ... ... ... ... ... \n", " 7184 -0.155634 -0.112932 -0.086049 -0.821191 -1.016058 56.375071 \n", " 7185 -0.155576 -0.114688 -0.087990 -0.701002 -0.963148 57.705100 \n", " 7186 -0.155963 -0.116596 -0.090028 -0.612100 -0.901769 54.560811 \n", " 7187 -0.156987 -0.118769 -0.092241 -0.555733 -0.840588 52.577320 \n", " 7188 -0.157531 -0.120648 -0.094256 -0.492891 -0.778177 41.025641 \n", " \n", " [7118 rows x 22 columns],\n", " 'SMCI': time day_of_week open high low close volume \\\n", " 71 21 4 -0.586819 -0.589657 -0.587618 -0.590752 -0.468706 \n", " 72 14 5 -0.585334 -0.586798 -0.586115 -0.588579 -0.278414 \n", " 73 15 5 -0.584649 -0.586347 -0.586385 -0.589532 -0.194308 \n", " 74 16 5 -0.585601 -0.587024 -0.587078 -0.590218 -0.201877 \n", " 75 17 5 -0.586438 -0.589281 -0.588581 -0.591514 -0.237412 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 5.673047 5.618688 5.537955 5.700059 4.649923 \n", " 7185 17 5 5.699993 5.793062 5.706725 5.851595 6.932054 \n", " 7186 18 5 5.844615 5.780424 5.743831 5.729939 0.964367 \n", " 7187 19 5 5.734321 5.751838 5.776275 5.834978 0.667681 \n", " 7188 20 5 5.829772 5.770193 5.781362 5.735580 2.539371 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 -0.593641 ... -0.608543 -0.623766 -0.593090 \n", " 72 0.000000 1 -0.593020 ... -0.608351 -0.623495 -0.592638 \n", " 73 0.000000 1 -0.592802 ... -0.608223 -0.623249 -0.592589 \n", " 74 0.000000 1 -0.593033 ... -0.608154 -0.623027 -0.592753 \n", " 75 0.000000 1 -0.593161 ... -0.608137 -0.622817 -0.593243 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.000000 0 6.207293 ... 6.054399 6.062387 6.023476 \n", " 7185 -0.441834 0 6.094500 ... 6.058858 6.079150 5.989740 \n", " 7186 0.000000 0 5.945573 ... 6.058458 6.093125 5.930579 \n", " 7187 0.744281 0 5.814294 ... 6.059591 6.108487 5.918595 \n", " 7188 0.000000 0 5.802371 ... 6.055936 6.122419 5.881386 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.594704 -0.598529 -0.608427 -0.618654 -0.159502 -0.156762 46.320346 \n", " 72 -0.594584 -0.598489 -0.608331 -0.618524 -0.157562 -0.159931 46.203905 \n", " 73 -0.594632 -0.598531 -0.608280 -0.618425 -0.157931 -0.162548 37.096774 \n", " 74 -0.594780 -0.598627 -0.608261 -0.618350 -0.159565 -0.165005 33.561644 \n", " 75 -0.595108 -0.598821 -0.608299 -0.618316 -0.163405 -0.167824 31.545064 \n", " ... ... ... ... ... ... ... ... \n", " 7184 6.026857 5.936750 5.937122 5.907488 5.049153 5.121190 65.147119 \n", " 7185 6.016536 5.946651 5.950366 5.922605 4.530362 5.104712 66.462838 \n", " 7186 5.988757 5.945698 5.957775 5.933648 3.824417 4.934574 63.992723 \n", " 7187 5.981696 5.953509 5.969452 5.947548 3.438471 4.712656 65.067299 \n", " 7188 5.960160 5.952473 5.976327 5.958077 2.894075 4.414083 47.953548 \n", " \n", " [7118 rows x 22 columns],\n", " 'SNAP': time day_of_week open high low close volume \\\n", " 71 21 4 -0.421678 -0.428756 -0.405118 -0.412645 -0.350006 \n", " 72 14 5 -0.410739 -0.391420 -0.394106 -0.380437 -0.143117 \n", " 73 15 5 -0.389307 -0.392087 -0.381969 -0.389607 -0.077135 \n", " 74 16 5 -0.398237 -0.398087 -0.388262 -0.390949 -0.165826 \n", " 75 17 5 -0.401139 -0.406310 -0.395005 -0.396317 -0.216654 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.903003 -0.905012 -0.893721 -0.892849 -0.129647 \n", " 7185 17 5 -0.900770 -0.898123 -0.887428 -0.885468 -0.181101 \n", " 7186 18 5 -0.893403 -0.894122 -0.880461 -0.885468 -0.141506 \n", " 7187 19 5 -0.893627 -0.898123 -0.883832 -0.886810 -0.154228 \n", " 7188 20 5 -0.894743 -0.897456 -0.882933 -0.885468 0.053877 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -0.412370 ... -0.393043 -0.382725 -0.411908 -0.408459 \n", " 72 0.0 0 -0.408864 ... -0.393501 -0.382971 -0.403079 -0.404310 \n", " 73 0.0 1 -0.404053 ... -0.394312 -0.383245 -0.399396 -0.402214 \n", " 74 0.0 1 -0.400472 ... -0.395092 -0.383727 -0.397148 -0.400646 \n", " 75 0.0 1 -0.397749 ... -0.396076 -0.384250 -0.397078 -0.400147 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -0.891641 ... -0.877848 -0.875732 -0.892000 -0.889806 \n", " 7185 0.0 0 -0.891715 ... -0.878440 -0.875847 -0.890444 -0.889435 \n", " 7186 0.0 0 -0.891193 ... -0.878954 -0.875993 -0.889332 -0.889121 \n", " 7187 0.0 0 -0.890895 ... -0.879546 -0.876167 -0.888922 -0.889063 \n", " 7188 0.0 0 -0.889478 ... -0.880111 -0.876363 -0.888246 -0.888806 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.403219 -0.394878 -0.389771 -0.226485 -0.212234 34.831461 \n", " 72 -0.401555 -0.394441 -0.389662 -0.135055 -0.198745 51.966874 \n", " 73 -0.400760 -0.394398 -0.389809 -0.086684 -0.177589 48.832685 \n", " 74 -0.400136 -0.394411 -0.389988 -0.051260 -0.153074 49.604743 \n", " 75 -0.399992 -0.394645 -0.390311 -0.037359 -0.130483 50.300601 \n", " ... ... ... ... ... ... ... \n", " 7184 -0.886685 -0.877903 -0.863619 -0.169187 -0.166099 39.080460 \n", " 7185 -0.886867 -0.878475 -0.864468 -0.148821 -0.164788 51.269036 \n", " 7186 -0.887035 -0.879023 -0.865294 -0.130973 -0.159914 52.604167 \n", " 7187 -0.887297 -0.879604 -0.866135 -0.118959 -0.153440 51.010101 \n", " 7188 -0.887430 -0.880107 -0.866916 -0.104335 -0.145128 39.375000 \n", " \n", " [7118 rows x 22 columns],\n", " 'TRIP': time day_of_week open high low close volume \\\n", " 71 21 4 -0.498557 -0.511651 -0.459291 -0.473056 -0.689215 \n", " 72 14 5 -0.603880 -0.521736 -0.563684 -0.505153 -0.083631 \n", " 73 15 5 -0.523150 -0.512713 -0.529770 -0.537776 0.739661 \n", " 74 16 5 -0.563782 -0.545092 -0.528710 -0.517255 -0.071858 \n", " 75 17 5 -0.544001 -0.550400 -0.529240 -0.536724 0.014622 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 0.073505 0.056305 0.096589 0.084700 -0.549062 \n", " 7185 17 5 0.068159 0.099300 0.098709 0.132056 -0.430612 \n", " 7186 18 5 0.116276 0.099831 0.137922 0.127321 -0.142381 \n", " 7187 19 5 0.111464 0.097177 0.137392 0.123111 -0.079167 \n", " 7188 20 5 0.107187 0.095054 0.129444 0.124164 0.250406 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -0.473218 ... -0.565994 -0.559761 -0.478325 -0.495289 \n", " 72 0.0 1 -0.475765 ... -0.564563 -0.558601 -0.486237 -0.496982 \n", " 73 0.0 1 -0.481826 ... -0.564497 -0.557425 -0.501229 -0.503450 \n", " 74 0.0 1 -0.497550 ... -0.563913 -0.556294 -0.506062 -0.505755 \n", " 75 0.0 1 -0.508179 ... -0.563847 -0.555567 -0.515089 -0.510711 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 0.085993 ... 0.068268 -0.041809 0.083989 0.081115 \n", " 7185 0.0 0 0.091966 ... 0.072704 -0.033676 0.097875 0.089101 \n", " 7186 0.0 0 0.098291 ... 0.076986 -0.025559 0.106438 0.095127 \n", " 7187 0.0 0 0.103913 ... 0.081378 -0.017390 0.111349 0.099577 \n", " 7188 0.0 0 0.113575 ... 0.085846 -0.009176 0.115158 0.103504 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -0.520903 -0.544294 -0.555415 0.658467 0.580328 62.068966 \n", " 72 -0.519766 -0.542794 -0.554134 0.587514 0.590564 55.142232 \n", " 73 -0.521345 -0.542698 -0.553792 0.462491 0.571885 48.648649 \n", " 74 -0.521146 -0.541761 -0.552891 0.398446 0.543178 49.811321 \n", " 75 -0.522530 -0.541665 -0.552555 0.306216 0.500392 48.798521 \n", " ... ... ... ... ... ... ... \n", " 7184 0.073736 0.026654 -0.034604 0.236274 0.292134 58.422939 \n", " 7185 0.078544 0.031088 -0.029915 0.316846 0.301841 70.473538 \n", " 7186 0.082586 0.035146 -0.025485 0.367104 0.320407 74.852071 \n", " 7187 0.085966 0.038866 -0.021294 0.394048 0.341051 73.121387 \n", " 7188 0.089161 0.042477 -0.017188 0.412510 0.361533 68.791946 \n", " \n", " [7118 rows x 22 columns],\n", " 'TSLA': time day_of_week open high low close volume \\\n", " 71 21 4 -2.237419 -2.250130 -2.171719 -2.185389 -0.698953 \n", " 72 14 5 -2.247719 -2.256538 -2.184757 -2.192239 -0.630075 \n", " 73 15 5 -2.244396 -2.257031 -2.211164 -2.224372 -0.382599 \n", " 74 16 5 -2.277123 -2.276747 -2.224532 -2.234975 -0.189493 \n", " 75 17 5 -2.287921 -2.298929 -2.243512 -2.256342 -0.243140 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -0.648934 -0.676000 -0.619013 -0.627265 -0.508199 \n", " 7185 17 5 -0.648601 -0.673946 -0.624954 -0.648225 -0.450935 \n", " 7186 18 5 -0.670032 -0.696127 -0.631391 -0.654586 -0.585878 \n", " 7187 19 5 -0.681328 -0.710504 -0.641128 -0.658827 -0.567127 \n", " 7188 20 5 -0.681162 -0.710093 -0.648225 -0.675791 -0.371861 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 -2.194224 ... -2.250692 -2.266877 -2.193196 \n", " 72 0.000000 0 -2.196110 ... -2.250668 -2.266508 -2.195608 \n", " 73 0.000000 0 -2.202040 ... -2.251822 -2.266282 -2.206554 \n", " 74 0.000000 0 -2.213956 ... -2.253130 -2.266450 -2.217415 \n", " 75 -0.909679 0 -2.225844 ... -2.254804 -2.267187 -2.231306 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.439064 0 -0.612013 ... -0.649371 -0.699048 -0.619295 \n", " 7185 -0.327437 0 -0.621523 ... -0.646746 -0.698823 -0.628244 \n", " 7186 0.000000 0 -0.632646 ... -0.644458 -0.698685 -0.636463 \n", " 7187 0.000000 0 -0.644480 ... -0.642320 -0.698639 -0.643550 \n", " 7188 0.000000 0 -0.652596 ... -0.641165 -0.699002 -0.653481 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -2.197596 -2.204623 -2.215346 -2.226321 0.037119 0.031981 56.198347 \n", " 72 -2.198616 -2.204883 -2.215352 -2.226262 0.023586 0.030651 52.307692 \n", " 73 -2.204453 -2.207715 -2.216687 -2.227101 -0.030747 0.017928 34.941520 \n", " 74 -2.211032 -2.211176 -2.218405 -2.228213 -0.087504 -0.004430 31.451613 \n", " 75 -2.219907 -2.216083 -2.220937 -2.229890 -0.159975 -0.037867 26.896552 \n", " ... ... ... ... ... ... ... ... \n", " 7184 -0.621206 -0.627139 -0.643744 -0.657045 0.090675 0.098909 54.939863 \n", " 7185 -0.625777 -0.629052 -0.644058 -0.656910 0.042363 0.088222 53.291667 \n", " 7186 -0.630629 -0.631325 -0.644622 -0.656957 -0.004814 0.069550 42.850334 \n", " 7187 -0.635390 -0.633758 -0.645338 -0.657120 -0.047713 0.045406 41.813953 \n", " 7188 -0.642045 -0.637365 -0.646726 -0.657752 -0.103865 0.014042 44.704127 \n", " \n", " [7118 rows x 22 columns],\n", " 'TSM': time day_of_week open high low close volume \\\n", " 71 21 4 -1.312372 -1.329486 -1.279954 -1.297665 -0.719245 \n", " 72 14 5 -1.308629 -1.322676 -1.282445 -1.293341 -0.535764 \n", " 73 15 5 -1.308629 -1.322676 -1.298631 -1.313107 -0.310810 \n", " 74 16 5 -1.335455 -1.344962 -1.323534 -1.339666 -0.373175 \n", " 75 17 5 -1.353547 -1.362915 -1.345324 -1.347078 -0.165499 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.945139 1.952205 1.925332 1.970413 -0.352141 \n", " 7185 17 5 1.980387 1.967682 1.998795 1.986472 -0.329831 \n", " 7186 18 5 2.005654 1.981611 2.009690 1.972266 -0.377597 \n", " 7187 19 5 1.990057 1.948181 1.982297 1.955589 -0.535310 \n", " 7188 20 5 1.974149 1.970467 1.981675 1.982149 0.222242 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 \\\n", " 71 0.000000 0 -1.292475 ... -1.356931 -1.351435 -1.292853 \n", " 72 0.000000 0 -1.296708 ... -1.354931 -1.352453 -1.293842 \n", " 73 0.000000 0 -1.301147 ... -1.354435 -1.353953 -1.300213 \n", " 74 0.000000 0 -1.309922 ... -1.354696 -1.355813 -1.312377 \n", " 75 0.000000 0 -1.318180 ... -1.355284 -1.358059 -1.323189 \n", " ... ... ... ... ... ... ... ... \n", " 7184 0.794664 0 1.950459 ... 1.891898 1.964670 1.955717 \n", " 7185 0.000000 0 1.950097 ... 1.892643 1.961705 1.966615 \n", " 7186 0.000000 0 1.953710 ... 1.892499 1.958476 1.970327 \n", " 7187 0.000000 0 1.954536 ... 1.891460 1.954520 1.968199 \n", " 7188 0.000000 0 1.971725 ... 1.891859 1.951449 1.974291 \n", " \n", " ema_12 ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.287866 -1.300169 -1.318333 -1.321496 0.165364 0.361819 21.875000 \n", " 72 -1.289409 -1.300199 -1.317817 -1.321205 0.133378 0.318103 24.305556 \n", " 73 -1.293772 -1.301822 -1.318143 -1.321477 0.075593 0.270758 23.809524 \n", " 74 -1.301572 -1.305460 -1.319559 -1.322488 -0.012244 0.214076 23.026316 \n", " 75 -1.309318 -1.309406 -1.321224 -1.323679 -0.093040 0.151432 19.607843 \n", " ... ... ... ... ... ... ... ... \n", " 7184 1.940480 1.910593 1.906725 1.889016 0.780997 0.653287 72.454584 \n", " 7185 1.949584 1.918574 1.911822 1.893502 0.809754 0.696091 73.502496 \n", " 7186 1.955089 1.924769 1.916121 1.897465 0.800441 0.728341 68.669725 \n", " 7187 1.957168 1.929122 1.919552 1.900852 0.757589 0.744966 67.009848 \n", " 7188 1.963035 1.935271 1.923946 1.904892 0.755754 0.757873 38.685524 \n", " \n", " [7118 rows x 22 columns],\n", " 'V': time day_of_week open high low close volume \\\n", " 71 21 4 -1.148009 -1.238468 -1.112871 -1.198616 -0.746258 \n", " 72 14 5 -1.244851 -1.305128 -1.209161 -1.264775 -0.511193 \n", " 73 15 5 -1.212893 -1.304133 -1.247678 -1.336859 -0.509271 \n", " 74 16 5 -1.283588 -1.356864 -1.252492 -1.334884 -0.362511 \n", " 75 17 5 -1.282136 -1.357361 -1.272232 -1.344758 -0.511510 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 3.246942 3.276994 3.223821 3.251811 -0.384469 \n", " 7185 17 5 3.223700 3.267294 3.233931 3.264401 -0.541789 \n", " 7186 18 5 3.229026 3.267045 3.215877 3.249343 -0.518950 \n", " 7187 19 5 3.208447 3.270030 3.217321 3.273535 -0.375514 \n", " 7188 20 5 3.239437 3.285949 3.222136 3.246874 0.112933 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.271325 ... -1.500944 -1.453177 -1.253591 -1.305743 \n", " 72 0.0 1 -1.252609 ... -1.496476 -1.453005 -1.258831 -1.301122 \n", " 73 0.0 1 -1.245818 ... -1.494300 -1.453371 -1.283312 -1.308429 \n", " 74 0.0 1 -1.262795 ... -1.492039 -1.454196 -1.300231 -1.314304 \n", " 75 0.0 1 -1.287309 ... -1.490309 -1.455214 -1.315156 -1.320812 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 3.292092 ... 3.106429 3.101228 3.279350 3.228781 \n", " 7185 0.0 0 3.298842 ... 3.115009 3.106891 3.281981 3.240521 \n", " 7186 0.0 0 3.297682 ... 3.123064 3.112082 3.279528 3.248111 \n", " 7187 0.0 0 3.300581 ... 3.131979 3.117329 3.284736 3.258298 \n", " 7188 0.0 0 3.283106 ... 3.138580 3.122523 3.280786 3.262770 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.373289 -1.421569 -1.430641 1.026231 0.814706 63.258786 \n", " 72 -1.365986 -1.416336 -1.427170 0.984295 0.864478 59.370315 \n", " 73 -1.365145 -1.414359 -1.425866 0.844099 0.874023 48.327138 \n", " 74 -1.364210 -1.412380 -1.424540 0.726453 0.856256 50.191083 \n", " 75 -1.364155 -1.410898 -1.423535 0.612145 0.817359 48.040455 \n", " ... ... ... ... ... ... ... \n", " 7184 3.164641 3.140007 3.147619 1.605776 1.260550 80.598078 \n", " 7185 3.178242 3.150238 3.155767 1.581415 1.350092 81.888928 \n", " 7186 3.189527 3.159415 3.163260 1.523596 1.409241 77.315914 \n", " 7187 3.201882 3.169239 3.171243 1.492127 1.449764 78.163110 \n", " 7188 3.211074 3.177536 3.178241 1.414412 1.465402 59.656398 \n", " \n", " [7118 rows x 22 columns],\n", " 'WFC': time day_of_week open high low close volume \\\n", " 71 21 4 -2.294064 -2.309401 -2.274059 -2.288769 -0.867168 \n", " 72 14 5 -2.282490 -2.290190 -2.267597 -2.278476 -0.091687 \n", " 73 15 5 -2.282490 -2.283786 -2.265012 -2.264323 1.120359 \n", " 74 16 5 -2.269630 -2.235116 -2.252088 -2.216717 2.963270 \n", " 75 17 5 -2.222047 -2.196692 -2.218485 -2.196131 0.522766 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.763955 1.732126 1.759606 1.760938 -0.347951 \n", " 7185 17 5 1.752381 1.739171 1.782869 1.773804 -0.042448 \n", " 7186 18 5 1.766527 1.736609 1.786746 1.764154 -0.405559 \n", " 7187 19 5 1.758168 1.728924 1.770591 1.744211 -0.413689 \n", " 7188 20 5 1.737592 1.737249 1.777053 1.759008 0.485543 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -2.302459 ... -2.330763 -2.301787 -2.295265 -2.295527 \n", " 72 0.0 1 -2.299013 ... -2.331473 -2.303711 -2.292174 -2.293915 \n", " 73 0.0 1 -2.293199 ... -2.331637 -2.305433 -2.285909 -2.290365 \n", " 74 0.0 1 -2.280709 ... -2.331064 -2.306349 -2.267789 -2.280006 \n", " 75 0.0 1 -2.265204 ... -2.329536 -2.306789 -2.248945 -2.268060 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.731960 ... 1.524036 1.380555 1.741614 1.711937 \n", " 7185 0.0 0 1.745850 ... 1.540079 1.391503 1.752830 1.723056 \n", " 7186 0.0 0 1.757263 ... 1.555862 1.402295 1.758075 1.730974 \n", " 7187 0.0 0 1.765339 ... 1.570650 1.413343 1.756105 1.734593 \n", " 7188 0.0 0 1.769538 ... 1.585274 1.424016 1.758939 1.739941 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -2.293785 -2.275774 -2.254740 -0.145495 -0.184881 40.909091 \n", " 72 -2.293085 -2.276105 -2.255483 -0.121642 -0.173878 50.000000 \n", " 73 -2.291302 -2.275839 -2.255813 -0.076267 -0.155309 60.655738 \n", " 74 -2.285832 -2.273627 -2.254818 0.047540 -0.113806 77.083333 \n", " 75 -2.279144 -2.270658 -2.253281 0.181239 -0.051826 80.180180 \n", " ... ... ... ... ... ... ... \n", " 7184 1.650435 1.539317 1.462696 1.721876 1.855533 77.362205 \n", " 7185 1.661586 1.549943 1.472168 1.721625 1.855195 78.666667 \n", " 7186 1.671068 1.559738 1.481113 1.682930 1.846597 74.497992 \n", " 7187 1.678188 1.568314 1.489262 1.595453 1.820890 70.132325 \n", " 7188 1.685928 1.577148 1.497596 1.535230 1.787362 58.746736 \n", " \n", " [7118 rows x 22 columns],\n", " 'WMT': time day_of_week open high low close volume \\\n", " 71 21 4 -1.562661 -1.584669 -1.502580 -1.525489 -0.705095 \n", " 72 14 5 -1.534954 -1.542941 -1.491797 -1.510648 -0.311952 \n", " 73 15 5 -1.546708 -1.556294 -1.502580 -1.501579 0.199323 \n", " 74 16 5 -1.538312 -1.536265 -1.485990 -1.490860 -0.118370 \n", " 75 17 5 -1.526558 -1.535430 -1.480184 -1.503228 -0.133434 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 -6.900035 -6.889917 -6.791373 -6.780027 0.629945 \n", " 7185 17 5 -6.914309 -6.904105 -6.807963 -6.793219 0.420134 \n", " 7186 18 5 -6.928582 -6.908278 -6.805474 -6.796517 0.546937 \n", " 7187 19 5 -6.929422 -6.909947 -6.813769 -6.786623 0.415009 \n", " 7188 20 5 -6.920186 -6.899098 -6.806304 -6.797342 5.117352 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.556953 ... -1.628326 -1.600337 -1.555819 -1.575534 \n", " 72 0.0 1 -1.552757 ... -1.627769 -1.603088 -1.552624 -1.575469 \n", " 73 0.0 1 -1.547442 ... -1.627639 -1.605414 -1.547695 -1.573963 \n", " 74 0.0 1 -1.543107 ... -1.628048 -1.607490 -1.541047 -1.570974 \n", " 75 0.0 1 -1.539330 ... -1.628585 -1.609454 -1.539907 -1.570424 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 -6.914770 ... 0.429992 1.136720 -6.695683 -5.498885 \n", " 7185 0.0 0 -6.911693 ... 0.227545 0.998305 -6.765301 -5.740606 \n", " 7186 0.0 0 -6.910434 ... 0.024652 0.860078 -6.815991 -5.945667 \n", " 7187 0.0 0 -6.907497 ... -0.177889 0.721651 -6.849311 -6.117596 \n", " 7188 0.0 0 -6.911413 ... -0.382191 0.583180 -6.876239 -6.264791 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.594463 -1.598958 -1.592544 -0.123165 -0.119809 56.372549 \n", " 72 -1.595592 -1.600446 -1.594155 -0.113313 -0.126317 53.157895 \n", " 73 -1.595861 -1.601473 -1.595449 -0.098152 -0.127797 47.953216 \n", " 74 -1.595197 -1.601985 -1.596386 -0.077898 -0.124002 53.370787 \n", " 75 -1.595637 -1.603022 -1.597668 -0.069364 -0.118867 44.632768 \n", " ... ... ... ... ... ... ... \n", " 7184 -3.206922 -0.951401 0.051981 -21.335779 -22.821674 1.075452 \n", " 7185 -3.527746 -1.212513 -0.153230 -20.767594 -23.365735 1.074810 \n", " 7186 -3.823183 -1.463113 -0.352917 -20.087908 -23.633881 0.718870 \n", " 7187 -4.094145 -1.703048 -0.546837 -19.319765 -23.659547 0.820723 \n", " 7188 -4.344341 -1.933663 -0.735765 -18.504890 -23.479740 62.337662 \n", " \n", " [7118 rows x 22 columns],\n", " 'XOM': time day_of_week open high low close volume \\\n", " 71 21 4 -1.448963 -1.457792 -1.448422 -1.456432 -0.932934 \n", " 72 14 5 -1.461815 -1.466515 -1.466940 -1.474019 -0.735946 \n", " 73 15 5 -1.464018 -1.467968 -1.466570 -1.473652 -0.065087 \n", " 74 16 5 -1.466955 -1.468332 -1.466570 -1.468157 -0.295284 \n", " 75 17 5 -1.460713 -1.465788 -1.464348 -1.467057 -0.424552 \n", " ... ... ... ... ... ... ... ... \n", " 7184 16 5 1.033331 1.001885 1.042415 1.007775 -0.317367 \n", " 7185 17 5 1.020480 0.992799 1.035008 1.012172 -0.533682 \n", " 7186 18 5 1.025436 1.002794 1.044082 1.020049 -0.387877 \n", " 7187 19 5 1.033147 1.002612 1.049267 1.022431 -0.447295 \n", " 7188 20 5 1.035350 1.006246 1.051118 1.017851 0.083102 \n", " \n", " score position sma_6 ... sma_48 sma_72 ema_6 ema_12 \\\n", " 71 0.0 1 -1.461135 ... -1.491715 -1.485124 -1.458115 -1.457729 \n", " 72 0.0 1 -1.463337 ... -1.491085 -1.485422 -1.463063 -1.460350 \n", " 73 0.0 1 -1.465173 ... -1.490472 -1.485606 -1.466493 -1.462510 \n", " 74 0.0 1 -1.467069 ... -1.489735 -1.485734 -1.467369 -1.463491 \n", " 75 0.0 1 -1.468843 ... -1.488822 -1.485903 -1.467681 -1.464152 \n", " ... ... ... ... ... ... ... ... ... \n", " 7184 0.0 0 1.033544 ... 1.013412 0.989177 1.029109 1.038453 \n", " 7185 0.0 0 1.026172 ... 1.015557 0.990563 1.024962 1.034982 \n", " 7186 0.0 0 1.020666 ... 1.018004 0.991936 1.024255 1.033258 \n", " 7187 0.0 0 1.015557 ... 1.020463 0.993486 1.024431 1.032167 \n", " 7188 0.0 0 1.018586 ... 1.022758 0.995023 1.023246 1.030537 \n", " \n", " ema_24 ema_48 ema_72 macd macd_signal rsi \n", " 71 -1.460694 -1.462524 -1.459040 0.146581 0.253411 33.695652 \n", " 72 -1.461671 -1.462783 -1.459197 0.065846 0.217486 23.308271 \n", " 73 -1.462540 -1.463017 -1.459340 0.001920 0.174451 24.806202 \n", " 74 -1.462898 -1.463017 -1.459329 -0.029481 0.133001 36.153846 \n", " 75 -1.463141 -1.462972 -1.459287 -0.051007 0.095027 30.252101 \n", " ... ... ... ... ... ... ... \n", " 7184 1.037028 1.023156 1.011415 0.118683 0.510582 37.444444 \n", " 7185 1.035514 1.023120 1.011823 0.019952 0.412961 38.131868 \n", " 7186 1.034753 1.023408 1.012436 -0.030275 0.323631 39.331897 \n", " 7187 1.034244 1.023781 1.013097 -0.061886 0.245098 40.170032 \n", " 7188 1.033408 1.023952 1.013615 -0.103831 0.172892 43.648961 \n", " \n", " [7118 rows x 22 columns]}" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = bars.copy()\n", "data = {k: preprocess(v) for k, v in data.items()}\n", "data\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Windowing & Train/Test Split" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "from numpy.lib.stride_tricks import sliding_window_view\n" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "def window(data, window_size, features, target):\n", " X = []\n", " y = []\n", "\n", " for _, df in data.items():\n", " feature_data = df[features].values\n", " target_data = df[target].values\n", "\n", " X.append(sliding_window_view(feature_data, window_shape=(window_size, len(features))))\n", " y.append(target_data[window_size - 1:])\n", "\n", " X = np.concatenate(X)\n", " y = np.concatenate(y)\n", "\n", " return X, y\n", "\n", "window_size = 72\n", "features = ['time', 'day_of_week', 'open', 'high', 'low', 'close', 'volume', 'score', 'sma_6', 'sma_12', 'sma_24', 'sma_72', 'ema_6', 'ema_12', 'ema_24', 'ema_72', 'macd', 'macd_signal', 'rsi']\n", "target = 'position'\n", "\n", "X, y = window(data, window_size, features, target)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)\n", "\n", "X_train = X_train.reshape(X_train.shape[0], window_size, len(features))\n", "X_test = X_test.reshape(X_test.shape[0], window_size, len(features))\n" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "if np.isnan(X_train).any() or np.isnan(X_test).any() or np.isnan(y_train).any() or np.isnan(y_test).any():\n", " print('Warning: NaN values are present in the data')\n", "\n", "if np.isinf(X_train).any() or np.isinf(X_test).any() or np.isinf(y_train).any() or np.isinf(y_test).any():\n", " print('Warning: Inf values are present in the data')\n" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "env: CUDA_HOME=/opt/cuda\n", "env: XLA_FLAGS=--xla_gpu_cuda_data_dir=/opt/cuda\n" ] } ], "source": [ "%env CUDA_HOME=/opt/cuda\n", "%env XLA_FLAGS=--xla_gpu_cuda_data_dir=/opt/cuda\n", "\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import LSTM, Dense, Dropout\n", "from tensorflow.keras.optimizers import Adam\n", "from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint\n", "from tensorflow.keras.saving import load_model\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LSTM 0\n", "\n", "- 128/64/32 units\n", "- .25 dropout\n", "- 100 epochs\n", "- 64 batch size\n", "\n", "### Results\n", "\n", "- Good fit\n", "- Good generalization\n", "- Validation loss: 0.2498517781496048 ~= 0.7789162269" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_1\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " lstm_3 (LSTM) (None, 72, 128) 75776 \n", " \n", " dropout_3 (Dropout) (None, 72, 128) 0 \n", " \n", " lstm_4 (LSTM) (None, 72, 64) 49408 \n", " \n", " dropout_4 (Dropout) (None, 72, 64) 0 \n", " \n", " lstm_5 (LSTM) (None, 32) 12416 \n", " \n", " dropout_5 (Dropout) (None, 32) 0 \n", " \n", " dense_1 (Dense) (None, 1) 33 \n", " \n", "=================================================================\n", "Total params: 137633 (537.63 KB)\n", "Trainable params: 137633 (537.63 KB)\n", "Non-trainable params: 0 (0.00 Byte)\n", "_________________________________________________________________\n" ] } ], "source": [ "model = Sequential()\n", "model.add(LSTM(units=128, return_sequences=True, input_shape=(window_size, len(features))))\n", "model.add(Dropout(0.25))\n", "model.add(LSTM(units=64, return_sequences=True))\n", "model.add(Dropout(0.25))\n", "model.add(LSTM(units=32, return_sequences=False))\n", "model.add(Dropout(0.25))\n", "model.add(Dense(units=1, activation='sigmoid'))\n", "\n", "model.compile(optimizer=Adam(learning_rate=0.001), loss='binary_crossentropy')\n", "model.summary()\n" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "early_stopping = EarlyStopping(\n", " monitor='val_loss',\n", " patience=10,\n", " verbose=1,\n", " mode='min',\n", " restore_best_weights=True\n", ")\n", "\n", "model_checkpoint = ModelCheckpoint(\n", " './models/model_0.keras',\n", " monitor='val_loss',\n", " save_best_only=True,\n", " verbose=1,\n", " mode='min'\n", ")\n" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2024-02-26 18:41:22.897242: W external/local_tsl/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 1395173952 exceeds 10% of free system memory.\n", "2024-02-26 18:41:27.673160: W external/local_tsl/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 1395173952 exceeds 10% of free system memory.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.5475\n", "Epoch 1: val_loss improved from inf to 0.53959, saving model to model.keras\n", "3984/3984 [==============================] - 40s 9ms/step - loss: 0.5475 - val_loss: 0.5396\n", "Epoch 2/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.5382\n", "Epoch 2: val_loss improved from 0.53959 to 0.53258, saving model to model.keras\n", "3984/3984 [==============================] - 34s 9ms/step - loss: 0.5382 - val_loss: 0.5326\n", "Epoch 3/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.5334\n", "Epoch 3: val_loss improved from 0.53258 to 0.52713, saving model to model.keras\n", "3984/3984 [==============================] - 45s 11ms/step - loss: 0.5334 - val_loss: 0.5271\n", "Epoch 4/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.5280\n", "Epoch 4: val_loss improved from 0.52713 to 0.52513, saving model to model.keras\n", "3984/3984 [==============================] - 38s 9ms/step - loss: 0.5280 - val_loss: 0.5251\n", "Epoch 5/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.5220\n", "Epoch 5: val_loss improved from 0.52513 to 0.51550, saving model to model.keras\n", "3984/3984 [==============================] - 42s 11ms/step - loss: 0.5220 - val_loss: 0.5155\n", "Epoch 6/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.5144\n", "Epoch 6: val_loss improved from 0.51550 to 0.50618, saving model to model.keras\n", "3984/3984 [==============================] - 54s 13ms/step - loss: 0.5144 - val_loss: 0.5062\n", "Epoch 7/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.5040\n", "Epoch 7: val_loss improved from 0.50618 to 0.49859, saving model to model.keras\n", "3984/3984 [==============================] - 55s 14ms/step - loss: 0.5040 - val_loss: 0.4986\n", "Epoch 8/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.4930\n", "Epoch 8: val_loss improved from 0.49859 to 0.48542, saving model to model.keras\n", "3984/3984 [==============================] - 53s 13ms/step - loss: 0.4930 - val_loss: 0.4854\n", "Epoch 9/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.4802\n", "Epoch 9: val_loss improved from 0.48542 to 0.47587, saving model to model.keras\n", "3984/3984 [==============================] - 50s 12ms/step - loss: 0.4802 - val_loss: 0.4759\n", "Epoch 10/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.4658\n", "Epoch 10: val_loss improved from 0.47587 to 0.45642, saving model to model.keras\n", "3984/3984 [==============================] - 47s 12ms/step - loss: 0.4658 - val_loss: 0.4564\n", "Epoch 11/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.4523\n", "Epoch 11: val_loss improved from 0.45642 to 0.44432, saving model to model.keras\n", "3984/3984 [==============================] - 51s 13ms/step - loss: 0.4523 - val_loss: 0.4443\n", "Epoch 12/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.4390\n", "Epoch 12: val_loss improved from 0.44432 to 0.43281, saving model to model.keras\n", "3984/3984 [==============================] - 50s 13ms/step - loss: 0.4390 - val_loss: 0.4328\n", "Epoch 13/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.4255\n", "Epoch 13: val_loss improved from 0.43281 to 0.41694, saving model to model.keras\n", "3984/3984 [==============================] - 47s 12ms/step - loss: 0.4255 - val_loss: 0.4169\n", "Epoch 14/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.4143\n", "Epoch 14: val_loss improved from 0.41694 to 0.40155, saving model to model.keras\n", "3984/3984 [==============================] - 53s 13ms/step - loss: 0.4143 - val_loss: 0.4016\n", "Epoch 15/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.4021\n", "Epoch 15: val_loss improved from 0.40155 to 0.38861, saving model to model.keras\n", "3984/3984 [==============================] - 53s 13ms/step - loss: 0.4021 - val_loss: 0.3886\n", "Epoch 16/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.3930\n", "Epoch 16: val_loss did not improve from 0.38861\n", "3984/3984 [==============================] - 55s 14ms/step - loss: 0.3930 - val_loss: 0.3971\n", "Epoch 17/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.3836\n", "Epoch 17: val_loss improved from 0.38861 to 0.37722, saving model to model.keras\n", "3984/3984 [==============================] - 48s 12ms/step - loss: 0.3835 - val_loss: 0.3772\n", "Epoch 18/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.3750\n", "Epoch 18: val_loss improved from 0.37722 to 0.36873, saving model to model.keras\n", "3984/3984 [==============================] - 47s 12ms/step - loss: 0.3749 - val_loss: 0.3687\n", "Epoch 19/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.3675\n", "Epoch 19: val_loss improved from 0.36873 to 0.35542, saving model to model.keras\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.3675 - val_loss: 0.3554\n", "Epoch 20/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.3610\n", "Epoch 20: val_loss did not improve from 0.35542\n", "3984/3984 [==============================] - 48s 12ms/step - loss: 0.3610 - val_loss: 0.3561\n", "Epoch 21/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.3538\n", "Epoch 21: val_loss improved from 0.35542 to 0.34104, saving model to model.keras\n", "3984/3984 [==============================] - 52s 13ms/step - loss: 0.3537 - val_loss: 0.3410\n", "Epoch 22/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.3475\n", "Epoch 22: val_loss did not improve from 0.34104\n", "3984/3984 [==============================] - 51s 13ms/step - loss: 0.3475 - val_loss: 0.3452\n", "Epoch 23/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.3427\n", "Epoch 23: val_loss improved from 0.34104 to 0.33752, saving model to model.keras\n", "3984/3984 [==============================] - 50s 13ms/step - loss: 0.3427 - val_loss: 0.3375\n", "Epoch 24/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.3375\n", "Epoch 24: val_loss improved from 0.33752 to 0.33042, saving model to model.keras\n", "3984/3984 [==============================] - 44s 11ms/step - loss: 0.3375 - val_loss: 0.3304\n", "Epoch 25/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.3330\n", "Epoch 25: val_loss improved from 0.33042 to 0.32815, saving model to model.keras\n", "3984/3984 [==============================] - 45s 11ms/step - loss: 0.3330 - val_loss: 0.3281\n", "Epoch 26/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.3289\n", "Epoch 26: val_loss improved from 0.32815 to 0.32381, saving model to model.keras\n", "3984/3984 [==============================] - 57s 14ms/step - loss: 0.3289 - val_loss: 0.3238\n", "Epoch 27/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.3265\n", "Epoch 27: val_loss did not improve from 0.32381\n", "3984/3984 [==============================] - 54s 13ms/step - loss: 0.3265 - val_loss: 0.3247\n", "Epoch 28/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.3213\n", "Epoch 28: val_loss improved from 0.32381 to 0.32277, saving model to model.keras\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.3213 - val_loss: 0.3228\n", "Epoch 29/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.3195\n", "Epoch 29: val_loss improved from 0.32277 to 0.31994, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3196 - val_loss: 0.3199\n", "Epoch 30/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.3149\n", "Epoch 30: val_loss improved from 0.31994 to 0.30953, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3149 - val_loss: 0.3095\n", "Epoch 31/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.3127\n", "Epoch 31: val_loss did not improve from 0.30953\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3128 - val_loss: 0.3157\n", "Epoch 32/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.3097\n", "Epoch 32: val_loss improved from 0.30953 to 0.30347, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3097 - val_loss: 0.3035\n", "Epoch 33/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.3069\n", "Epoch 33: val_loss did not improve from 0.30347\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3069 - val_loss: 0.3129\n", "Epoch 34/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.3038\n", "Epoch 34: val_loss improved from 0.30347 to 0.29713, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3037 - val_loss: 0.2971\n", "Epoch 35/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.3024\n", "Epoch 35: val_loss did not improve from 0.29713\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3024 - val_loss: 0.2975\n", "Epoch 36/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.3015\n", "Epoch 36: val_loss improved from 0.29713 to 0.29315, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.3015 - val_loss: 0.2932\n", "Epoch 37/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2989\n", "Epoch 37: val_loss did not improve from 0.29315\n", "3984/3984 [==============================] - 44s 11ms/step - loss: 0.2989 - val_loss: 0.2940\n", "Epoch 38/100\n", "3978/3984 [============================>.] - ETA: 0s - loss: 0.2970\n", "Epoch 38: val_loss improved from 0.29315 to 0.28927, saving model to model.keras\n", "3984/3984 [==============================] - 35s 9ms/step - loss: 0.2970 - val_loss: 0.2893\n", "Epoch 39/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2930\n", "Epoch 39: val_loss improved from 0.28927 to 0.28848, saving model to model.keras\n", "3984/3984 [==============================] - 33s 8ms/step - loss: 0.2929 - val_loss: 0.2885\n", "Epoch 40/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2925\n", "Epoch 40: val_loss improved from 0.28848 to 0.28813, saving model to model.keras\n", "3984/3984 [==============================] - 36s 9ms/step - loss: 0.2924 - val_loss: 0.2881\n", "Epoch 41/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2916\n", "Epoch 41: val_loss improved from 0.28813 to 0.28789, saving model to model.keras\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.2917 - val_loss: 0.2879\n", "Epoch 42/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2889\n", "Epoch 42: val_loss did not improve from 0.28789\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2889 - val_loss: 0.2942\n", "Epoch 43/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2887\n", "Epoch 43: val_loss did not improve from 0.28789\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2887 - val_loss: 0.2889\n", "Epoch 44/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2876\n", "Epoch 44: val_loss improved from 0.28789 to 0.28438, saving model to model.keras\n", "3984/3984 [==============================] - 42s 10ms/step - loss: 0.2876 - val_loss: 0.2844\n", "Epoch 45/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2843\n", "Epoch 45: val_loss improved from 0.28438 to 0.28017, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2843 - val_loss: 0.2802\n", "Epoch 46/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2835\n", "Epoch 46: val_loss did not improve from 0.28017\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.2835 - val_loss: 0.2802\n", "Epoch 47/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2830\n", "Epoch 47: val_loss did not improve from 0.28017\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2830 - val_loss: 0.2817\n", "Epoch 48/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2818\n", "Epoch 48: val_loss did not improve from 0.28017\n", "3984/3984 [==============================] - 37s 9ms/step - loss: 0.2819 - val_loss: 0.2809\n", "Epoch 49/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2804\n", "Epoch 49: val_loss improved from 0.28017 to 0.27662, saving model to model.keras\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2804 - val_loss: 0.2766\n", "Epoch 50/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2789\n", "Epoch 50: val_loss improved from 0.27662 to 0.27521, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2789 - val_loss: 0.2752\n", "Epoch 51/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2771\n", "Epoch 51: val_loss improved from 0.27521 to 0.27142, saving model to model.keras\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2772 - val_loss: 0.2714\n", "Epoch 52/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2754\n", "Epoch 52: val_loss did not improve from 0.27142\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2754 - val_loss: 0.2866\n", "Epoch 53/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2741\n", "Epoch 53: val_loss did not improve from 0.27142\n", "3984/3984 [==============================] - 35s 9ms/step - loss: 0.2741 - val_loss: 0.2792\n", "Epoch 54/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2744\n", "Epoch 54: val_loss did not improve from 0.27142\n", "3984/3984 [==============================] - 38s 9ms/step - loss: 0.2744 - val_loss: 0.2750\n", "Epoch 55/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2718\n", "Epoch 55: val_loss did not improve from 0.27142\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2719 - val_loss: 0.2788\n", "Epoch 56/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.2731\n", "Epoch 56: val_loss did not improve from 0.27142\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2731 - val_loss: 0.2729\n", "Epoch 57/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2718\n", "Epoch 57: val_loss improved from 0.27142 to 0.27008, saving model to model.keras\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2718 - val_loss: 0.2701\n", "Epoch 58/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.2709\n", "Epoch 58: val_loss improved from 0.27008 to 0.26636, saving model to model.keras\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2710 - val_loss: 0.2664\n", "Epoch 59/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2700\n", "Epoch 59: val_loss did not improve from 0.26636\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2700 - val_loss: 0.2680\n", "Epoch 60/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2702\n", "Epoch 60: val_loss did not improve from 0.26636\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2702 - val_loss: 0.2736\n", "Epoch 61/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2681\n", "Epoch 61: val_loss did not improve from 0.26636\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2681 - val_loss: 0.2700\n", "Epoch 62/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2685\n", "Epoch 62: val_loss did not improve from 0.26636\n", "3984/3984 [==============================] - 38s 9ms/step - loss: 0.2685 - val_loss: 0.2730\n", "Epoch 63/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2667\n", "Epoch 63: val_loss improved from 0.26636 to 0.26401, saving model to model.keras\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2667 - val_loss: 0.2640\n", "Epoch 64/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.2653\n", "Epoch 64: val_loss did not improve from 0.26401\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2653 - val_loss: 0.2729\n", "Epoch 65/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2664\n", "Epoch 65: val_loss did not improve from 0.26401\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2664 - val_loss: 0.2653\n", "Epoch 66/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2637\n", "Epoch 66: val_loss improved from 0.26401 to 0.26187, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2637 - val_loss: 0.2619\n", "Epoch 67/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2637\n", "Epoch 67: val_loss did not improve from 0.26187\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2637 - val_loss: 0.2671\n", "Epoch 68/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2644\n", "Epoch 68: val_loss improved from 0.26187 to 0.26154, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2644 - val_loss: 0.2615\n", "Epoch 69/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2635\n", "Epoch 69: val_loss did not improve from 0.26154\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2635 - val_loss: 0.2744\n", "Epoch 70/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2616\n", "Epoch 70: val_loss did not improve from 0.26154\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2616 - val_loss: 0.2621\n", "Epoch 71/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2632\n", "Epoch 71: val_loss improved from 0.26154 to 0.26123, saving model to model.keras\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2631 - val_loss: 0.2612\n", "Epoch 72/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.2622\n", "Epoch 72: val_loss did not improve from 0.26123\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2622 - val_loss: 0.2645\n", "Epoch 73/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.2625\n", "Epoch 73: val_loss did not improve from 0.26123\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2625 - val_loss: 0.2627\n", "Epoch 74/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2601\n", "Epoch 74: val_loss improved from 0.26123 to 0.25950, saving model to model.keras\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2601 - val_loss: 0.2595\n", "Epoch 75/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2611\n", "Epoch 75: val_loss did not improve from 0.25950\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2612 - val_loss: 0.2611\n", "Epoch 76/100\n", "3979/3984 [============================>.] - ETA: 0s - loss: 0.2622\n", "Epoch 76: val_loss improved from 0.25950 to 0.25818, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2622 - val_loss: 0.2582\n", "Epoch 77/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2594\n", "Epoch 77: val_loss did not improve from 0.25818\n", "3984/3984 [==============================] - 44s 11ms/step - loss: 0.2594 - val_loss: 0.2617\n", "Epoch 78/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2609\n", "Epoch 78: val_loss did not improve from 0.25818\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2609 - val_loss: 0.2583\n", "Epoch 79/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2591\n", "Epoch 79: val_loss improved from 0.25818 to 0.25532, saving model to model.keras\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2591 - val_loss: 0.2553\n", "Epoch 80/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2579\n", "Epoch 80: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2579 - val_loss: 0.2614\n", "Epoch 81/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2563\n", "Epoch 81: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2563 - val_loss: 0.2571\n", "Epoch 82/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2558\n", "Epoch 82: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.2558 - val_loss: 0.2619\n", "Epoch 83/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2588\n", "Epoch 83: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2588 - val_loss: 0.2603\n", "Epoch 84/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2555\n", "Epoch 84: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 42s 11ms/step - loss: 0.2555 - val_loss: 0.2607\n", "Epoch 85/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2557\n", "Epoch 85: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2557 - val_loss: 0.2572\n", "Epoch 86/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2578\n", "Epoch 86: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2578 - val_loss: 0.2574\n", "Epoch 87/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2557\n", "Epoch 87: val_loss did not improve from 0.25532\n", "3984/3984 [==============================] - 38s 9ms/step - loss: 0.2557 - val_loss: 0.2566\n", "Epoch 88/100\n", "3980/3984 [============================>.] - ETA: 0s - loss: 0.2535\n", "Epoch 88: val_loss improved from 0.25532 to 0.25118, saving model to model.keras\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2536 - val_loss: 0.2512\n", "Epoch 89/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2570\n", "Epoch 89: val_loss did not improve from 0.25118\n", "3984/3984 [==============================] - 38s 10ms/step - loss: 0.2570 - val_loss: 0.2597\n", "Epoch 90/100\n", "3978/3984 [============================>.] - ETA: 0s - loss: 0.2570\n", "Epoch 90: val_loss did not improve from 0.25118\n", "3984/3984 [==============================] - 39s 10ms/step - loss: 0.2570 - val_loss: 0.2536\n", "Epoch 91/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2535\n", "Epoch 91: val_loss did not improve from 0.25118\n", "3984/3984 [==============================] - 40s 10ms/step - loss: 0.2535 - val_loss: 0.2566\n", "Epoch 92/100\n", "3978/3984 [============================>.] - ETA: 0s - loss: 0.2549\n", "Epoch 92: val_loss did not improve from 0.25118\n", "3984/3984 [==============================] - 42s 10ms/step - loss: 0.2549 - val_loss: 0.2574\n", "Epoch 93/100\n", "3981/3984 [============================>.] - ETA: 0s - loss: 0.2529\n", "Epoch 93: val_loss did not improve from 0.25118\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.2529 - val_loss: 0.2636\n", "Epoch 94/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2538\n", "Epoch 94: val_loss did not improve from 0.25118\n", "3984/3984 [==============================] - 43s 11ms/step - loss: 0.2538 - val_loss: 0.2604\n", "Epoch 95/100\n", "3982/3984 [============================>.] - ETA: 0s - loss: 0.2533\n", "Epoch 95: val_loss did not improve from 0.25118\n", "3984/3984 [==============================] - 47s 12ms/step - loss: 0.2533 - val_loss: 0.2527\n", "Epoch 96/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2539\n", "Epoch 96: val_loss improved from 0.25118 to 0.24985, saving model to model.keras\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.2539 - val_loss: 0.2499\n", "Epoch 97/100\n", "3978/3984 [============================>.] - ETA: 0s - loss: 0.2558\n", "Epoch 97: val_loss did not improve from 0.24985\n", "3984/3984 [==============================] - 44s 11ms/step - loss: 0.2559 - val_loss: 0.2613\n", "Epoch 98/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2533\n", "Epoch 98: val_loss did not improve from 0.24985\n", "3984/3984 [==============================] - 46s 12ms/step - loss: 0.2533 - val_loss: 0.2579\n", "Epoch 99/100\n", "3984/3984 [==============================] - ETA: 0s - loss: 0.2529\n", "Epoch 99: val_loss did not improve from 0.24985\n", "3984/3984 [==============================] - 48s 12ms/step - loss: 0.2529 - val_loss: 0.2610\n", "Epoch 100/100\n", "3983/3984 [============================>.] - ETA: 0s - loss: 0.2512\n", "Epoch 100: val_loss did not improve from 0.24985\n", "3984/3984 [==============================] - 41s 10ms/step - loss: 0.2512 - val_loss: 0.2633\n" ] }, { "data": { "image/png": "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wmUDzb6gmtCoT/XGBRdU0g2V7PH+s1566SWmTJnC/Pnz8fE5Xkr/tttuK/m7WbNmNG/enHr16jF//ny6det20n2efPJJRo8eXbKdlZWl5FtERERERORM+IdD3/fgitFmDvwplkaTM1epHu+IiAgcDgcpKSml9qekpBATE1Puta+++iovvfQSv/zyC82bNy/33Lp16xIREcHOnTvLPO7t7U1QUFCpHxEREREREfkTIupDUI3qjuKCVKnE28vLi9atWzNnzpySfW63mzlz5tChQ4dTXvfyyy/z3HPP8fPPP9OmTZvTvs6BAwc4cuQINWroH11ERERERETOb5VeTmz06NFMmDCBiRMnsmXLFh544AFyc3MZOnQoAIMGDSpVfG3cuHE8/fTTfPLJJ9SuXZvk5GSSk5PJyckBICcnh0cffZSlS5eyd+9e5syZw4033kj9+vXp2bPnX/Q2RURERERERKpHped433rrrRw+fJhnnnmG5ORkLrvsMn7++eeSgmuJiYnY7cfz+ffffx+n08ktt9xS6j5jxozh2WefxeFwsH79eiZOnEhGRgaxsbH06NGD5557Dm9vzS0QERERERGR81ul1/E+F2kdbxERERERETmbKpOHVnqouYiIiIiIiIhUnBJvERERERERkSqkxFtERERERESkCinxFhEREREREalCSrxFREREREREqpASbxEREREREZEqpMRbREREREREpAop8RYRERERERGpQkq8RURERERERKqQEm8RERERERGRKqTEW0RERERERKQKKfEWERERERERqUJKvEVERERERESqkBJvERERERERkSqkxFtERERERESkCinxFhEREREREalCSrxFREREREREqpASbxEREREREZEqpMRbREREREREpAop8RYRERERERGpQh7VHcBfwbIsALKysqo5EhEREREREbkY/J5//p6PlueCSLyzs7MBiIuLq+ZIRERERERE5GKSnZ1NcHBwuefYrIqk5+c4t9tNUlISgYGB2Gy26g6nXFlZWcTFxbF//36CgoKqOxyRMqmdyvlCbVXOF2qrcr5QW5XzxbnQVi3LIjs7m9jYWOz28mdxXxA93na7nZo1a1Z3GJUSFBSk/5nJOU/tVM4XaqtyvlBblfOF2qqcL6q7rZ6up/t3Kq4mIiIiIiIiUoWUeIuIiIiIiIhUISXeZ5m3tzdj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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "2656/2656 [==============================] - 11s 4ms/step - loss: 0.2499\n", "0.2498517781496048\n" ] } ], "source": [ "history = model.fit(X_train, y_train, epochs=100, batch_size=64, validation_data=(X_test, y_test), callbacks=[early_stopping, model_checkpoint], verbose=1)\n", "\n", "plt.figure(figsize=(12, 8))\n", "plt.plot(history.history['loss'], label='loss')\n", "plt.plot(history.history['val_loss'], label='val_loss')\n", "plt.legend()\n", "plt.show()\n", "\n", "model = load_model('./models/model_0.keras')\n", "evaluation = model.evaluate(X_test, y_test)\n", "print(evaluation)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LSTM 1\n", "\n", "- 256/64/32 units\n", "- .15 dropout\n", "- 100 epochs\n", "- 64 batch size\n", "\n", "### Results\n", "\n", "- Slightly overfitted\n", "- Good generalization\n", "- Validation loss: 0.22676503658294678 ~= 0.7971080515" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_3\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " lstm_9 (LSTM) (None, 72, 256) 282624 \n", " \n", " dropout_9 (Dropout) (None, 72, 256) 0 \n", " \n", " lstm_10 (LSTM) (None, 72, 64) 82176 \n", " \n", " dropout_10 (Dropout) (None, 72, 64) 0 \n", " \n", " lstm_11 (LSTM) (None, 32) 12416 \n", " \n", " dropout_11 (Dropout) (None, 32) 0 \n", " \n", " dense_3 (Dense) (None, 1) 33 \n", " \n", "=================================================================\n", "Total params: 377249 (1.44 MB)\n", "Trainable params: 377249 (1.44 MB)\n", "Non-trainable params: 0 (0.00 Byte)\n", "_________________________________________________________________\n" ] } ], "source": [ "model = Sequential()\n", "model.add(LSTM(units=256, return_sequences=True, input_shape=(window_size, len(features))))\n", "model.add(Dropout(0.15))\n", "model.add(LSTM(units=64, return_sequences=True))\n", "model.add(Dropout(0.15))\n", "model.add(LSTM(units=32, return_sequences=False))\n", "model.add(Dropout(0.15))\n", "model.add(Dense(units=1, activation='sigmoid'))\n", "\n", "model.compile(optimizer=Adam(learning_rate=0.001), loss='binary_crossentropy')\n", "model.summary()\n" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "early_stopping = EarlyStopping(\n", " monitor='val_loss',\n", " patience=10,\n", " verbose=1,\n", " mode='min',\n", " restore_best_weights=True\n", ")\n", "\n", "model_checkpoint = ModelCheckpoint(\n", " './models/model_1.keras',\n", " monitor='val_loss',\n", " save_best_only=True,\n", " verbose=1,\n", " mode='min'\n", ")\n" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAKTCAYAAADv3NAtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACik0lEQVR4nOzdd3iV9d3H8ffJhkDCCBD2EGQPBUFwIijgAkXFieJqnbVorXSoVVu0w/q4iuJeiFvrABXFBQKCDGXIHkLYJBAg65znjxuDVFACSU7G+3Vd58p97vm9wWo/+a1QJBKJIEmSJEmSSkRMtAuQJEmSJKkiM3hLkiRJklSCDN6SJEmSJJUgg7ckSZIkSSXI4C1JkiRJUgkyeEuSJEmSVIIM3pIkSZIklaC4aBdQHMLhMKtXr6Z69eqEQqFolyNJkiRJquAikQhbt26lQYMGxMT8fJt2hQjeq1evpnHjxtEuQ5IkSZJUyaxcuZJGjRr97DkVInhXr14dCF44JSUlytVIkiRJkiq6rKwsGjduXJhHf06FCN4/dC9PSUkxeEuSJEmSSs3+DHd2cjVJkiRJkkqQwVuSJEmSpBJk8JYkSZIkqQRViDHekiRJklTeFRQUkJeXF+0y9CMJCQm/uFTY/jB4S5IkSVIURSIRMjIy2LJlS7RL0f+IiYmhefPmJCQkHNR9DN6SJEmSFEU/hO66detStWrV/ZolWyUvHA6zevVq1qxZQ5MmTQ7q78XgLUmSJElRUlBQUBi6a9euHe1y9D/q1KnD6tWryc/PJz4+/oDv4+RqkiRJkhQlP4zprlq1apQr0d780MW8oKDgoO5j8JYkSZKkKLN7edlUXH8vBm9JkiRJkkqQwVuSJEmSpBJk8JYkSZIkFdnxxx/PDTfcEO0yygWDtyRJkiRJJcjgLUmSJElSCTqg4P3QQw/RrFkzkpKS6NGjB1OnTt3nuU899RShUGiPT1JS0h7nXHLJJT85p3///gdSmiRJkiSVa5FIhO25+aX+iUQiB1zz5s2bGTp0KDVr1qRq1aoMGDCAhQsXFh5fvnw5p512GjVr1iQ5OZn27dvz7rvvFl57wQUXUKdOHapUqUKrVq148sknD/rPsSyJK+oFY8eOZfjw4YwaNYoePXpw33330a9fPxYsWEDdunX3ek1KSgoLFiwo/L63Kdn79++/xx9uYmJiUUuTJEmSpHJvR14B7W4dX+rPnXtHP6omFDkiAkFj6sKFC3nrrbdISUnh97//PSeffDJz584lPj6ea665htzcXD799FOSk5OZO3cu1apVA+DPf/4zc+fO5b333iMtLY1FixaxY8eO4ny1qCvyn+q9997LFVdcwbBhwwAYNWoU77zzDk888QS33HLLXq8JhUKkp6f/7H0TExN/8RxJkiRJUtnyQ+D+4osv6NWrFwDPP/88jRs35o033uDss89mxYoVDB48mI4dOwLQokWLwutXrFjBYYcdRrdu3QBo1qxZqb9DSStS8M7NzWX69OmMGDGicF9MTAx9+/Zl8uTJ+7xu27ZtNG3alHA4zOGHH87f/vY32rdvv8c5EydOpG7dutSsWZMTTjiBu+66i9q1a+/1fjk5OeTk5BR+z8rKKsprSJIkSVKZVSU+lrl39IvKcw/EvHnziIuLo0ePHoX7ateuTevWrZk3bx4A119/PVdddRXvv/8+ffv2ZfDgwXTq1AmAq666isGDBzNjxgxOOukkBg0aVBjgK4oijfHesGEDBQUF1KtXb4/99erVIyMjY6/XtG7dmieeeII333yT5557jnA4TK9evVi1alXhOf379+eZZ55hwoQJ3HPPPXzyyScMGDCAgoKCvd5z5MiRpKamFn4aN25clNeQJEmSpDIrFApRNSGu1D97GxJcXC6//HKWLFnCRRddxJw5c+jWrRsPPPAAAAMGDGD58uX89re/ZfXq1fTp04ebbrqpxGqJhhKf1bxnz54MHTqULl26cNxxx/Haa69Rp04dHnnkkcJzzj33XE4//XQ6duzIoEGDePvtt5k2bRoTJ07c6z1HjBhBZmZm4WflypUl/RqSJEmSpL1o27Yt+fn5TJkypXDfxo0bWbBgAe3atSvc17hxY37961/z2muvceONNzJ69OjCY3Xq1OHiiy/mueee47777uPRRx8t1XcoaUXqap6WlkZsbCxr167dY//atWv3e3x2fHw8hx12GIsWLdrnOS1atCgcVN+nT5+fHE9MTHTyNUmSJEkqA1q1asXAgQO54ooreOSRR6hevTq33HILDRs2ZODAgQDccMMNDBgwgEMPPZTNmzfz8ccf07ZtWwBuvfVWunbtSvv27cnJyeHtt98uPFZRFKnFOyEhga5duzJhwoTCfeFwmAkTJtCzZ8/9ukdBQQFz5syhfv36+zxn1apVbNy48WfPkSRJkiSVDU8++SRdu3bl1FNPpWfPnkQiEd59913i4+OBIAdec801tG3blv79+3PooYfy8MMPA0HOHDFiBJ06deLYY48lNjaWF198MZqvU+xCkSIu1jZ27FguvvhiHnnkEbp37859993HSy+9xPz586lXrx5Dhw6lYcOGjBw5EoA77riDI488kpYtW7Jlyxb+8Y9/8MYbbzB9+nTatWvHtm3b+Mtf/sLgwYNJT09n8eLF3HzzzWzdupU5c+bsV8t2VlYWqampZGZmkpKScmB/EpIkSZJUynbu3MnSpUtp3rw5SUlJ0S5H/+Pn/n6KkkOLvJzYkCFDWL9+PbfeeisZGRl06dKFcePGFU64tmLFCmJidjekb968mSuuuIKMjAxq1qxJ165dmTRpUmFf/9jYWGbPns3TTz/Nli1baNCgASeddBJ33nlnhexOvjOvgKQDnC1QkiRJklT+FLnFuywqLy3eX6/YzHVjvubm/m04vXODaJcjSZIkKcps8S7biqvFu8RnNdduH89fx6rNO/jDa3NYtiE72uVIkiRJkkqBwbsUXd+nFd2b1WJbTj7XjplBTv7e1ymXJEmSJFUcBu9SFBcbw/+d14WaVeP55vssRr47P9olSZIkSZJKmMG7lNVPrcK953QB4KlJyxj3TUZ0C5IkSZIklSiDdxT0blOXXx3bAoCbX5nFyk3bo1yRJEmSJKmkGLyj5KZ+rTmsSQ2yduZz3Zivyc0PR7skSZIkSVIJMHhHSXxsDPefexgpSXHMXLmFf76/INolSZIkSZJKgME7ihrXqso/zu4MwKOfLuGj+WujXJEkSZIklY5mzZpx33337de5oVCIN954o0TrKUkG7yjr1z6dS3o1A+DGl2axJnNHdAuSJEmSJBUrg3dpW/wRhPcczz3i5DZ0aJjC5u15XD/ma/ILHO8tSZIkSRWFwbs0zXgWnj0DXr0M8nMKdyfGxfLgeYdTLTGOacs2c9+HC6NYpCRJkqSoikQgN7v0P5HIfpf46KOP0qBBA8L/06g4cOBALr30UhYvXszAgQOpV68e1apV44gjjuDDDz8stj+iOXPmcMIJJ1ClShVq167NlVdeybZt2wqPT5w4ke7du5OcnEyNGjU46qijWL58OQCzZs2id+/eVK9enZSUFLp27cpXX31VbLXtTVyJ3l17ikuCmHj49jXYtg7OfR6q1ACgWVoydw/uyLUvfM1DExfRo0UtjmlVJ7r1SpIkSSp9edvhbw1K/7l/WA0Jyft16tlnn811113Hxx9/TJ8+fQDYtGkT48aN491332Xbtm2cfPLJ/PWvfyUxMZFnnnmG0047jQULFtCkSZODKjM7O5t+/frRs2dPpk2bxrp167j88su59tpreeqpp8jPz2fQoEFcccUVjBkzhtzcXKZOnUooFALgggsu4LDDDuM///kPsbGxzJw5k/j4+IOq6ZcYvEtTp7OhWh148UJY/jk80R8ufAVSGwFwaqcGTFq8kRemrOC3Y2fy7vXHUDclKcpFS5IkSdKeatasyYABA3jhhRcKg/crr7xCWloavXv3JiYmhs6dOxeef+edd/L666/z1ltvce211x7Us1944QV27tzJM888Q3Jy8IuCBx98kNNOO4177rmH+Ph4MjMzOfXUUznkkEMAaNu2beH1K1as4He/+x1t2rQBoFWrVgdVz/4weJe2FsfDpe/Bc2fB+nnw2IlB+K7XHoBbT23HjOWbmZ+xlRvGzuTZy3oQGxOKbs2SJEmSSk981aD1ORrPLYILLriAK664gocffpjExESef/55zj33XGJiYti2bRu3334777zzDmvWrCE/P58dO3awYsWKgy5z3rx5dO7cuTB0Axx11FGEw2EWLFjAscceyyWXXEK/fv048cQT6du3L+eccw7169cHYPjw4Vx++eU8++yz9O3bl7PPPrswoJcUx3hHQ3pHuPwDSGsNW1cHLd9LPwUgKT6WB88/nKoJsUxavJGHPl4U5WIlSZIklapQKOjyXdqfUNEa/E477TQikQjvvPMOK1eu5LPPPuOCCy4A4KabbuL111/nb3/7G5999hkzZ86kY8eO5ObmlsSf2E88+eSTTJ48mV69ejF27FgOPfRQvvzySwBuv/12vv32W0455RQ++ugj2rVrx+uvv16i9Ri8o6VGE7h0HDTpBTlZ8NxgmPMKAC3rVuOuQR0AuO/D7xj/bUY0K5UkSZKkn0hKSuLMM8/k+eefZ8yYMbRu3ZrDDz8cgC+++IJLLrmEM844g44dO5Kens6yZcuK5blt27Zl1qxZZGdnF+774osviImJoXXr1oX7DjvsMEaMGMGkSZPo0KEDL7zwQuGxQw89lN/+9re8//77nHnmmTz55JPFUtu+GLyjqWotuOh1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m0Z2djYzZ84E7FJh999/P3/729/o27dvaN52bGwssbGxOBwO7r77bn7/+98zaNCg0HJiWVlZbQq4iYiIiIiIdCcOh4P4yAjiIyMYmBbXoa+bmxJNbko0/zS2N8YYdlfUsyyvnBV5+1ieV86eynryy+tO8n3AATgdDpwtG06H3XYALqej5ebEHfrZgdvpwNlyv38f2Ev06/0Bav3N1DUG8AfsSHhTwFBV3xRaX74nanfwnjp1Knv37uX++++nuLiYs88+m/nz54eKoxUUFOB0tl4qMHv2bPx+Pz/60Y/avM4DDzzAb3/7WwB+9atfUVtbyy233EJlZSXnnXce8+fPP6l54CIiIiIiIqcDh8NB7+RoeidH809jbO2rXfvqKKluwO2yodjtcuB2tv4c4XLicjqIcNpCdPsDsg3ZdFil+KNpCgRb5ss3U9to7w/cToo5/Kh/d9TudbxPRVrHW0RERERERDpTe3Joz5/FLiIiIiIiItKFFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwkjBW0RERERERCSMFLxFREREREREwsjd1Q3oCMYYAKqrq7u4JSIiIiIiInI62J8/9+fRo+kRwdvn8wHQu3fvLm6JiIiIiIiInE58Ph8JCQlHfYzDHE88P8UFg0EKCwuJi4vD4XB0dXOOqrq6mt69e7Nr1y7i4+O7ujnSAdSnPY/6tGdSv/Y86tOeSf3a86hPeyb1qx3p9vl8ZGVl4XQefRZ3jxjxdjqd5OTkdHUz2iU+Pv60/Q+0p1Kf9jzq055J/drzqE97JvVrz6M+7ZlO93491kj3fiquJiIiIiIiIhJGCt4iIiIiIiIiYaTg3cm8Xi8PPPAAXq+3q5siHUR92vOoT3sm9WvPoz7tmdSvPY/6tGdSv7ZPjyiuJiIiIiIiInKq0oi3iIiIiIiISBgpeIuIiIiI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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "2656/2656 [==============================] - 12s 4ms/step - loss: 0.2268\n", "0.22676503658294678\n" ] } ], "source": [ "history = model.fit(X_train, y_train, epochs=100, batch_size=64, validation_data=(X_test, y_test), callbacks=[early_stopping, model_checkpoint], verbose=1)\n", "\n", "plt.figure(figsize=(12, 8))\n", "plt.plot(history.history['loss'], label='loss')\n", "plt.plot(history.history['val_loss'], label='val_loss')\n", "plt.legend()\n", "plt.show()\n", "\n", "model = load_model('./models/model_1.keras')\n", "evaluation = model.evaluate(X_test, y_test)\n", "print(evaluation)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## TODO\n", "\n", "- [ ] Turn features into categorical data\n", "- [ ] Try 3-class classification (buy, hold, sell)\n", "- [ ] Preprocess data using SQL\n", "- [ ] Use LSTM to backtest\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.6" } }, "nbformat": 4, "nbformat_minor": 2 }