{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "from model_intra import get_data, walk_forward_validation\n", "import lightgbm as lgb\n", "from sklearn.linear_model import LogisticRegression" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "getting econ tickers: 100%|██████████| 3/3 [00:00<00:00, 6.07it/s]\n", "Getting release dates: 100%|██████████| 8/8 [00:01<00:00, 4.93it/s]\n", "Making indicators: 100%|██████████| 8/8 [00:00<00:00, 3996.95it/s]\n", "Found cached dataset text (C:/Users/WINSTON-ITX/.cache/huggingface/datasets/boomsss___text/boomsss--spx_intra-88eacccda5de09b8/0.0.0/cb1e9bd71a82ad27976be3b12b407850fe2837d80c22c5e03a28949843a8ace2)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9bf6344ca1764fb5934dcbe4bcf0f7d8", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeDividendsStock SplitsOpen30Open_VIX30Open_VVIX30...FOMC_shiftUNEMPUNEMP_shiftADPADP_shiftPCEPCE_shiftBigNewsDayDaysGreenDaysRed
2018-07-022704.9499512727.2600102698.9499512726.70996130950400000.00.02704.9517.84111.39...0.00.00.00.00.00.00.00.000
2018-07-032733.2700202736.5800782711.1599122713.21997119114600000.00.02733.2715.11103.24...0.00.00.00.00.00.00.00.001
2018-07-052724.1899412737.8300782716.0200202736.61010729801600000.00.02724.1915.18103.44...0.00.00.00.00.00.00.00.010
2018-07-062737.6799322764.4099122733.5200202759.82006825902500000.00.02737.6814.88102.85...0.00.00.00.00.00.00.00.020
2018-07-092775.6201172784.6499022770.7299802784.16992230700600000.00.02768.5113.1396.43...0.00.00.00.00.00.00.00.030
..................................................................
2023-10-304139.3901374177.4702154132.9399414166.81982439111400000.00.04139.3920.51100.31...0.00.00.00.00.00.00.00.010
2023-10-314171.3300784195.5498054153.1201174193.79980542494700000.00.04171.3319.5794.57...0.00.00.00.00.00.00.00.020
2023-11-014201.2700204245.6401374197.7402344237.85986342249000000.00.04201.2717.9687.09...0.00.00.00.00.00.00.00.030
2023-11-024268.2597664319.7202154268.2597664317.77978546697800000.00.04268.2616.3283.91...0.00.00.00.00.00.00.00.040
2023-11-034334.2299804373.6201174334.2299804358.33984445709600000.00.04334.2315.3283.03...0.00.00.00.00.00.00.00.050
\n", "

1338 rows × 138 columns

\n", "" ], "text/plain": [ " Open High Low Close Volume \\\n", "2018-07-02 2704.949951 2727.260010 2698.949951 2726.709961 3095040000 \n", "2018-07-03 2733.270020 2736.580078 2711.159912 2713.219971 1911460000 \n", "2018-07-05 2724.189941 2737.830078 2716.020020 2736.610107 2980160000 \n", "2018-07-06 2737.679932 2764.409912 2733.520020 2759.820068 2590250000 \n", "2018-07-09 2775.620117 2784.649902 2770.729980 2784.169922 3070060000 \n", "... ... ... ... ... ... \n", "2023-10-30 4139.390137 4177.470215 4132.939941 4166.819824 3911140000 \n", "2023-10-31 4171.330078 4195.549805 4153.120117 4193.799805 4249470000 \n", "2023-11-01 4201.270020 4245.640137 4197.740234 4237.859863 4224900000 \n", "2023-11-02 4268.259766 4319.720215 4268.259766 4317.779785 4669780000 \n", "2023-11-03 4334.229980 4373.620117 4334.229980 4358.339844 4570960000 \n", "\n", " Dividends Stock Splits Open30 Open_VIX30 Open_VVIX30 ... \\\n", "2018-07-02 0.0 0.0 2704.95 17.84 111.39 ... \n", "2018-07-03 0.0 0.0 2733.27 15.11 103.24 ... \n", "2018-07-05 0.0 0.0 2724.19 15.18 103.44 ... \n", "2018-07-06 0.0 0.0 2737.68 14.88 102.85 ... \n", "2018-07-09 0.0 0.0 2768.51 13.13 96.43 ... \n", "... ... ... ... ... ... ... \n", "2023-10-30 0.0 0.0 4139.39 20.51 100.31 ... \n", "2023-10-31 0.0 0.0 4171.33 19.57 94.57 ... \n", "2023-11-01 0.0 0.0 4201.27 17.96 87.09 ... \n", "2023-11-02 0.0 0.0 4268.26 16.32 83.91 ... \n", "2023-11-03 0.0 0.0 4334.23 15.32 83.03 ... \n", "\n", " FOMC_shift UNEMP UNEMP_shift ADP ADP_shift PCE PCE_shift \\\n", "2018-07-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2018-07-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2018-07-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2018-07-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2018-07-09 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... ... ... \n", "2023-10-30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2023-10-31 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2023-11-01 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2023-11-02 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2023-11-03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", " BigNewsDay DaysGreen DaysRed \n", "2018-07-02 0.0 0 0 \n", "2018-07-03 0.0 0 1 \n", "2018-07-05 0.0 1 0 \n", "2018-07-06 0.0 2 0 \n", "2018-07-09 0.0 3 0 \n", "... ... ... ... \n", "2023-10-30 0.0 1 0 \n", "2023-10-31 0.0 2 0 \n", "2023-11-01 0.0 3 0 \n", "2023-11-02 0.0 4 0 \n", "2023-11-03 0.0 5 0 \n", "\n", "[1338 rows x 138 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
BigNewsDayQuarterPerf5DayPerf5Day_n1DaysGreenDaysRedCurrentHigh30toCloseCurrentLow30toCloseCurrentClose30toCloseCurrentRange30...GreenProbasH1BreakTouchPctH2BreakTouchPctL1BreakTouchPctL2BreakTouchPctH1BreakH2TouchPctL1BreakL2TouchPctH1TouchGreenPctL1TouchRedPctTarget_clf
2018-07-020.03FalseTrue000.0036200.0003560.0008550.003264...NaNNaNNaNNaNNaNNaNNaNNaNNaNFalse
2018-07-030.03FalseFalse010.0062580.0010320.0016330.005226...NaNNaNNaNNaNNaNNaNNaNNaNNaNTrue
2018-07-050.03FalseFalse100.005134-0.0011290.0046440.006263...NaNNaNNaNNaNNaNNaNNaNNaNNaNTrue
2018-07-060.03FalseFalse200.0065290.0031490.0065000.003381...NaNNaNNaNNaNNaNNaNNaNNaNNaNTrue
2018-07-090.03FalseFalse300.0040980.0012360.0036530.002863...NaNNaNNaNNaNNaNNaNNaNNaNNaNTrue
..................................................................
2023-10-270.04FalseFalse030.0112040.0037820.0055450.007422...0.8571430.4878050.4375000.6511630.4074070.8125000.8888890.7804880.604651True
2023-10-300.04FalseFalse100.002122-0.0032880.0015430.005409...0.6090230.5000000.4375000.6511630.4074070.8125000.8888890.7857140.604651True
2023-10-310.04FalseFalse200.0084720.0009400.0070200.007533...0.8872180.5000000.4375000.6511630.4074070.8125000.8888890.7857140.604651True
2023-11-010.04TrueFalse300.0155980.0071730.0155640.008424...0.9104480.5116280.4117650.6511630.4074070.8235290.8888890.7906980.604651True
2023-11-020.04TrueTrue400.0108130.0038100.0079280.007004...0.8872180.5116280.4444440.6511630.4074070.8333330.8888890.7906980.604651True
\n", "

1337 rows × 42 columns

\n", "
" ], "text/plain": [ " BigNewsDay Quarter Perf5Day Perf5Day_n1 DaysGreen DaysRed \\\n", "2018-07-02 0.0 3 False True 0 0 \n", "2018-07-03 0.0 3 False False 0 1 \n", "2018-07-05 0.0 3 False False 1 0 \n", "2018-07-06 0.0 3 False False 2 0 \n", "2018-07-09 0.0 3 False False 3 0 \n", "... ... ... ... ... ... ... \n", "2023-10-27 0.0 4 False False 0 3 \n", "2023-10-30 0.0 4 False False 1 0 \n", "2023-10-31 0.0 4 False False 2 0 \n", "2023-11-01 0.0 4 True False 3 0 \n", "2023-11-02 0.0 4 True True 4 0 \n", "\n", " CurrentHigh30toClose CurrentLow30toClose CurrentClose30toClose \\\n", "2018-07-02 0.003620 0.000356 0.000855 \n", "2018-07-03 0.006258 0.001032 0.001633 \n", "2018-07-05 0.005134 -0.001129 0.004644 \n", "2018-07-06 0.006529 0.003149 0.006500 \n", "2018-07-09 0.004098 0.001236 0.003653 \n", "... ... ... ... \n", "2023-10-27 0.011204 0.003782 0.005545 \n", "2023-10-30 0.002122 -0.003288 0.001543 \n", "2023-10-31 0.008472 0.000940 0.007020 \n", "2023-11-01 0.015598 0.007173 0.015564 \n", "2023-11-02 0.010813 0.003810 0.007928 \n", "\n", " CurrentRange30 ... GreenProbas H1BreakTouchPct \\\n", "2018-07-02 0.003264 ... NaN NaN \n", "2018-07-03 0.005226 ... NaN NaN \n", "2018-07-05 0.006263 ... NaN NaN \n", "2018-07-06 0.003381 ... NaN NaN \n", "2018-07-09 0.002863 ... NaN NaN \n", "... ... ... ... ... \n", "2023-10-27 0.007422 ... 0.857143 0.487805 \n", "2023-10-30 0.005409 ... 0.609023 0.500000 \n", "2023-10-31 0.007533 ... 0.887218 0.500000 \n", "2023-11-01 0.008424 ... 0.910448 0.511628 \n", "2023-11-02 0.007004 ... 0.887218 0.511628 \n", "\n", " H2BreakTouchPct L1BreakTouchPct L2BreakTouchPct \\\n", "2018-07-02 NaN NaN NaN \n", "2018-07-03 NaN NaN NaN \n", "2018-07-05 NaN NaN NaN \n", "2018-07-06 NaN NaN NaN \n", "2018-07-09 NaN NaN NaN \n", "... ... ... ... \n", "2023-10-27 0.437500 0.651163 0.407407 \n", "2023-10-30 0.437500 0.651163 0.407407 \n", "2023-10-31 0.437500 0.651163 0.407407 \n", "2023-11-01 0.411765 0.651163 0.407407 \n", "2023-11-02 0.444444 0.651163 0.407407 \n", "\n", " H1BreakH2TouchPct L1BreakL2TouchPct H1TouchGreenPct \\\n", "2018-07-02 NaN NaN NaN \n", "2018-07-03 NaN NaN NaN \n", "2018-07-05 NaN NaN NaN \n", "2018-07-06 NaN NaN NaN \n", "2018-07-09 NaN NaN NaN \n", "... ... ... ... \n", "2023-10-27 0.812500 0.888889 0.780488 \n", "2023-10-30 0.812500 0.888889 0.785714 \n", "2023-10-31 0.812500 0.888889 0.785714 \n", "2023-11-01 0.823529 0.888889 0.790698 \n", "2023-11-02 0.833333 0.888889 0.790698 \n", "\n", " L1TouchRedPct Target_clf \n", "2018-07-02 NaN False \n", "2018-07-03 NaN True \n", "2018-07-05 NaN True \n", "2018-07-06 NaN True \n", "2018-07-09 NaN True \n", "... ... ... \n", "2023-10-27 0.604651 True \n", "2023-10-30 0.604651 True \n", "2023-10-31 0.604651 True \n", "2023-11-01 0.604651 True \n", "2023-11-02 0.604651 True \n", "\n", "[1337 rows x 42 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_final.drop(columns='Target')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 1336/1336 [00:12<00:00, 108.26it/s]\n", "Calibrating Probas: 100%|██████████| 1336/1336 [00:03<00:00, 426.27it/s]\n" ] } ], "source": [ "df_results, model = walk_forward_validation(df=df_final.drop(columns='Target'), target_column='Target_clf', num_periods=1)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.8129370589535423\n", "0.7519788918205804\n", "0.8039492242595204\n" ] } ], "source": [ "from sklearn.metrics import mean_squared_error, roc_auc_score, precision_score, recall_score\n", "res = df_results.dropna()\n", "print(roc_auc_score(res['True'].astype(bool), res['Predicted']))\n", "print(precision_score(res['True'].astype(bool), res['Predicted'] > 0.5))\n", "print(recall_score(res['True'].astype(bool), res['Predicted'] > 0.5))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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pGXLlowYMYJ69epRtmzZjPoff/xxRhBi37597N69m3HjxvH6668THx/PPffcA8DMmTPZv38/8fHxBz0/Pj6e559/nnr16hETE3NcxijHVygUyvJ7FckrND8lL9P8lLxKc1Pysvw4P0+nQMKx8B7BGQaB5IhrA25099WRFczscWAL4RUFBYB9Edk/EQ44NCQccDgcqRy89aRYFHX2R1yncfDv96DzGI72DIDihQuyemi7o2ojN+eeey7nnXceq1evpmbNmsyePZs6depwwQUXMHfuXFq2bMmaNWv47bffsnzYHzJkCEOGDAHC/1GPGDGC119/HYCtW7dSrlw59u/fzzPPPMPAgQMB+O6777jgggswM77++mv279/PH/7wh+M2PhERERERkVNVvjgj4TA0B77PIe9joLcFn8DNrGGQfhbhFQIHgD8DBSPq7ATaAUPMLD6Hdj8FbjGzgsF2gxbAAuAHoI6ZFQ22UlwZlF8NlDezJkE/SpnZkQSEvgRamNn5QTtlgvQ9hLd5nHSjR4+mU6dOxMbGkpCQwMMPP0y3bt343//+R7169bj11luZMGECZsamTZto27btIdscPnw4tWvXJjY2lmuvvZY//vGPALz99tvUq1ePuLg47rnnHt566y0duCgiIiIiIpKNfLEiIfjQPRU4G7jWzAa7e90gO/2MBAN+A3L63r8ngVHAUjMrAKwlfN7AS8DbZnYHMIODVzHg7lvMrD3wkZl1c/evMrU7FWgGJAIO9HP3zUG//wMsD561JGjvt2ALxmgzK074fISrDveduPvPwZkH7wTj2Qq0At4HpgSHSfZ2908Pt+1jJS4uLuNgxEjpqwsiVahQgenTp2dJj4+PP2iZ0fDhwxk+fHiWcv3796d///5H12EREREREZF84LQJJLh7yUz344HxwfVCoFI2ddYBxXNoL6N+cL8X6JlNuW+B2Iik/kF6CAgF1z8CdTPVqxpx+1Dwk7ntfkC/bNIXAk0zJWfub/scnhXZzkfAR5nS1mQaj4iIiIiIiEgGbW0QERERERERkagpkCAiIiIiIiIiUVMgQURERERERESipkCCiIiIiIiIiERNgQQRERERERERiZoCCSIiIiIiIiISNQUSRERERERERCRqCiRInlO1alXq169PXFwcjRs3BiAxMZFmzZpRv359rr32Wnbv3p1t3eeff5569epR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SYMdhM9K+AxoRXirwr6Ipv8EfgFcB9wM4O4vmNm/gauAN8zsNnefT3BGgplVB94ifEZCBvClu6eUEMphZZSqnVKZDUW2LZTE3bnllltISEgolETYsWMHdevW5dChQzzyyCPcfvvtUfvnt/vkk0945ZVXeP/996lduzY7duwoaBMfH8+yZcuIi4sD4KuvvmLhwoVMnjz5cF5LREREREREyqDDFk8gMzsL+CswwcNLQ2oB2939EPBLoHJE8wzgXgB3Xx/0bwL8z93HEz7bIDlyfHffCwwA/o/wmQibzOzaoK+ZWf7hAosJJygAbji2bwmLFy/mueeeY/78+QVfy/jGG28wZcoUmjVrxvnnn0+9evW4+eabAdi2bRtXXnllQf9evXrRokULunfvzpNPPknt2rXLfOaMGTPo0qULNWrUKLOtiIiIiIiIxE4rEr571cwsEzgFOEj4cMXHgrq/ANPN7EZgNvBNfid3/8zMPgBejRjr58AvzSwX+BQodhiAu680s9VAX8JJgqfM7LfB86cCq4B7gBfMbBAxHrZ4ODp06EBJW2juueeeYmX16tXjjTfeKLh/5513ynxGVlZWofv09HTS09MPK04REREREREpmxIJ3zF3r1xK3UYKryoYlH8RbFM4D5gS0X4EMCLKODWL3HePuP1plPabgIsiin5b8huIiIiIiIhIRaatDd8DZnY54UMTn3D3r050PCIiIiIiIlJxaUXC94C7zwUaneg4RERERERERLQiQURERERERERipkSCiIiIiIiIiMRMiQQRERERERERiZkSCSIiIiIiIiISMyUSRERERERERCRmSiSIiIiIiIiISMyUSJDjavPmzXTq1IkWLVqQmJjIuHHjABg2bBj169cnJSWFlJQU3njjjaj9Z8+eTfPmzWnatCkjRowoKHd3hgwZQrNmzUhISGD8+PGF+i1dupQqVaowbdq04/dyIiIiIiIiFVCVEx3AiWJm2e5es0hZR2AskAxc5+7TzCwJeC5o0hD4KvjZ5e6XH2UM8cDr7t4ySl0GcEnwLAPud/d5hzF2RjD2NDMLAecA+4BsoJ+7byihXwpQz92jf7I/TFWqVGHMmDG0adOGPXv2cMEFF9C5c2cA7rvvPh544IES++bl5XHnnXfy9ttv06BBA9q2bcvVV19NixYtyMjIYPPmzXz44YdUqlSJHTt2FOo3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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# Plot feature importances\n", "# plt.figure(figsize=(16, 12))\n", "lgb.plot_importance(model, figsize=(16, 12), importance_type='gain') # Adjust max_num_features as needed\n", "plt.title(\"Feature Importances\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'XXX' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32md:\\Projects\\gamedayspx\\troubleshoot_day_model.ipynb Cell 9\u001b[0m line \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[0m XXX\n", "\u001b[1;31mNameError\u001b[0m: name 'XXX' is not defined" ] } ], "source": [ "XXX" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "extensionsToCheck = ['L1', 'L2', 'H1', 'H2']\n", "level_cols = [x for x in df_final.columns if any(ext in x for ext in extensionsToCheck)]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_final.groupby(pd.cut(df_final['CurrentClose30toClose'],5))['Target_clf'].mean()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_final.groupby('OHLC4_Current_Trend')['Target_clf'].mean()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_final.groupby(['GreenProbas']).mean().T" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data.loc[final_row, df_final.columns[-5:]]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.7876608388341906\n", "0.7399741267787839\n", "0.8067700987306065\n", "0.794694547312638\n", "0.7601156069364162\n", "0.7993920972644377\n" ] } ], "source": [ "from sklearn.metrics import roc_auc_score, precision_score, recall_score\n", "\n", "cal = res.copy()\n", "\n", "print(roc_auc_score(cal['True'], cal['CalibPredicted']))\n", "print(precision_score(cal['True'], cal['CalibPredicted'] > .5))\n", "print(recall_score(cal['True'], cal['CalibPredicted'] > .5))\n", "\n", "res1_hi_confidence = cal.query('(CalibPredicted >= .6) | (CalibPredicted < 0.4)')\n", "\n", "print(roc_auc_score(res1_hi_confidence['True'], res1_hi_confidence['CalibPredicted']))\n", "print(precision_score(res1_hi_confidence['True'], res1_hi_confidence['CalibPredicted'] > .5))\n", "print(recall_score(res1_hi_confidence['True'], res1_hi_confidence['CalibPredicted'] > .5))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "len(res1_hi_confidence) / len(cal)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "XXX" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import yfinance as yf\n", "\n", "vix = yf.Ticker('^TNX')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "vix.history(interval='30m')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_final.groupby(pd.qcut(df_final['CurrentGap'], 10))['Target_clf'].mean()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import roc_auc_score, precision_score, recall_score\n", "# st.subheader('New Prediction')\n", "nq = 7\n", "\n", "df_probas = res.groupby(pd.qcut(res['Predicted'],nq)).agg({'True':[np.mean,len,np.sum]})\n", "# df_probas = res.groupby(pd.cut(res['Predicted'],[-np.inf, 0.27, 0.375, 0.625, 0.7, np.inf])).agg({'True':[np.mean,len,np.sum]})\n", "df_probas.columns = ['PctGreen','NumObs','NumGreen']\n", "\n", "# Calculate quantiles\n", "quantiles = pd.qcut(res['Predicted'], nq, labels=False, duplicates='drop')\n", "\n", "# Determine the number of quantiles\n", "num_quantiles = len(quantiles.unique())\n", "\n", "# Calculate the middle quantile(s)\n", "if num_quantiles % 2 == 0: # Even number of quantiles\n", " middle_quantiles = quantiles.isin([num_quantiles // 2 - 1, num_quantiles // 2])\n", "else: # Odd number of quantiles\n", " middle_quantiles = quantiles == num_quantiles // 2\n", "\n", "# Extract the lower and upper thresholds\n", "lo_thres = 0.4 # res.loc[middle_quantiles, 'Predicted'].min()\n", "hi_thres = 0.6 # res.loc[middle_quantiles, 'Predicted'].max()\n", "\n", "roc_auc_score_all = roc_auc_score(res['True'].astype(int), res['Predicted'].values)\n", "roc_auc_score_calib = roc_auc_score(res.dropna(subset='CalibPredicted')['True'].astype(int), res.dropna(subset='CalibPredicted')['CalibPredicted'].values)\n", "precision_score_all = precision_score(res['True'].astype(int), res['Predicted'] > 0.5)\n", "recall_score_all = recall_score(res['True'].astype(int), res['Predicted'] > 0.5)\n", "len_all = len(res)\n", "\n", "res2_filtered = res.loc[(res['Predicted'] > hi_thres) | (res['Predicted'] <= lo_thres)]\n", "\n", "roc_auc_score_hi = roc_auc_score(res2_filtered['True'].astype(int), res2_filtered['Predicted'].values)\n", "roc_auc_score_hi_calib = roc_auc_score(res2_filtered.dropna(subset='CalibPredicted')['True'].astype(int), res2_filtered.dropna(subset='CalibPredicted')['CalibPredicted'].values)\n", "precision_score_hi = precision_score(res2_filtered['True'].astype(int), res2_filtered['Predicted'] > 0.5)\n", "recall_score_hi = recall_score(res2_filtered['True'].astype(int), res2_filtered['Predicted'] > 0.5)\n", "len_hi = len(res2_filtered)\n", "\n", "df_performance = pd.DataFrame(\n", " index=[\n", " 'N',\n", " 'ROC AUC',\n", " 'Calib. AUC',\n", " 'Precision',\n", " 'Recall'\n", " ],\n", " columns = [\n", " 'All',\n", " 'High Confidence'\n", " ],\n", " data = [\n", " [len_all, len_hi],\n", " [roc_auc_score_all, roc_auc_score_hi],\n", " [roc_auc_score_calib, roc_auc_score_hi_calib],\n", " [precision_score_all, precision_score_hi],\n", " [recall_score_all, recall_score_hi]\n", " ]\n", ").round(2)\n", "\n", "def get_acc(t, p):\n", " if t == False and p <= lo_thres:\n", " return '✅' # ✅

\n", " elif t == True and p > hi_thres:\n", " return '✅' # \n", " elif t == False and p > hi_thres:\n", " return '❌' # ❌

\n", " elif t == True and p <= lo_thres:\n", " return '❌'\n", " else:\n", " return '🟨' # ⬜

\n", " \n", "def get_acc_html(t, p):\n", " if t == False and p <= lo_thres:\n", " return '✅'\n", " elif t == True and p > hi_thres:\n", " return '✅'\n", " elif t == False and p > hi_thres:\n", " return '❌'\n", " elif t == True and p <= lo_thres:\n", " return '❌'\n", " else:\n", " return '⬜'\n", "\n", "\n", "perf_daily = res.copy()\n", "perf_daily['Accuracy'] = [get_acc(t, p) for t, p in zip(perf_daily['True'], perf_daily['Predicted'])]\n", "perf_daily['HTML'] = [get_acc_html(t, p) for t, p in zip(perf_daily['True'], perf_daily['Predicted'])]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TruePredictedCalibPredictedAccuracyHTML
2023-10-06True0.3902900.339394&#10060;
2023-10-09True0.7177660.730088&#9989;
2023-10-10True0.5679030.566845🟨&#11036;
2023-10-11False0.4161670.343373🟨&#11036;
2023-10-12False0.4355820.341317🟨&#11036;
2023-10-13True0.7541480.841667&#9989;
2023-10-16False0.3635470.339286&#9989;
2023-10-17False0.2144580.104895&#9989;
2023-10-18False0.5587750.569149🟨&#11036;
2023-10-19False0.3300180.243590&#9989;
2023-10-20False0.7111800.731278&#10060;
2023-10-23True0.7994320.842105&#9989;
2023-10-24False0.2199670.104167&#9989;
2023-10-25False0.3038410.242553&#9989;
2023-10-26False0.6974500.728070&#10060;
2023-10-27True0.7657890.842541&#9989;
2023-10-30True0.5110260.566138🟨&#11036;
2023-10-31True0.7888610.842975&#9989;
2023-11-01True0.7493670.843407&#9989;
2023-11-02True0.7141320.724891&#9989;
\n", "
" ], "text/plain": [ " True Predicted CalibPredicted Accuracy HTML\n", "2023-10-06 True 0.390290 0.339394 ❌ ❌\n", "2023-10-09 True 0.717766 0.730088 ✅ ✅\n", "2023-10-10 True 0.567903 0.566845 🟨 ⬜\n", "2023-10-11 False 0.416167 0.343373 🟨 ⬜\n", "2023-10-12 False 0.435582 0.341317 🟨 ⬜\n", "2023-10-13 True 0.754148 0.841667 ✅ ✅\n", "2023-10-16 False 0.363547 0.339286 ✅ ✅\n", "2023-10-17 False 0.214458 0.104895 ✅ ✅\n", "2023-10-18 False 0.558775 0.569149 🟨 ⬜\n", "2023-10-19 False 0.330018 0.243590 ✅ ✅\n", "2023-10-20 False 0.711180 0.731278 ❌ ❌\n", "2023-10-23 True 0.799432 0.842105 ✅ ✅\n", "2023-10-24 False 0.219967 0.104167 ✅ ✅\n", "2023-10-25 False 0.303841 0.242553 ✅ ✅\n", "2023-10-26 False 0.697450 0.728070 ❌ ❌\n", "2023-10-27 True 0.765789 0.842541 ✅ ✅\n", "2023-10-30 True 0.511026 0.566138 🟨 ⬜\n", "2023-10-31 True 0.788861 0.842975 ✅ ✅\n", "2023-11-01 True 0.749367 0.843407 ✅ ✅\n", "2023-11-02 True 0.714132 0.724891 ✅ ✅" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "perf_daily.tail(20)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "190" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_probas.loc[df_probas.index[0], 'NumObs']" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "df_levels = pd.DataFrame(\n", " index=['H2','H1','L1','L2'],\n", " columns=['Level','BreakPct(100)','TouchPct(100)'],\n", " data=[\n", " [f\"{data['H2'].iloc[-1]:.2f}\",f\"{data['H2BreakPct'].iloc[-2]:.1%}\",f\"{data['H2TouchPct'].iloc[-2]:.1%}\"],\n", " [f\"{data['H1'].iloc[-1]:.2f}\",f\"{data['H1BreakPct'].iloc[-2]:.1%}\",f\"{data['H1TouchPct'].iloc[-2]:.1%}\"],\n", " [f\"{data['L1'].iloc[-1]:.2f}\",f\"{data['L1BreakPct'].iloc[-2]:.1%}\",f\"{data['L1TouchPct'].iloc[-2]:.1%}\"],\n", " [f\"{data['L2'].iloc[-1]:.2f}\",f\"{data['L2BreakPct'].iloc[-2]:.1%}\",f\"{data['L2TouchPct'].iloc[-2]:.1%}\"]\n", " ]\n", ")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LevelBreakPct(100)TouchPct(100)
H24380.668.0%18.0%
H14359.5622.0%43.0%
L14306.0528.0%43.0%
L24285.4811.0%27.0%
\n", "
" ], "text/plain": [ " Level BreakPct(100) TouchPct(100)\n", "H2 4380.66 8.0% 18.0%\n", "H1 4359.56 22.0% 43.0%\n", "L1 4306.05 28.0% 43.0%\n", "L2 4285.48 11.0% 27.0%" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_levels" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AllHigh Confidence
N1328.001028.00
ROC AUC0.810.84
Calib. AUC0.790.81
Precision0.750.80
Recall0.800.84
\n", "
" ], "text/plain": [ " All High Confidence\n", "N 1328.00 1028.00\n", "ROC AUC 0.81 0.84\n", "Calib. AUC 0.79 0.81\n", "Precision 0.75 0.80\n", "Recall 0.80 0.84" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_performance" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'perf_daily' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[1;32md:\\Projects\\gamedayspx\\troubleshoot_day_model.ipynb Cell 28\u001b[0m line \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mpandas\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mpd\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mplotly\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mgraph_objs\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mgo\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m plot_data \u001b[39m=\u001b[39m perf_daily\u001b[39m.\u001b[39mmerge(data[[\u001b[39m'\u001b[39m\u001b[39mOpen\u001b[39m\u001b[39m'\u001b[39m,\u001b[39m'\u001b[39m\u001b[39mHigh\u001b[39m\u001b[39m'\u001b[39m,\u001b[39m'\u001b[39m\u001b[39mLow\u001b[39m\u001b[39m'\u001b[39m,\u001b[39m'\u001b[39m\u001b[39mClose\u001b[39m\u001b[39m'\u001b[39m]], left_index\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, right_index\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m)\n\u001b[0;32m 6\u001b[0m df \u001b[39m=\u001b[39m plot_data\u001b[39m.\u001b[39mcopy()\n\u001b[0;32m 8\u001b[0m y_min \u001b[39m=\u001b[39m df[\u001b[39m'\u001b[39m\u001b[39mLow\u001b[39m\u001b[39m'\u001b[39m]\u001b[39m.\u001b[39mtail(\u001b[39m50\u001b[39m)\u001b[39m.\u001b[39mmin() \u001b[39m-\u001b[39m \u001b[39m50\u001b[39m\n", "\u001b[1;31mNameError\u001b[0m: name 'perf_daily' is not defined" ] } ], "source": [ "import pandas as pd\n", "import plotly.graph_objs as go\n", "\n", "plot_data = perf_daily.merge(data[['Open','High','Low','Close']], left_index=True, right_index=True)\n", "\n", "df = plot_data.copy()\n", "\n", "y_min = df['Low'].tail(50).min() - 50\n", "y_max = df['High'].tail(50).max()\n", "\n", "increasing_color = '#3399ff' # Blue\n", "decreasing_color = '#ff5f5f' # Red \n", "\n", "# Create a candlestick trace\n", "candlestick_trace = go.Candlestick(\n", " x=df.index,\n", " open=df['Open'],\n", " high=df['High'],\n", " low=df['Low'],\n", " close=df['Close'],\n", " increasing_fillcolor=increasing_color, # Color for increasing candles\n", " increasing_line_color=increasing_color, # Color for increasing candles\n", " decreasing_fillcolor=decreasing_color, # Color for decreasing candles\n", " decreasing_line_color=decreasing_color, # Color for decreasing candles\n", " name='OHLC Chart'\n", ")\n", "\n", "# Create a scatter trace for symbols (correct and incorrect)\n", "scatter_trace = go.Scatter(\n", " x=df.index,\n", " y=df['Low'] * 0.995,\n", " text=df['HTML'],\n", " mode='text',\n", " marker=dict(size=10),\n", " textposition='bottom center',\n", " name='Predictions'\n", ")\n", "\n", "# Create a layout with initial x-axis range for the last 30 candles\n", "layout = go.Layout(\n", " title='OHLC Chart with Predictions (Right/Wrong)',\n", " xaxis=dict(title='Date', range=[df.index[-50], df.index[-1]]), # Set initial range to last 30 data points\n", " yaxis=dict(title='Price', range=[y_min, y_max]),\n", " xaxis_rangeslider_visible=False,\n", " template='plotly_dark',\n", " grid=False\n", ")\n", "\n", "# Create a figure\n", "fig = go.Figure(data=[candlestick_trace, scatter_trace], layout=layout)\n", "\n", "fig.update_xaxes(\n", " rangebreaks=[\n", " # NOTE: Below values are bound (not single values), ie. hide x to y\n", " dict(bounds=[\"sat\", \"mon\"]), # hide weekends, eg. hide sat to before mon\n", " dict(bounds=[16, 9.5], pattern=\"hour\"), # hide hours outside of 9.30am-4pm\n", " # dict(values=[\"2019-12-25\", \"2020-12-24\"]) # hide holidays (Christmas and New Year's, etc)\n", " ]\n", " )\n", "\n", "\n", "# Show the figure (you can also save it as an HTML file)\n", "fig.show()\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "close": [ 4239.9599609375, 4220.47998046875, 4224.47998046875, 4242.81005859375, 4253.72998046875, 4254.240234375, 4251.009765625, 4240.6201171875, 4236.77001953125, 4239.2998046875, 4246.52001953125, 4258.4599609375, 4263.6201171875, 4255.27001953125, 4248.4501953125, 4233.64990234375, 4233.93017578125, 4234.14990234375, 4245.75, 4239.7998046875, 4242.7900390625, 4254.2001953125, 4256.419921875, 4264.580078125, 4262.419921875, 4258.25, 4232.27978515625, 4242.759765625, 4251.2998046875, 4270.39013671875, 4301.66015625, 4295.2099609375, 4295.64990234375, 4307.2099609375, 4310.2900390625, 4317.43994140625, 4319.9599609375, 4321.0498046875, 4307.89013671875, 4302.009765625, 4296.60986328125, 4287.10986328125, 4300.22021484375, 4303.85009765625, 4305.41015625, 4302.5498046875, 4312.4501953125, 4334.419921875, 4337.58984375, 4339.06005859375, 4335.9599609375, 4335.85009765625, 4349.990234375, 4364.41015625, 4366.83984375, 4377.22021484375, 4383.06005859375, 4383.990234375, 4381.43994140625, 4367.1201171875, 4367.81982421875, 4361.0400390625, 4359.27978515625, 4360.85986328125, 4358.6298828125, 4368.56005859375, 4363.35986328125, 4368.330078125, 4357.740234375, 4358.22021484375, 4352.2001953125, 4354.91015625, 4350.2900390625, 4351.83984375, 4359.18994140625, 4363.419921875, 4367.759765625, 4376.7998046875, 4368.25, 4372.2099609375, 4374.52978515625, 4374.93994140625, 4378.06982421875, 4384.93017578125, 4378.14990234375, 4347.25, 4336.9501953125, 4338.64990234375, 4342.25, 4346.41015625, 4349.4501953125, 4371.990234375, 4357.43994140625, 4340.740234375, 4334, 4326.14990234375, 4341.6298828125, 4333.64990234375, 4314.919921875, 4326.60009765625, 4327.1201171875, 4328.6201171875, 4323.669921875, 4328.33984375, 4356.2001953125, 4371.43994140625, 4380.35986328125, 4377.919921875, 4372.330078125, 4373.35986328125, 4372.18994140625, 4368.97021484375, 4377.1201171875, 4372.2001953125, 4377.91015625, 4381.39013671875, 4371.93017578125, 4339.85986328125, 4359.7001953125, 4364.18994140625, 4372.10986328125, 4385.02001953125, 4393.009765625, 4380.6201171875, 4376.39990234375, 4361.56005859375, 4364.39013671875, 4359.02978515625, 4367.39990234375, 4372.97998046875, 4353.080078125, 4349.10009765625, 4338.16015625, 4341.31982421875, 4337.919921875, 4332.9599609375, 4327.93994140625, 4342.4599609375, 4337.830078125, 4333.39013671875, 4324.56982421875, 4316.77978515625, 4313.60009765625, 4320.0498046875, 4304.93994140625, 4301.56005859375, 4306.97021484375, 4312.2998046875, 4313.10009765625, 4322.64990234375, 4323.64013671875, 4307.31005859375, 4302.1201171875, 4281.91015625, 4277.77001953125, 4277.580078125, 4263.2900390625, 4245.10986328125, 4235.35986328125, 4234.8798828125, 4245.490234375, 4241.89013671875, 4254.759765625, 4253.02978515625, 4253.64013671875, 4238.10009765625, 4237.97998046875, 4235.35009765625, 4223.580078125, 4218, 4220.81005859375, 4225.58984375, 4235.8701171875, 4240.2998046875, 4240.240234375, 4254.89013671875, 4241.3798828125, 4241.43994140625, 4235.85009765625, 4238.81005859375, 4222.22998046875, 4217.60986328125, 4249.18017578125, 4255.240234375, 4253.56005859375, 4241.33984375, 4243.93017578125, 4227.2900390625, 4224.1201171875, 4232.89013671875, 4233.31005859375, 4241.02978515625, 4246.9501953125, 4252.0498046875, 4247.6201171875, 4212.2099609375, 4204.759765625, 4212.93017578125, 4220.919921875, 4206.75, 4203.60986328125, 4197.240234375, 4191.1201171875, 4188.31005859375, 4188.85009765625, 4188.2998046875, 4190.740234375, 4186.97998046875, 4164.9501953125, 4165.31982421875, 4174.7001953125, 4155.02978515625, 4156.7099609375, 4140.83984375, 4132.7099609375, 4133.22998046875, 4147.60986328125, 4152.72021484375, 4166.52978515625, 4153.43017578125, 4136.31982421875, 4143.5400390625, 4141.68994140625, 4145.85009765625, 4150.81005859375, 4145.31982421875, 4136.4599609375, 4129.1201171875, 4118.669921875, 4114.64990234375, 4108.9501953125, 4106.60009765625, 4115.7001953125, 4118.2998046875, 4159.830078125, 4140.2900390625, 4140.2001953125, 4140.06005859375, 4150.9599609375, 4144.31982421875, 4142.5, 4161.10009765625, 4167.2900390625, 4163.5, 4168.7099609375, 4172.9599609375, 4166.509765625, 4158.56005859375, 4168.02978515625, 4173.25, 4167.5400390625, 4175.14990234375, 4169.740234375, 4177.83984375, 4180.02978515625, 4189.1298828125, 4181.72998046875, 4191.8701171875, 4193.0400390625, 4193.35009765625, 4206.14990234375, 4222.759765625, 4223.240234375, 4214.259765625, 4217.72021484375, 4211.02001953125, 4208.02001953125, 4208.5, 4211.39013671875, 4215.080078125, 4224.08984375, 4239.25, 4237.60986328125, 4286.240234375, 4292.990234375, 4303.81982421875, 4298.169921875, 4298.81005859375, 4298.18017578125, 4302.02978515625, 4307.10009765625, 4313.60009765625, 4312.43994140625, 4313.5, 4313.60986328125, 4317.9599609375, 4358.240234375, 4348.8798828125, 4352.009765625, 4350.43994140625, 4360.490234375, 4366.43017578125, 4368.0400390625, 4361.39013671875, 4367.14990234375, 4368.0498046875, 4371.72998046875, 4365.39990234375, 4358.10986328125 ], "decreasing": { "fillcolor": "#ff5f5f", "line": { "color": "#ff5f5f" } }, "high": [ 4248.18994140625, 4242.77001953125, 4239.72998046875, 4243.72021484375, 4253.72998046875, 4255.9501953125, 4257.6201171875, 4251.490234375, 4242.9501953125, 4241.759765625, 4247.509765625, 4261.60009765625, 4268.5, 4266.5498046875, 4255.7998046875, 4248.77978515625, 4237.490234375, 4239.68017578125, 4245.97021484375, 4248.2900390625, 4242.85986328125, 4255.43017578125, 4259.39013671875, 4267.1298828125, 4265.41015625, 4263.419921875, 4243.22021484375, 4242.759765625, 4256.169921875, 4274.39013671875, 4301.89013671875, 4305.56982421875, 4300.0498046875, 4309.240234375, 4311.22021484375, 4317.490234375, 4324.10009765625, 4321.22998046875, 4322.31982421875, 4303.83984375, 4304.47021484375, 4298.3798828125, 4300.5, 4303.93994140625, 4313.02001953125, 4307.85986328125, 4312.64013671875, 4334.419921875, 4338.39013671875, 4341.72998046875, 4339.8701171875, 4336.08984375, 4349.990234375, 4365.72998046875, 4370.1201171875, 4379.64990234375, 4384.2001953125, 4385.4599609375, 4384.81982421875, 4381.4501953125, 4370.02001953125, 4369.35009765625, 4370.14990234375, 4364.580078125, 4363.35986328125, 4377.43994140625, 4369.6298828125, 4368.47021484375, 4371.330078125, 4363.35009765625, 4358.56982421875, 4355.97021484375, 4356.56005859375, 4352.72998046875, 4365.72021484375, 4365.97998046875, 4368.43017578125, 4378.64013671875, 4382.669921875, 4379.81005859375, 4375.259765625, 4381.2998046875, 4378.14990234375, 4385.85009765625, 4385.3701171875, 4378.2001953125, 4349.4501953125, 4339.5400390625, 4346.14013671875, 4351.2998046875, 4355.27001953125, 4377.10009765625, 4372.52001953125, 4363.31005859375, 4341.14013671875, 4339.06005859375, 4342.259765625, 4345.75, 4335.75, 4329.91015625, 4331.490234375, 4332.9599609375, 4336.5, 4329.22021484375, 4360.25, 4371.6298828125, 4380.6201171875, 4383.330078125, 4379.18994140625, 4374.66015625, 4374.64013671875, 4381.18017578125, 4378.080078125, 4379.33984375, 4377.91015625, 4381.41015625, 4382.02001953125, 4348.66015625, 4365.08984375, 4369.3798828125, 4373.64013671875, 4387.22021484375, 4393.009765625, 4393.56982421875, 4382.35986328125, 4376.25, 4366.52978515625, 4369.419921875, 4367.89013671875, 4373.2998046875, 4360.3798828125, 4364.2001953125, 4349.81982421875, 4348.25, 4345.2998046875, 4346.919921875, 4335.009765625, 4349.64990234375, 4342.68994140625, 4344.64013671875, 4337.72998046875, 4324.56005859375, 4320.08984375, 4326.0400390625, 4322.27978515625, 4308.10009765625, 4307.18994140625, 4319.1298828125, 4339.5400390625, 4325.66015625, 4335.3701171875, 4328.93994140625, 4311.66015625, 4302.22998046875, 4287.6298828125, 4285.60986328125, 4276.56005859375, 4265.56982421875, 4249.7099609375, 4243.14013671875, 4248.759765625, 4247.5400390625, 4255.7099609375, 4258.669921875, 4257.58984375, 4254.27978515625, 4244.31982421875, 4242.41015625, 4237.10009765625, 4218, 4227.64013671875, 4226.259765625, 4238.3701171875, 4241.6201171875, 4241.64990234375, 4254.89013671875, 4255.83984375, 4249.97998046875, 4244.6298828125, 4242.8701171875, 4242.35986328125, 4224.830078125, 4250.22998046875, 4255.240234375, 4259.3798828125, 4253.8798828125, 4243.97021484375, 4246.330078125, 4229.06982421875, 4232.93017578125, 4237.02001953125, 4241.06005859375, 4248.81982421875, 4252.81005859375, 4253.10009765625, 4232.419921875, 4213.14013671875, 4222.0400390625, 4225.3701171875, 4221.81005859375, 4207.08984375, 4208.5498046875, 4199.490234375, 4191.0400390625, 4193.919921875, 4191.68994140625, 4192.58984375, 4195.60009765625, 4183.60009765625, 4168.490234375, 4179.6298828125, 4176.7900390625, 4159.97998046875, 4156.7001953125, 4142.2001953125, 4142.3798828125, 4147.9599609375, 4153.5, 4166.52978515625, 4170.330078125, 4153.77001953125, 4155.83984375, 4151.68994140625, 4147, 4156.7001953125, 4151.33984375, 4146.4501953125, 4140.41015625, 4131.39990234375, 4121.83984375, 4120.14990234375, 4122.72021484375, 4115.9599609375, 4118.419921875, 4163.5, 4160.740234375, 4145.56005859375, 4151.27978515625, 4151.2900390625, 4152.77978515625, 4150.1201171875, 4162.240234375, 4167.75, 4167.66015625, 4173.22998046875, 4177.47021484375, 4174.4501953125, 4172.8701171875, 4172.8701171875, 4175.66015625, 4176.02978515625, 4175.16015625, 4175.2998046875, 4178.39013671875, 4181.740234375, 4189.89013671875, 4190.89990234375, 4192.6201171875, 4195.4599609375, 4195.5498046875, 4209.41015625, 4225.22021484375, 4229.330078125, 4226.5498046875, 4219.4501953125, 4217.759765625, 4214.0400390625, 4214.35009765625, 4212.580078125, 4219.16015625, 4226.93994140625, 4244.10986328125, 4245.64013671875, 4291.25, 4294.509765625, 4303.9599609375, 4304.35009765625, 4303.580078125, 4300.39013671875, 4306.02978515625, 4308.64990234375, 4314.68994140625, 4313.6298828125, 4315.240234375, 4316.169921875, 4319.72021484375, 4360.91015625, 4364.47021484375, 4352.18017578125, 4353.8701171875, 4362.27001953125, 4367.68017578125, 4368.8701171875, 4369.5400390625, 4369.02001953125, 4368.0498046875, 4372.25, 4373.6201171875, 4365.8798828125 ], "increasing": { "fillcolor": "#3399ff", "line": { "color": "#3399ff" } }, "low": [ 4233.830078125, 4220.47998046875, 4220.830078125, 4221.580078125, 4236.91015625, 4247.47021484375, 4249.35986328125, 4240.490234375, 4235.56005859375, 4231.85009765625, 4236.080078125, 4245.35986328125, 4256.97998046875, 4247.2900390625, 4241.39013671875, 4230.60986328125, 4225.91015625, 4229.7998046875, 4232.77001953125, 4237.14990234375, 4232.9501953125, 4238.830078125, 4253.2099609375, 4256.4599609375, 4256.22998046875, 4256.14013671875, 4223.9599609375, 4219.5498046875, 4242.56005859375, 4251.2099609375, 4270.81982421875, 4291.2998046875, 4290.35009765625, 4294.3701171875, 4304.16015625, 4307, 4316.18017578125, 4314.68994140625, 4307.52001953125, 4287.47021484375, 4290.66015625, 4283.7900390625, 4286.43994140625, 4296.14013671875, 4301.4599609375, 4299.43994140625, 4302.0498046875, 4312.47998046875, 4331.72021484375, 4330.8701171875, 4333.22021484375, 4329.14990234375, 4339.64013671875, 4350.06005859375, 4362.81982421875, 4365.240234375, 4376.39013671875, 4380.66015625, 4379.5498046875, 4360.4599609375, 4362.41015625, 4358.5400390625, 4356.7099609375, 4358.169921875, 4356.64990234375, 4366.58984375, 4360.2001953125, 4358.6298828125, 4356.580078125, 4355.740234375, 4350.27978515625, 4349.18017578125, 4347.31005859375, 4345.33984375, 4351.6201171875, 4359.08984375, 4362.72998046875, 4366.5498046875, 4364.52001953125, 4362.9501953125, 4365.35986328125, 4369.419921875, 4371.52001953125, 4375.83984375, 4376.75, 4346.9501953125, 4336.3701171875, 4325.43017578125, 4336.7099609375, 4342.35986328125, 4346.64013671875, 4360.490234375, 4354.919921875, 4339.22998046875, 4329.22998046875, 4323.81982421875, 4324.9501953125, 4329.419921875, 4314.419921875, 4311.97021484375, 4323.22021484375, 4320.919921875, 4322.27001953125, 4316.60009765625, 4342.3701171875, 4351.22021484375, 4371.4599609375, 4375.080078125, 4367.97998046875, 4369.8701171875, 4368.18994140625, 4356.83984375, 4367.72021484375, 4371.7001953125, 4369.35009765625, 4373.77001953125, 4371.64013671875, 4337.5400390625, 4338.97998046875, 4358.06982421875, 4362.52978515625, 4372.10009765625, 4384.56005859375, 4379.06982421875, 4375.259765625, 4359.14013671875, 4359.81005859375, 4355.60986328125, 4356.2900390625, 4361.580078125, 4348.14013671875, 4345.509765625, 4335.10986328125, 4335.3798828125, 4337.490234375, 4331.43994140625, 4326.9501953125, 4324, 4326.35986328125, 4331.60986328125, 4321.22998046875, 4315.4501953125, 4303.83984375, 4314.02978515625, 4304.93994140625, 4299.60986328125, 4297.919921875, 4305.77001953125, 4304.169921875, 4297.22998046875, 4318.75, 4302.7099609375, 4300.35986328125, 4278.7998046875, 4275.60986328125, 4269.68994140625, 4263.2900390625, 4244.33984375, 4234.52001953125, 4232.47998046875, 4230.990234375, 4235.06982421875, 4241.89013671875, 4243.14990234375, 4245.91015625, 4236.89990234375, 4234.580078125, 4229.66015625, 4223.02978515625, 4189.22021484375, 4213.9501953125, 4212.5, 4224.22998046875, 4232.08984375, 4231.10009765625, 4237.93017578125, 4238.39013671875, 4238.97021484375, 4232.419921875, 4233.10009765625, 4221.72998046875, 4214.330078125, 4235.7900390625, 4237.97998046875, 4250.7001953125, 4240.68017578125, 4237.740234375, 4225.83984375, 4219.43017578125, 4222.419921875, 4230.169921875, 4232.10986328125, 4241.240234375, 4244.14990234375, 4247.490234375, 4206.4599609375, 4201.240234375, 4203.4501953125, 4212.6298828125, 4206.75, 4200.06982421875, 4195.31005859375, 4189.56005859375, 4181.419921875, 4185.39013671875, 4182.83984375, 4183.85009765625, 4185.89013671875, 4163.64990234375, 4155.60986328125, 4154.919921875, 4153.18017578125, 4151.259765625, 4134.2001953125, 4132.3798828125, 4130.93994140625, 4127.89990234375, 4145, 4150.64013671875, 4153.2900390625, 4134.22998046875, 4137.77001953125, 4135.72021484375, 4130.39990234375, 4143.47021484375, 4139.83984375, 4132.14013671875, 4128.580078125, 4114.7900390625, 4112.669921875, 4107.5498046875, 4104.169921875, 4105.56982421875, 4103.77978515625, 4139.39013671875, 4137.22021484375, 4132.93994140625, 4135.06982421875, 4140.14990234375, 4144.10986328125, 4137.169921875, 4140.6201171875, 4157.14990234375, 4160.85986328125, 4163.509765625, 4167.5, 4165.85009765625, 4153.1201171875, 4153.2001953125, 4158.93017578125, 4166.8701171875, 4165.1201171875, 4163.43017578125, 4164.2099609375, 4174.509765625, 4180, 4181.72998046875, 4181.490234375, 4190.240234375, 4186.419921875, 4197.740234375, 4203.2099609375, 4221.60986328125, 4213.1298828125, 4213.18994140625, 4209.27001953125, 4204.1298828125, 4205, 4204.47021484375, 4204.22021484375, 4202.02001953125, 4224.2099609375, 4235.7998046875, 4268.259765625, 4278.39990234375, 4292.7099609375, 4293.39013671875, 4296.740234375, 4295.72998046875, 4297.31982421875, 4300.41015625, 4307.10986328125, 4308.5498046875, 4311.02001953125, 4311.75, 4313.41015625, 4334.22998046875, 4345.7099609375, 4343.58984375, 4346.2900390625, 4350.43017578125, 4359.740234375, 4364.9501953125, 4359.35009765625, 4360.3701171875, 4361.39013671875, 4365.75, 4364.35986328125, 4357.6201171875 ], "name": "OHLC Chart", "open": [ 4233.830078125, 4240.0498046875, 4220.85009765625, 4224.52001953125, 4242.52001953125, 4253.8798828125, 4254.27978515625, 4250.9599609375, 4240.68017578125, 4236.66015625, 4239.2001953125, 4246.52978515625, 4258.7001953125, 4259.31005859375, 4255.6298828125, 4248.43994140625, 4233.68017578125, 4233.919921875, 4234.10986328125, 4245.7099609375, 4239.83984375, 4242.72998046875, 4254.240234375, 4256.4599609375, 4264.5498046875, 4262.5, 4234.7900390625, 4232.4501953125, 4242.56005859375, 4251.2099609375, 4270.81982421875, 4301.8701171875, 4295.60986328125, 4295.7001953125, 4307.27001953125, 4310.31982421875, 4317.43994140625, 4319.97021484375, 4321.009765625, 4289.02001953125, 4302.14013671875, 4296.6298828125, 4287.1201171875, 4300.18994140625, 4303.81005859375, 4305.330078125, 4302.60986328125, 4312.47998046875, 4334.3798828125, 4337.6201171875, 4338.85986328125, 4336.06982421875, 4339.75, 4350.06005859375, 4364.2001953125, 4366.83984375, 4377.18017578125, 4383.08984375, 4384.06982421875, 4381.4501953125, 4367.14990234375, 4367.75, 4361.009765625, 4359.27001953125, 4360.83984375, 4366.58984375, 4368.81982421875, 4363.27001953125, 4368.31005859375, 4357.72021484375, 4358.2099609375, 4352.18017578125, 4354.830078125, 4350.27978515625, 4351.8701171875, 4359.2998046875, 4363.490234375, 4367.6298828125, 4380.93994140625, 4368.080078125, 4372.2998046875, 4374.5, 4374.8798828125, 4378.080078125, 4384.89990234375, 4378.2001953125, 4347.25, 4336.9501953125, 4338.60986328125, 4342.4501953125, 4346.64990234375, 4360.490234375, 4372.52001953125, 4357.330078125, 4340.77001953125, 4334, 4326.1298828125, 4341.60009765625, 4333.759765625, 4314.89990234375, 4326.60986328125, 4327.06982421875, 4328.60986328125, 4323.7099609375, 4342.3701171875, 4356.52001953125, 4371.4599609375, 4380.43994140625, 4378.009765625, 4372.330078125, 4373.33984375, 4372.240234375, 4368.97998046875, 4377.1201171875, 4372.18017578125, 4377.830078125, 4381.35986328125, 4345.22998046875, 4339.8701171875, 4359.68994140625, 4364.2099609375, 4372.10009765625, 4385.0498046875, 4393, 4380.60986328125, 4376.25, 4361.56005859375, 4364.3798828125, 4358.759765625, 4367.39990234375, 4357.35009765625, 4353.02001953125, 4349.14990234375, 4338.0400390625, 4341.31982421875, 4337.85009765625, 4332.93017578125, 4327.93994140625, 4342.68994140625, 4337.68017578125, 4333.330078125, 4324.56005859375, 4316.919921875, 4321.35986328125, 4320.1298828125, 4303.419921875, 4301.4501953125, 4307.02978515625, 4312.27001953125, 4313.02001953125, 4322.60009765625, 4323.66015625, 4307.18017578125, 4302.22998046875, 4281.72998046875, 4278.72998046875, 4273.85009765625, 4263.39990234375, 4245.18994140625, 4235.3701171875, 4234.81982421875, 4245.5400390625, 4241.89013671875, 4254.7900390625, 4253.169921875, 4253.81005859375, 4238.10986328125, 4238.02001953125, 4235.18994140625, 4210.39990234375, 4218.18994140625, 4220.56005859375, 4225.64990234375, 4235.8798828125, 4240.2900390625, 4239.919921875, 4255.43994140625, 4241.080078125, 4241.4501953125, 4235.83984375, 4238.89013671875, 4222.31005859375, 4235.7900390625, 4250.35009765625, 4255.39013671875, 4253.580078125, 4241.3798828125, 4243.93994140625, 4227.22021484375, 4224.10009765625, 4232.990234375, 4233.33984375, 4241.240234375, 4246.97021484375, 4252.0400390625, 4232.419921875, 4213.14013671875, 4204.7998046875, 4212.85009765625, 4220.8701171875, 4206.7998046875, 4203.64013671875, 4197.22998046875, 4191.0400390625, 4188.2998046875, 4188.81005859375, 4188.2998046875, 4190.8701171875, 4175.990234375, 4165.35009765625, 4165.330078125, 4174.66015625, 4154.89990234375, 4156.7001953125, 4140.85009765625, 4132.740234375, 4133.169921875, 4147.60986328125, 4153.1298828125, 4166.56982421875, 4153.27001953125, 4152.93017578125, 4145.3701171875, 4141.58984375, 4146.009765625, 4150.7900390625, 4145.56005859375, 4136.43994140625, 4129.14990234375, 4118.68017578125, 4115, 4109.10986328125, 4106.6298828125, 4115.52001953125, 4139.39013671875, 4159.9501953125, 4140.39990234375, 4140.66015625, 4140.14990234375, 4150.83984375, 4144.35986328125, 4142.47998046875, 4161.14013671875, 4167.3701171875, 4163.509765625, 4168.77001953125, 4172.9599609375, 4171.330078125, 4158.22021484375, 4167.93994140625, 4173.490234375, 4167.6201171875, 4175.27001953125, 4169.6298828125, 4177.81005859375, 4180, 4189.14990234375, 4181.56005859375, 4191.81982421875, 4193.009765625, 4201.27001953125, 4205.990234375, 4222.72021484375, 4223.31005859375, 4214.31005859375, 4217.759765625, 4211.009765625, 4208.06005859375, 4208.509765625, 4211.2998046875, 4214.9501953125, 4224.2099609375, 4239.22998046875, 4268.259765625, 4286.2998046875, 4293.0400390625, 4303.97021484375, 4298.1201171875, 4298.83984375, 4298.14013671875, 4302.009765625, 4307.10986328125, 4313.60986328125, 4312.4599609375, 4313.47998046875, 4313.669921875, 4334.22998046875, 4358.08984375, 4349.06982421875, 4352.0400390625, 4350.43017578125, 4360.4501953125, 4366.35009765625, 4368.02978515625, 4361.3798828125, 4367.14990234375, 4368.009765625, 4371.7099609375, 4365.39990234375 ], "type": "candlestick", "x": [ "2023-10-04T09:30:00-04:00", "2023-10-04T10:00:00-04:00", "2023-10-04T10:30:00-04:00", "2023-10-04T11:00:00-04:00", "2023-10-04T11:30:00-04:00", "2023-10-04T12:00:00-04:00", "2023-10-04T12:30:00-04:00", "2023-10-04T13:00:00-04:00", "2023-10-04T13:30:00-04:00", "2023-10-04T14:00:00-04:00", "2023-10-04T14:30:00-04:00", "2023-10-04T15:00:00-04:00", "2023-10-04T15:30:00-04:00", "2023-10-05T09:30:00-04:00", "2023-10-05T10:00:00-04:00", "2023-10-05T10:30:00-04:00", "2023-10-05T11:00:00-04:00", "2023-10-05T11:30:00-04:00", "2023-10-05T12:00:00-04:00", "2023-10-05T12:30:00-04:00", "2023-10-05T13:00:00-04:00", "2023-10-05T13:30:00-04:00", "2023-10-05T14:00:00-04:00", "2023-10-05T14:30:00-04:00", "2023-10-05T15:00:00-04:00", "2023-10-05T15:30:00-04:00", "2023-10-06T09:30:00-04:00", "2023-10-06T10:00:00-04:00", "2023-10-06T10:30:00-04:00", "2023-10-06T11:00:00-04:00", "2023-10-06T11:30:00-04:00", "2023-10-06T12:00:00-04:00", "2023-10-06T12:30:00-04:00", "2023-10-06T13:00:00-04:00", "2023-10-06T13:30:00-04:00", "2023-10-06T14:00:00-04:00", "2023-10-06T14:30:00-04:00", "2023-10-06T15:00:00-04:00", "2023-10-06T15:30:00-04:00", "2023-10-09T09:30:00-04:00", "2023-10-09T10:00:00-04:00", "2023-10-09T10:30:00-04:00", "2023-10-09T11:00:00-04:00", "2023-10-09T11:30:00-04:00", "2023-10-09T12:00:00-04:00", "2023-10-09T12:30:00-04:00", "2023-10-09T13:00:00-04:00", "2023-10-09T13:30:00-04:00", "2023-10-09T14:00:00-04:00", "2023-10-09T14:30:00-04:00", "2023-10-09T15:00:00-04:00", "2023-10-09T15:30:00-04:00", "2023-10-10T09:30:00-04:00", "2023-10-10T10:00:00-04:00", "2023-10-10T10:30:00-04:00", "2023-10-10T11:00:00-04:00", "2023-10-10T11:30:00-04:00", "2023-10-10T12:00:00-04:00", "2023-10-10T12:30:00-04:00", "2023-10-10T13:00:00-04:00", "2023-10-10T13:30:00-04:00", "2023-10-10T14:00:00-04:00", "2023-10-10T14:30:00-04:00", "2023-10-10T15:00:00-04:00", "2023-10-10T15:30:00-04:00", "2023-10-11T09:30:00-04:00", "2023-10-11T10:00:00-04:00", "2023-10-11T10:30:00-04:00", "2023-10-11T11:00:00-04:00", "2023-10-11T11:30:00-04:00", "2023-10-11T12:00:00-04:00", "2023-10-11T12:30:00-04:00", "2023-10-11T13:00:00-04:00", "2023-10-11T13:30:00-04:00", "2023-10-11T14:00:00-04:00", "2023-10-11T14:30:00-04:00", "2023-10-11T15:00:00-04:00", "2023-10-11T15:30:00-04:00", "2023-10-12T09:30:00-04:00", "2023-10-12T10:00:00-04:00", "2023-10-12T10:30:00-04:00", "2023-10-12T11:00:00-04:00", "2023-10-12T11:30:00-04:00", "2023-10-12T12:00:00-04:00", "2023-10-12T12:30:00-04:00", "2023-10-12T13:00:00-04:00", "2023-10-12T13:30:00-04:00", "2023-10-12T14:00:00-04:00", "2023-10-12T14:30:00-04:00", "2023-10-12T15:00:00-04:00", "2023-10-12T15:30:00-04:00", "2023-10-13T09:30:00-04:00", "2023-10-13T10:00:00-04:00", "2023-10-13T10:30:00-04:00", "2023-10-13T11:00:00-04:00", "2023-10-13T11:30:00-04:00", "2023-10-13T12:00:00-04:00", "2023-10-13T12:30:00-04:00", "2023-10-13T13:00:00-04:00", "2023-10-13T13:30:00-04:00", "2023-10-13T14:00:00-04:00", "2023-10-13T14:30:00-04:00", "2023-10-13T15:00:00-04:00", "2023-10-13T15:30:00-04:00", "2023-10-16T09:30:00-04:00", "2023-10-16T10:00:00-04:00", "2023-10-16T10:30:00-04:00", "2023-10-16T11:00:00-04:00", "2023-10-16T11:30:00-04:00", "2023-10-16T12:00:00-04:00", "2023-10-16T12:30:00-04:00", "2023-10-16T13:00:00-04:00", "2023-10-16T13:30:00-04:00", "2023-10-16T14:00:00-04:00", "2023-10-16T14:30:00-04:00", "2023-10-16T15:00:00-04:00", "2023-10-16T15:30:00-04:00", "2023-10-17T09:30:00-04:00", "2023-10-17T10:00:00-04:00", "2023-10-17T10:30:00-04:00", "2023-10-17T11:00:00-04:00", "2023-10-17T11:30:00-04:00", "2023-10-17T12:00:00-04:00", "2023-10-17T12:30:00-04:00", "2023-10-17T13:00:00-04:00", "2023-10-17T13:30:00-04:00", "2023-10-17T14:00:00-04:00", "2023-10-17T14:30:00-04:00", "2023-10-17T15:00:00-04:00", "2023-10-17T15:30:00-04:00", "2023-10-18T09:30:00-04:00", "2023-10-18T10:00:00-04:00", "2023-10-18T10:30:00-04:00", "2023-10-18T11:00:00-04:00", "2023-10-18T11:30:00-04:00", "2023-10-18T12:00:00-04:00", "2023-10-18T12:30:00-04:00", "2023-10-18T13:00:00-04:00", "2023-10-18T13:30:00-04:00", "2023-10-18T14:00:00-04:00", "2023-10-18T14:30:00-04:00", "2023-10-18T15:00:00-04:00", "2023-10-18T15:30:00-04:00", "2023-10-19T09:30:00-04:00", "2023-10-19T10:00:00-04:00", "2023-10-19T10:30:00-04:00", "2023-10-19T11:00:00-04:00", "2023-10-19T11:30:00-04:00", "2023-10-19T12:00:00-04:00", "2023-10-19T12:30:00-04:00", "2023-10-19T13:00:00-04:00", "2023-10-19T13:30:00-04:00", "2023-10-19T14:00:00-04:00", "2023-10-19T14:30:00-04:00", "2023-10-19T15:00:00-04:00", "2023-10-19T15:30:00-04:00", "2023-10-20T09:30:00-04:00", "2023-10-20T10:00:00-04:00", "2023-10-20T10:30:00-04:00", "2023-10-20T11:00:00-04:00", "2023-10-20T11:30:00-04:00", "2023-10-20T12:00:00-04:00", "2023-10-20T12:30:00-04:00", "2023-10-20T13:00:00-04:00", "2023-10-20T13:30:00-04:00", "2023-10-20T14:00:00-04:00", "2023-10-20T14:30:00-04:00", "2023-10-20T15:00:00-04:00", "2023-10-20T15:30:00-04:00", "2023-10-23T09:30:00-04:00", "2023-10-23T10:00:00-04:00", "2023-10-23T10:30:00-04:00", "2023-10-23T11:00:00-04:00", "2023-10-23T11:30:00-04:00", "2023-10-23T12:00:00-04:00", "2023-10-23T12:30:00-04:00", "2023-10-23T13:00:00-04:00", "2023-10-23T13:30:00-04:00", "2023-10-23T14:00:00-04:00", "2023-10-23T14:30:00-04:00", "2023-10-23T15:00:00-04:00", "2023-10-23T15:30:00-04:00", "2023-10-24T09:30:00-04:00", "2023-10-24T10:00:00-04:00", "2023-10-24T10:30:00-04:00", "2023-10-24T11:00:00-04:00", "2023-10-24T11:30:00-04:00", "2023-10-24T12:00:00-04:00", "2023-10-24T12:30:00-04:00", "2023-10-24T13:00:00-04:00", "2023-10-24T13:30:00-04:00", "2023-10-24T14:00:00-04:00", "2023-10-24T14:30:00-04:00", "2023-10-24T15:00:00-04:00", "2023-10-24T15:30:00-04:00", "2023-10-25T09:30:00-04:00", "2023-10-25T10:00:00-04:00", "2023-10-25T10:30:00-04:00", "2023-10-25T11:00:00-04:00", "2023-10-25T11:30:00-04:00", "2023-10-25T12:00:00-04:00", "2023-10-25T12:30:00-04:00", "2023-10-25T13:00:00-04:00", "2023-10-25T13:30:00-04:00", "2023-10-25T14:00:00-04:00", "2023-10-25T14:30:00-04:00", "2023-10-25T15:00:00-04:00", "2023-10-25T15:30:00-04:00", "2023-10-26T09:30:00-04:00", "2023-10-26T10:00:00-04:00", "2023-10-26T10:30:00-04:00", "2023-10-26T11:00:00-04:00", "2023-10-26T11:30:00-04:00", "2023-10-26T12:00:00-04:00", "2023-10-26T12:30:00-04:00", "2023-10-26T13:00:00-04:00", "2023-10-26T13:30:00-04:00", "2023-10-26T14:00:00-04:00", "2023-10-26T14:30:00-04:00", "2023-10-26T15:00:00-04:00", "2023-10-26T15:30:00-04:00", "2023-10-27T09:30:00-04:00", "2023-10-27T10:00:00-04:00", "2023-10-27T10:30:00-04:00", "2023-10-27T11:00:00-04:00", "2023-10-27T11:30:00-04:00", "2023-10-27T12:00:00-04:00", "2023-10-27T12:30:00-04:00", "2023-10-27T13:00:00-04:00", "2023-10-27T13:30:00-04:00", "2023-10-27T14:00:00-04:00", "2023-10-27T14:30:00-04:00", "2023-10-27T15:00:00-04:00", "2023-10-27T15:30:00-04:00", "2023-10-30T09:30:00-04:00", "2023-10-30T10:00:00-04:00", "2023-10-30T10:30:00-04:00", "2023-10-30T11:00:00-04:00", "2023-10-30T11:30:00-04:00", "2023-10-30T12:00:00-04:00", "2023-10-30T12:30:00-04:00", "2023-10-30T13:00:00-04:00", "2023-10-30T13:30:00-04:00", "2023-10-30T14:00:00-04:00", "2023-10-30T14:30:00-04:00", "2023-10-30T15:00:00-04:00", "2023-10-30T15:30:00-04:00", "2023-10-31T09:30:00-04:00", "2023-10-31T10:00:00-04:00", "2023-10-31T10:30:00-04:00", "2023-10-31T11:00:00-04:00", "2023-10-31T11:30:00-04:00", "2023-10-31T12:00:00-04:00", "2023-10-31T12:30:00-04:00", "2023-10-31T13:00:00-04:00", "2023-10-31T13:30:00-04:00", "2023-10-31T14:00:00-04:00", "2023-10-31T14:30:00-04:00", "2023-10-31T15:00:00-04:00", "2023-10-31T15:30:00-04:00", "2023-11-01T09:30:00-04:00", "2023-11-01T10:00:00-04:00", "2023-11-01T10:30:00-04:00", "2023-11-01T11:00:00-04:00", "2023-11-01T11:30:00-04:00", "2023-11-01T12:00:00-04:00", "2023-11-01T12:30:00-04:00", "2023-11-01T13:00:00-04:00", "2023-11-01T13:30:00-04:00", "2023-11-01T14:00:00-04:00", "2023-11-01T14:30:00-04:00", "2023-11-01T15:00:00-04:00", "2023-11-01T15:30:00-04:00", "2023-11-02T09:30:00-04:00", "2023-11-02T10:00:00-04:00", "2023-11-02T10:30:00-04:00", "2023-11-02T11:00:00-04:00", "2023-11-02T11:30:00-04:00", "2023-11-02T12:00:00-04:00", "2023-11-02T12:30:00-04:00", "2023-11-02T13:00:00-04:00", "2023-11-02T13:30:00-04:00", "2023-11-02T14:00:00-04:00", "2023-11-02T14:30:00-04:00", "2023-11-02T15:00:00-04:00", "2023-11-02T15:30:00-04:00", "2023-11-03T09:30:00-04:00", "2023-11-03T10:00:00-04:00", "2023-11-03T10:30:00-04:00", "2023-11-03T11:00:00-04:00", "2023-11-03T11:30:00-04:00", "2023-11-03T12:00:00-04:00", "2023-11-03T12:30:00-04:00", "2023-11-03T13:00:00-04:00", "2023-11-03T13:30:00-04:00", "2023-11-03T14:00:00-04:00", "2023-11-03T14:30:00-04:00", "2023-11-03T15:00:00-04:00", "2023-11-03T15:30:00-04:00" ] } ], "layout": { "template": { "data": { "bar": [ { "error_x": { "color": "#f2f5fa" }, "error_y": { "color": "#f2f5fa" }, "marker": { "line": { "color": "rgb(17,17,17)", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "rgb(17,17,17)", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#A2B1C6", "gridcolor": "#506784", "linecolor": "#506784", "minorgridcolor": "#506784", "startlinecolor": "#A2B1C6" }, "baxis": { "endlinecolor": "#A2B1C6", "gridcolor": "#506784", "linecolor": "#506784", "minorgridcolor": "#506784", "startlinecolor": "#A2B1C6" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "line": { "color": "#283442" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "line": { "color": "#283442" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#506784" }, "line": { "color": "rgb(17,17,17)" } }, "header": { "fill": { "color": "#2a3f5f" }, "line": { "color": "rgb(17,17,17)" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#f2f5fa", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#f2f5fa" }, "geo": { "bgcolor": "rgb(17,17,17)", "lakecolor": "rgb(17,17,17)", "landcolor": "rgb(17,17,17)", "showlakes": true, "showland": true, "subunitcolor": "#506784" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "dark" }, "paper_bgcolor": "rgb(17,17,17)", "plot_bgcolor": "rgb(17,17,17)", "polar": { "angularaxis": { "gridcolor": "#506784", "linecolor": "#506784", "ticks": "" }, "bgcolor": "rgb(17,17,17)", "radialaxis": { "gridcolor": "#506784", "linecolor": "#506784", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", "zerolinecolor": "#C8D4E3" }, "yaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", "zerolinecolor": "#C8D4E3" }, "zaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", "zerolinecolor": "#C8D4E3" } }, "shapedefaults": { "line": { "color": "#f2f5fa" } }, "sliderdefaults": { "bgcolor": "#C8D4E3", "bordercolor": "rgb(17,17,17)", "borderwidth": 1, "tickwidth": 0 }, "ternary": { "aaxis": { "gridcolor": "#506784", "linecolor": "#506784", "ticks": "" }, "baxis": { "gridcolor": "#506784", "linecolor": "#506784", "ticks": "" }, "bgcolor": "rgb(17,17,17)", "caxis": { "gridcolor": "#506784", "linecolor": "#506784", "ticks": "" } }, "title": { "x": 0.05 }, "updatemenudefaults": { "bgcolor": "#506784", "borderwidth": 0 }, "xaxis": { "automargin": true, "gridcolor": "#283442", "linecolor": "#506784", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#283442", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "#283442", "linecolor": "#506784", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#283442", "zerolinewidth": 2 } } }, "title": { "text": "OHLC Chart with Predictions (Right/Wrong)" }, "xaxis": { "range": [ "2023-11-01T14:00:00-04:00", "2023-11-03T15:30:00-04:00" ], "rangebreaks": [ { "bounds": [ "sat", "mon" ] }, { "bounds": [ 16, 9.5 ], "pattern": "hour" } ], "rangeslider": { "visible": true }, "title": { "text": "Date" } }, "yaxis": { "range": [ 4172.02001953125, 4373.6201171875 ], "title": { "text": "Price" } } } } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import plotly.graph_objs as go\n", "import yfinance as yf\n", "\n", "spx = yf.Ticker('^GSPC')\n", "df = spx.history(interval='30m')\n", "\n", "# plot_data = perf_daily.merge(data[['Open','High','Low','Close']], left_index=True, right_index=True)\n", "\n", "# df = plot_data.copy()\n", "\n", "y_min = df['Low'].tail(30).min() - 30\n", "y_max = df['High'].tail(30).max()\n", "\n", "increasing_color = '#3399ff' # Blue\n", "decreasing_color = '#ff5f5f' # Red \n", "\n", "# Create a candlestick trace\n", "candlestick_trace = go.Candlestick(\n", " x=df.index,\n", " open=df['Open'],\n", " high=df['High'],\n", " low=df['Low'],\n", " close=df['Close'],\n", " increasing_fillcolor=increasing_color, # Color for increasing candles\n", " increasing_line_color=increasing_color, # Color for increasing candles\n", " decreasing_fillcolor=decreasing_color, # Color for decreasing candles\n", " decreasing_line_color=decreasing_color, # Color for decreasing candles\n", " name='OHLC Chart'\n", ")\n", "\n", "# Create a layout with initial x-axis range for the last 30 candles\n", "layout = go.Layout(\n", " title='OHLC Chart with Predictions (Right/Wrong)',\n", " xaxis=dict(title='Date', range=[df.index[-30], df.index[-1]]), # Set initial range to last 30 data points\n", " yaxis=dict(title='Price', range=[y_min, y_max]),\n", " xaxis_rangeslider_visible=True,\n", " template='plotly_dark'\n", ")\n", "\n", "# Create a figure\n", "fig = go.Figure(data=[candlestick_trace], layout=layout)\n", "\n", "fig.update_xaxes(\n", " rangebreaks=[\n", " # NOTE: Below values are bound (not single values), ie. hide x to y\n", " dict(bounds=[\"sat\", \"mon\"]), # hide weekends, eg. hide sat to before mon\n", " dict(bounds=[16, 9.5], pattern=\"hour\"), # hide hours outside of 9.30am-4pm\n", " # dict(values=[\"2019-12-25\", \"2020-12-24\"]) # hide holidays (Christmas and New Year's, etc)\n", " ]\n", " )\n", "\n", "\n", "# Show the figure (you can also save it as an HTML file)\n", "fig.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "XXX" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "ename": "KeyError", "evalue": "'Unrecognized kwarg=\"figcolor\"'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", "\u001b[1;32md:\\Projects\\gamedayspx\\troubleshoot_day_model.ipynb Cell 32\u001b[0m line \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m decreasing_color \u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39m#ff5f5f\u001b[39m\u001b[39m'\u001b[39m \u001b[39m# Red for decreasing candles\u001b[39;00m\n\u001b[0;32m 11\u001b[0m \u001b[39m# Create a custom marketcolors configuration\u001b[39;00m\n\u001b[1;32m---> 12\u001b[0m mc \u001b[39m=\u001b[39m mpf\u001b[39m.\u001b[39;49mmake_marketcolors(\n\u001b[0;32m 13\u001b[0m up\u001b[39m=\u001b[39;49mincreasing_color,\n\u001b[0;32m 14\u001b[0m down\u001b[39m=\u001b[39;49mdecreasing_color,\n\u001b[0;32m 15\u001b[0m figcolor\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39m#000000\u001b[39;49m\u001b[39m'\u001b[39;49m,\n\u001b[0;32m 16\u001b[0m inherit\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m\n\u001b[0;32m 17\u001b[0m )\n\u001b[0;32m 19\u001b[0m \u001b[39m# Create a custom style configuration\u001b[39;00m\n\u001b[0;32m 20\u001b[0m s \u001b[39m=\u001b[39m mpf\u001b[39m.\u001b[39mmake_mpf_style(marketcolors\u001b[39m=\u001b[39mmc)\n", "File \u001b[1;32mc:\\Users\\WINSTON-ITX\\anaconda3\\envs\\py39\\lib\\site-packages\\mplfinance\\_styles.py:299\u001b[0m, in \u001b[0;36mmake_marketcolors\u001b[1;34m(**kwargs)\u001b[0m\n\u001b[0;32m 282\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mmake_marketcolors\u001b[39m(\u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m 283\u001b[0m \u001b[39m \u001b[39m\u001b[39m'''\u001b[39;00m\n\u001b[0;32m 284\u001b[0m \u001b[39m Create a 'marketcolors' dict that is structured as expected\u001b[39;00m\n\u001b[0;32m 285\u001b[0m \u001b[39m by mplfinance._styles code:\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 296\u001b[0m \u001b[39m if volume == \"inherit\" then use up/down colors.\u001b[39;00m\n\u001b[0;32m 297\u001b[0m \u001b[39m '''\u001b[39;00m\n\u001b[1;32m--> 299\u001b[0m config \u001b[39m=\u001b[39m _process_kwargs(kwargs, _valid_make_marketcolors_kwargs())\n\u001b[0;32m 301\u001b[0m \u001b[39mif\u001b[39;00m config[\u001b[39m'\u001b[39m\u001b[39mbase_mpf_style\u001b[39m\u001b[39m'\u001b[39m] \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 302\u001b[0m style \u001b[39m=\u001b[39m _get_mpfstyle(config[\u001b[39m'\u001b[39m\u001b[39mbase_mpf_style\u001b[39m\u001b[39m'\u001b[39m])\n", "File \u001b[1;32mc:\\Users\\WINSTON-ITX\\anaconda3\\envs\\py39\\lib\\site-packages\\mplfinance\\_arg_validators.py:339\u001b[0m, in \u001b[0;36m_process_kwargs\u001b[1;34m(kwargs, vkwargs)\u001b[0m\n\u001b[0;32m 337\u001b[0m \u001b[39mfor\u001b[39;00m key \u001b[39min\u001b[39;00m kwargs\u001b[39m.\u001b[39mkeys():\n\u001b[0;32m 338\u001b[0m \u001b[39mif\u001b[39;00m key \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m vkwargs:\n\u001b[1;32m--> 339\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39mUnrecognized kwarg=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m\u001b[39m+\u001b[39m\u001b[39mstr\u001b[39m(key)\u001b[39m+\u001b[39m\u001b[39m'\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 340\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 341\u001b[0m value \u001b[39m=\u001b[39m kwargs[key]\n", "\u001b[1;31mKeyError\u001b[0m: 'Unrecognized kwarg=\"figcolor\"'" ] } ], "source": [ "import yfinance as yf\n", "import mplfinance as mpf\n", "\n", "spx = yf.Ticker('^GSPC')\n", "df = spx.history(interval='30m')\n", "\n", "# Define colors\n", "increasing_color = '#3399ff' # Blue for increasing candles\n", "decreasing_color = '#ff5f5f' # Red for decreasing candles\n", "\n", "# Create a custom marketcolors configuration\n", "mc = mpf.make_marketcolors(\n", " up=increasing_color,\n", " down=decreasing_color,\n", " figcolor='#000000',\n", " inherit=True\n", ")\n", "\n", "# Create a custom style configuration\n", "s = mpf.make_mpf_style(marketcolors=mc)\n", "\n", "# Define the time frame for the last 30 candles\n", "df1 = df.tail(30)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "\n", "up_lines = pd.DataFrame(index=df1.index)\n", "down_lines = pd.DataFrame(index=df1.index)\n", "up_lines['H2'] = float(df_levels.loc['H2','Level'])\n", "up_lines['H1'] = float(df_levels.loc['H1','Level'])\n", "down_lines['L1'] = float(df_levels.loc['L1','Level'])\n", "down_lines['L2'] = float(df_levels.loc['L2','Level'])\n" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "ename": "KeyError", "evalue": "'Unrecognized kwarg=\"figcolor\"'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", "\u001b[1;32md:\\Projects\\gamedayspx\\troubleshoot_day_model.ipynb Cell 34\u001b[0m line \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# Create an OHLC chart with mplfinance\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m mpf\u001b[39m.\u001b[39;49mplot(\n\u001b[0;32m 3\u001b[0m df1,\n\u001b[0;32m 4\u001b[0m \u001b[39mtype\u001b[39;49m\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mcandle\u001b[39;49m\u001b[39m'\u001b[39;49m, \u001b[39m# Candlestick chart type\u001b[39;49;00m\n\u001b[0;32m 5\u001b[0m \u001b[39m# style='nightclouds', # Use the custom style\u001b[39;49;00m\n\u001b[0;32m 6\u001b[0m figcolor\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39m#000000\u001b[39;49m\u001b[39m'\u001b[39;49m,\n\u001b[0;32m 7\u001b[0m title\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mOHLC 30 Minute\u001b[39;49m\u001b[39m'\u001b[39;49m,\n\u001b[0;32m 8\u001b[0m ylabel\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mPrice\u001b[39;49m\u001b[39m'\u001b[39;49m,\n\u001b[0;32m 9\u001b[0m volume\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m, \u001b[39m# Disable volume bars\u001b[39;49;00m\n\u001b[0;32m 10\u001b[0m xrotation\u001b[39m=\u001b[39;49m\u001b[39m0\u001b[39;49m, \u001b[39m# Rotate x-axis labels if needed\u001b[39;49;00m\n\u001b[0;32m 11\u001b[0m figratio\u001b[39m=\u001b[39;49m(\u001b[39m8\u001b[39;49m, \u001b[39m4\u001b[39;49m), \u001b[39m# Adjust the figure size as needed\u001b[39;49;00m\n\u001b[0;32m 12\u001b[0m addplot\u001b[39m=\u001b[39;49m[\n\u001b[0;32m 13\u001b[0m mpf\u001b[39m.\u001b[39;49mmake_addplot(down_lines, color\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39m#3399ff\u001b[39;49m\u001b[39m'\u001b[39;49m, linestyle\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39msolid\u001b[39;49m\u001b[39m'\u001b[39;49m, width\u001b[39m=\u001b[39;49m\u001b[39m1\u001b[39;49m, secondary_y\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m),\n\u001b[0;32m 14\u001b[0m mpf\u001b[39m.\u001b[39;49mmake_addplot(up_lines, color\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39m#ff5f5f\u001b[39;49m\u001b[39m'\u001b[39;49m, linestyle\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39msolid\u001b[39;49m\u001b[39m'\u001b[39;49m, width\u001b[39m=\u001b[39;49m\u001b[39m1\u001b[39;49m, secondary_y\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m),\n\u001b[0;32m 15\u001b[0m ]\n\u001b[0;32m 16\u001b[0m )\n", "File \u001b[1;32mc:\\Users\\WINSTON-ITX\\anaconda3\\envs\\py39\\lib\\site-packages\\mplfinance\\plotting.py:412\u001b[0m, in \u001b[0;36mplot\u001b[1;34m(data, **kwargs)\u001b[0m\n\u001b[0;32m 402\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mplot\u001b[39m( data, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs ):\n\u001b[0;32m 403\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 404\u001b[0m \u001b[39m Given a Pandas DataFrame containing columns Open,High,Low,Close and optionally Volume\u001b[39;00m\n\u001b[0;32m 405\u001b[0m \u001b[39m with a DatetimeIndex, plot the data.\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 409\u001b[0m \u001b[39m Also provide ability to plot trading signals, and/or addtional user-defined data.\u001b[39;00m\n\u001b[0;32m 410\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 412\u001b[0m config \u001b[39m=\u001b[39m _process_kwargs(kwargs, _valid_plot_kwargs())\n\u001b[0;32m 414\u001b[0m \u001b[39m# translate alias types:\u001b[39;00m\n\u001b[0;32m 415\u001b[0m config[\u001b[39m'\u001b[39m\u001b[39mtype\u001b[39m\u001b[39m'\u001b[39m] \u001b[39m=\u001b[39m _get_valid_plot_types(config[\u001b[39m'\u001b[39m\u001b[39mtype\u001b[39m\u001b[39m'\u001b[39m])\n", "File \u001b[1;32mc:\\Users\\WINSTON-ITX\\anaconda3\\envs\\py39\\lib\\site-packages\\mplfinance\\_arg_validators.py:339\u001b[0m, in \u001b[0;36m_process_kwargs\u001b[1;34m(kwargs, vkwargs)\u001b[0m\n\u001b[0;32m 337\u001b[0m \u001b[39mfor\u001b[39;00m key \u001b[39min\u001b[39;00m kwargs\u001b[39m.\u001b[39mkeys():\n\u001b[0;32m 338\u001b[0m \u001b[39mif\u001b[39;00m key \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m vkwargs:\n\u001b[1;32m--> 339\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39mUnrecognized kwarg=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m\u001b[39m+\u001b[39m\u001b[39mstr\u001b[39m(key)\u001b[39m+\u001b[39m\u001b[39m'\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 340\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 341\u001b[0m value \u001b[39m=\u001b[39m kwargs[key]\n", "\u001b[1;31mKeyError\u001b[0m: 'Unrecognized kwarg=\"figcolor\"'" ] } ], "source": [ "\n", "# Create an OHLC chart with mplfinance\n", "mpf.plot(\n", " df1,\n", " type='candle', # Candlestick chart type\n", " # style='nightclouds', # Use the custom style\n", " figcolor='#000000',\n", " title='OHLC 30 Minute',\n", " ylabel='Price',\n", " volume=False, # Disable volume bars\n", " xrotation=0, # Rotate x-axis labels if needed\n", " figratio=(8, 4), # Adjust the figure size as needed\n", " addplot=[\n", " mpf.make_addplot(down_lines, color='#3399ff', linestyle='solid', width=1, secondary_y=False),\n", " mpf.make_addplot(up_lines, color='#ff5f5f', linestyle='solid', width=1, secondary_y=False),\n", " ]\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mpf.available_fonts()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "perf_daily1 = perf_daily.merge(data['ClosePct'], left_index=True, right_index=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "res2 = res1.merge(data[['ClosePct','HighPct','LowPct']], left_index=True, right_index=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int_labels = ['(-∞, .20]', '(.20, .40]', '(.40, .60]', '(.60, .80]', '(.80, ∞]']\n", "df_probas = res2.groupby(pd.qcut(res2['Predicted'],7)).agg({'True':[np.mean,len,np.sum],'ClosePct':[np.mean, np.std], 'HighPct':[np.mean], 'LowPct':[np.mean]})\n", "# df_probas = res2.groupby(pd.cut(res2['Predicted'], bins = [-np.inf, 0.2, 0.4, 0.6, 0.8, np.inf], labels = int_labels)).agg({'True':[np.mean,len,np.sum],'ClosePct':[np.mean], 'HighPct':[np.mean], 'LowPct':[np.mean]})\n", "df_probas.columns = ['PctGreen','NumObs','NumGreen','AvgPerf','PerfStD','AvgHigh','AvgLow']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df_probas" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mean_predicted_value" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "res2['Quantile'] = pd.cut(res2['Predicted'], bins = [-np.inf, 0.2, 0.4, 0.6, 0.8, np.inf], labels = int_labels)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# Assuming you have a DataFrame 'res2' with the columns 'Quantile' and 'ClosePct'\n", "# Assuming you have a list 'int_labels' containing the unique values for 'Quantile'\n", "\n", "# Create a 2x3 grid of subplots\n", "fig, axs = plt.subplots(2, 3, figsize=(15, 8))\n", "\n", "# Loop through the 'int_labels' and plot the histograms in each subplot\n", "for i, lbl in enumerate(int_labels):\n", " # Get the subplot position based on the index i\n", " row = i // 3\n", " col = i % 3\n", " \n", " # Filter the DataFrame based on the specified value\n", " data_subset = res2.loc[res2['Quantile'] == lbl, 'LowPct']\n", " \n", " # Plot the histogram in the corresponding subplot\n", " axs[row, col].hist(data_subset)\n", " axs[row, col].set_title(lbl)\n", "\n", "# Add some space between the subplots\n", "plt.tight_layout()\n", "\n", "# Show the plot\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Investigate EM\n", "data['VIX_EM'] = data['Close'] * (data['Close_VIX']/100) * (np.sqrt( 1 ) / np.sqrt(252))\n", "data['VIX_EM_High'] = data['Close'] + data['VIX_EM']\n", "data['VIX_EM_Low'] = data['Close'] - data['VIX_EM']\n", "\n", "data['VIX_EM_125'] = data['VIX_EM'] * 1.25\n", "data['VIX_EM_125_High'] = data['Close'] + data['VIX_EM_125']\n", "data['VIX_EM_125_Low'] = data['Close'] - data['VIX_EM_125']\n", "\n", "data['VIX_EM_15'] = data['VIX_EM'] * 1.5\n", "data['VIX_EM_15_High'] = data['Close'] + data['VIX_EM_15']\n", "data['VIX_EM_15_Low'] = data['Close'] - data['VIX_EM_15']\n", "\n", "data['VIX_EM'] = data['VIX_EM'].shift(1)\n", "data['VIX_EM_High'] = data['VIX_EM_High'].shift(1)\n", "data['VIX_EM_Low'] = data['VIX_EM_Low'].shift(1)\n", "\n", "data['VIX_EM_15'] = data['VIX_EM_15'].shift(1)\n", "data['VIX_EM_15_High'] = data['VIX_EM_15_High'].shift(1)\n", "data['VIX_EM_15_Low'] = data['VIX_EM_15_Low'].shift(1)\n", "\n", "data['VIX_EM_125'] = data['VIX_EM_125'].shift(1)\n", "data['VIX_EM_125_High'] = data['VIX_EM_125_High'].shift(1)\n", "data['VIX_EM_125_Low'] = data['VIX_EM_125_Low'].shift(1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data[['VIX_EM','VIX_EM_15','VIX_EM_15_High','Close']]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# How often did price close within EM?\n", "len(data.query('Close <= VIX_EM_High & Close >= VIX_EM_Low')) / len(data)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# How often was EM tested?\n", "len(data.query('High > VIX_EM_High | Low < VIX_EM_Low')) / len(data)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# How often did price close within EM?\n", "len(data.query('Close <= VIX_EM_125_High & Close >= VIX_EM_125_Low')) / len(data)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# How often was EM tested?\n", "len(data.query('High > VIX_EM_125_High | Low < VIX_EM_125_Low')) / len(data)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# How often did price close within EM?\n", "len(data.query('Close <= VIX_EM_15_High & Close >= VIX_EM_15_Low')) / len(data)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# How often was EM tested?\n", "len(data.query('High > VIX_EM_15_High | Low < VIX_EM_15_Low')) / len(data)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "py39", "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.9.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }