3869 lines
383 KiB
Plaintext
3869 lines
383 KiB
Plaintext
{
|
|
"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/t3Kq4mIiIiIiIiUoWUeIuIiIiIiIhUISXeZ5m3tzdjxozB29u7ukMROSW1UzlfqK3K+UJtVc4Xaqtyvjjf2uoFUVxNRERERERE5FylHm8RERERERGRKqTEW0RERERERKQKKfEWERERERERqUJKvEVERERERESqkBJvERERERERkSqkxPssGj9+PLVr18bHx4d27dqxfPny6g5JLnJjx47l8ssvJzAwkKioKPr27cu2bdtKnVNQUMDw4cMJDw8nICCAm2++mZSUlGqKWAReeuklbDYbo0aNKtmndirnioMHD3LnnXcSHh6Or68vzZo1Y+XKlSXHLcvimWeeoUaNGvj6+tK9e3d27NhRjRHLxcjlcvH0009Tp04dfH19qVevHs899xwnLnaktirVYeHChfTp04fY2FhsNhvTpk0rdbwi7TI9PZ2BAwcSFBRESEgI99xzDzk5OWfxXZRNifdZMnXqVEaPHs2YMWNYvXo1LVq0oGfPnqSmplZ3aHIRW7BgAcOHD2fp0qXMmjWLoqIievToQW5ubsk5jzzyCDNmzOCrr75iwYIFJCUl0a9fv2qMWi5mK1as4MMPP6R58+al9qudyrng6NGjdOrUCU9PT2bOnMnmzZt57bXXCA0NLTnn5Zdf5u233+aDDz5g2bJl+Pv707NnTwoKCqoxcrnYjBs3jvfff593332XLVu2MG7cOF5++WXeeeedknPUVqU65Obm0qJFC8aPH1/m8Yq0y4EDB7Jp0yZmzZrFDz/8wMKFC7n//vvP1ls4NUvOirZt21rDhw8v2Xa5XFZsbKw1duzYaoxKpLTU1FQLsBYsWGBZlmVlZGRYnp6e1ldffVVyzpYtWyzAWrJkSXWFKRep7OxsKyEhwZo1a5Z15ZVXWiNHjrQsS+1Uzh2PP/64dcUVV5zyuNvttmJiYqxXXnmlZF9GRobl7e1tTZ48+WyEKGJZlmVdd9111t13311qX79+/ayBAwdalqW2KucGwPruu+9KtivSLjdv3mwB1ooVK0rOmTlzpmWz2ayDBw+etdjLoh7vs8DpdLJq1Sq6d+9ess9ut9O9e3eWLFlSjZGJlJaZmQlAWFgYAKtWraKoqKhU223YsCHx8fFqu3LWDR8+nOuuu65UewS1Uzl3fP/997Rp04b+/fsTFRVFy5YtmTBhQsnxPXv2kJycXKqtBgcH065dO7VVOas6duzInDlz2L59OwDr1q1j8eLF9O7dG1BblXNTRdrlkiVLCAkJoU2bNiXndO/eHbvdzrJly856zCfyqNZXv0ikpaXhcrmIjo4utT86OpqtW7dWU1QipbndbkaNGkWnTp1o2rQpAMnJyXh5eRESElLq3OjoaJKTk6shSrlYTZkyhdWrV7NixYqTjqmdyrli9+7dvP/++4wePZp//OMfrFixgocffhgvLy8GDx5c0h7L+j6gtipn0xNPPEFWVhYNGzbE4XDgcrl44YUXGDhwIIDaqpyTKtIuk5OTiYqKKnXcw8ODsLCwam+7SrxFBDC9iRs3bmTx4sXVHYpIKfv372fkyJHMmjULHx+f6g5H5JTcbjdt2rThxRdfBKBly5Zs3LiRDz74gMGDB1dzdCLHffnll/z3v//liy++oEmTJqxdu5ZRo0YRGxurtipSRTTU/CyIiIjA4XCcVGE3JSWFmJiYaopK5LgRI0bwww8/MG/ePGrWrFmyPyYmBqfTSUZGRqnz1XblbFq1ahWpqam0atUKDw8PPDw8WLBgAW+//TYeHh5ER0ernco5oUaNGjRu3LjUvkaNGpGYmAhQ0h71fUCq26OPPsoTTzzBbbfdRrNmzbjrrrt45JFHGDt2LKC2KuemirTLmJiYk4pXFxcXk56eXu1tV4n3WeDl5UXr1q2ZM2dOyT63282cOXPo0KFDNUYmFzvLshgxYgTfffcdc+fOpU6dOqWOt27dGk9Pz1Jtd9u2bSQmJqrtylnTrVs3NmzYwNq1a0t+2rRpw8CBA0v+VjuVc0GnTp1OWpJx+/bt1KpVC4A6deoQExNTqq1mZWWxbNkytVU5q/Ly8rDbS6cBDocDt9sNqK3Kuaki7bJDhw5kZGSwatWqknPmzp2L2+2mXbt2Zz3mE2mo+VkyevRoBg8eTJs2bWjbti1vvvkmubm5DB06tLpDk4vY8OHD+eKLL5g+fTqBgYElc1+Cg4Px9fUlODiYe+65h9GjRxMWFkZQUBAPPfQQHTp0oH379tUcvVwsAgMDS+oO/M7f35/w8PCS/Wqnci545JFH6NixIy+++CIDBgxg+fLlfPTRR3z00UcAJevPP//88yQkJFCnTh2efvppYmNj6du3b/UGLxeVPn368MILLxAfH0+TJk1Ys2YNr7/+OnfffTegtirVJycnh507d5Zs79mzh7Vr1xIWFkZ8fPxp22WjRo3o1asX9913Hx988AFFRUWMGDGC2267jdjY2Gp6V8dUa031i8w777xjxcfHW15eXlbbtm2tpUuXVndIcpEDyvz59NNPS87Jz8+3HnzwQSs0NNTy8/OzbrrpJuvQoUPVF7SIZZVaTsyy1E7l3DFjxgyradOmlre3t9WwYUPro48+KnXc7XZbTz/9tBUdHW15e3tb3bp1s7Zt21ZN0crFKisryxo5cqQVHx9v+fj4WHXr1rWeeuopq7CwsOQctVWpDvPmzSvzu+ngwYMty6pYuzxy5Ih1++23WwEBAVZQUJA1dOhQKzs7uxreTWk2y7Ksasr5RURERERERC54muMtIiIiIiIiUoWUeIuIiIiIiIhUISXeIiIiIiIiIlVIibeIiIiIiIhIFVLiLSIiIiIiIlKFlHiLiIiIiIiIVCEl3iIiIiIiIiJVSIm3iIiIiIiISBVS4i0iIiIiIiJShZR4i4iIiIiIiFQhJd4iIiIiIiIiVej/A7Nj47sz0kmEAAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 1200x800 with 1 Axes>"
|
|
]
|
|
},
|
|
"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": [
|
|
"<Figure size 1200x800 with 1 Axes>"
|
|
]
|
|
},
|
|
"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
|
|
}
|