diff --git a/clear_cache.ipynb b/clear_cache.ipynb index 24024ab4..44792db4 100644 --- a/clear_cache.ipynb +++ b/clear_cache.ipynb @@ -11,256 +11,6 @@ "\n", "clear_cache()" ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'win32'" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import os, sys\n", - "sys.platform" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'Windows'" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import platform\n", - "platform.system()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "thing = pd.read_csv('BTCUSDT-aggTrades-2022-05.csv', names=[\"agg_trade_id\", \"price\", \"asset_size\", \"first_trade_id\", \"last_trade_id\", \"timestamp\", \"is_buyer\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "thing.to_csv('thing.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "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", - "
agg_trade_idpriceasset_sizefirst_trade_idlast_trade_idtimestampis_buyer
0125254888231797.92.017231117513823111751481654041600024False
1125254888331797.90.102231117514923111751521654041602739False
2125254888431797.80.062231117515323111751541654041602761True
3125254888531797.90.043231117515523111751561654041602762False
4125254888631797.80.186231117515723111751611654041602762True
........................
74364393132691327519920.70.064248168404724816840471656633599973False
74364394132691327619921.00.039248168404824816840481656633599973False
74364395132691327719922.30.001248168404924816840491656633599992False
74364396132691327819922.60.002248168405024816840501656633599992False
74364397132691327919923.50.202248168405124816840511656633599992False
\n", - "

74364398 rows × 7 columns

\n", - "
" - ], - "text/plain": [ - " agg_trade_id price asset_size first_trade_id last_trade_id \\\n", - "0 1252548882 31797.9 2.017 2311175138 2311175148 \n", - "1 1252548883 31797.9 0.102 2311175149 2311175152 \n", - "2 1252548884 31797.8 0.062 2311175153 2311175154 \n", - "3 1252548885 31797.9 0.043 2311175155 2311175156 \n", - "4 1252548886 31797.8 0.186 2311175157 2311175161 \n", - "... ... ... ... ... ... \n", - "74364393 1326913275 19920.7 0.064 2481684047 2481684047 \n", - "74364394 1326913276 19921.0 0.039 2481684048 2481684048 \n", - "74364395 1326913277 19922.3 0.001 2481684049 2481684049 \n", - "74364396 1326913278 19922.6 0.002 2481684050 2481684050 \n", - "74364397 1326913279 19923.5 0.202 2481684051 2481684051 \n", - "\n", - " timestamp is_buyer \n", - "0 1654041600024 False \n", - "1 1654041602739 False \n", - "2 1654041602761 True \n", - "3 1654041602762 False \n", - "4 1654041602762 True \n", - "... ... ... \n", - "74364393 1656633599973 False \n", - "74364394 1656633599973 False \n", - "74364395 1656633599992 False \n", - "74364396 1656633599992 False \n", - "74364397 1656633599992 False \n", - "\n", - "[74364398 rows x 7 columns]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.read_csv('BTCUSDT-aggTrades-2022-06.csv', names=[\"agg_trade_id\", \"price\", \"asset_size\", \"first_trade_id\", \"last_trade_id\", \"timestamp\", \"is_buyer\"], header=0)" - ] } ], "metadata": { diff --git a/math/math long.ipynb b/math/math long.ipynb index 39138683..755abcef 100644 --- a/math/math long.ipynb +++ b/math/math long.ipynb @@ -162,9 +162,9 @@ "\n", "exit_price = 37521\n", "\n", - "possible_loss = -3\n", + "total_possible_loss = -3\n", "\n", - "entry_size_usd = entry_price * -possible_loss / (-exit_price + entry_price + entry_price * market_fee_pct + exit_price * market_fee_pct)\n", + "entry_size_usd = entry_price * -total_possible_loss / (-exit_price + entry_price + entry_price * market_fee_pct + exit_price * market_fee_pct)\n", "entry_size_usd/entry_price" ] }, @@ -227,7 +227,7 @@ "round(\n", " -(\n", " (\n", - " entry_price * average_entry * possible_loss\n", + " entry_price * average_entry * total_possible_loss\n", " - entry_price * sl_price * position_size_usd\n", " + entry_price * sl_price * market_fee_pct * position_size_usd\n", " + entry_price * average_entry * position_size_usd\n", diff --git a/math/math short.ipynb b/math/math short.ipynb index 12161227..937fc406 100644 --- a/math/math short.ipynb +++ b/math/math short.ipynb @@ -1,279 +1,279 @@ { - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[Math Link]()
\n", - "\n", - "Solving for Short Take Profit Price
\n", - "usd = USD size
\n", - "entry = entry or average entry
\n", - "mfee = Market Fee
\n", - "lfee = Limit Fee
\n", - "tp = Take profit price
\n", - "pnl = pnl
\n", - "\n", - "$$\n", - "pnl = ((\\frac{usd}{entry}) * (entry - tp)) - ((\\frac{usd}{entry}) * entry * mfee) - ((\\frac{usd}{entry}) * tp * lfee)\\\\\n", - "~\\\\\n", - "tp = -(\\frac{(entry * pnl) - (entry * usd) + (entry*mfee*usd)}{usd*(1+lfee)})\n", - "$$\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ + "cells": [ { - "data": { - "text/plain": [ - "25011.560919027444" + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Math Link]()
\n", + "\n", + "Solving for Short Take Profit Price
\n", + "usd = USD size
\n", + "entry = entry or average entry
\n", + "mfee = Market Fee
\n", + "lfee = Limit Fee
\n", + "tp = Take profit price
\n", + "pnl = pnl
\n", + "\n", + "$$\n", + "pnl = ((\\frac{usd}{entry}) * (entry - tp)) - ((\\frac{usd}{entry}) * entry * mfee) - ((\\frac{usd}{entry}) * tp * lfee)\\\\\n", + "~\\\\\n", + "tp = -(\\frac{(entry * pnl) - (entry * usd) + (entry*mfee*usd)}{usd*(1+lfee)})\n", + "$$\n" ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "entry = 27805.5\n", - "position = 100.6931\n", - "pnl = 10\n", - "mfee = 0.0009\n", - "lfee = 0.0003\n", - "-((pnl * entry) - (entry * position) +\n", - " (entry * mfee * position)) / (position * (1 + lfee))" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Solving for break even price\n" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "27755.49510440604" + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "25011.560919027444" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "entry = 27805.5\n", + "position = 100.6931\n", + "pnl = 10\n", + "mfee = 0.0009\n", + "lfee = 0.0003\n", + "-((pnl * entry) - (entry * position) +\n", + " (entry * mfee * position)) / (position * (1 + lfee))" ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# this formula only works with a 1 because it represents a size val of 1\n", - "# if i were to use any other value for size i would have to use the solving for tp code\n", - "(entry - mfee * entry) / (1 + mfee)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Solving for Short Leverage
\n", - "When you know you want your liq price to be slightly higher than your sl price
\n", - "AE = Avg Entry
\n", - "MMR = Maintaince Margin Rate
\n", - "LP = Liq Price
\n", - "SLP = Stop Loss Price
\n", - "P = Padding
\n", - "L = Long Leverage\n", - "\n", - "$$\n", - "LP = AE * (1 + (\\frac{1}{L}) - (MMR / 100))\\\\\n", - "|\\\\\n", - "SLP + (SLP * \\frac{P}{100}) = AE * (1 + (\\frac{1}{L}) - (MMR / 100))\\\\\n", - "|\\\\\n", - "|\\\\\n", - "L = \\frac{AE}{SLP + (SLP * \\frac{P}{100}) - AE + (AE * \\frac{MMR}{100})}\n", - "$$\n" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "(58.7544065804936, 1012.0200000000001)" + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Solving for break even price\n" ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ae = 1000\n", - "mmr = .5\n", - "slp = 1010\n", - "p = .2\n", - "shortlev = ae / (slp + ((slp * p)/100) - ae + ((mmr * ae) / 100))\n", - "lp = ae * (1 + 1/shortlev - mmr/100)\n", - "shortlev, lp" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finding USD price based on possible loss
\n", - "[math](https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%5Cleft(e%20-%20x%5Cright)%5Cright)-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20e%5Ccdot%20m%5Cright)%20-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20x%5Ccdot%20m%5Cright)%20%5Cright)%3Dp?or=input)
\n", - "U = USD size
\n", - "E = entry or average entry
\n", - "M = Fee
\n", - "X = Stops price
\n", - "P = pnl
\n", - "\n", - "$$\n", - "P = ((\\frac{U}{E}) * (E - X)) - ((\\frac{U}{E}) * E * M) - ((\\frac{U}{E}) * X * M)\n", - "$$\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "846.8117537471419" + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "27755.49510440604" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# this formula only works with a 1 because it represents a size val of 1\n", + "# if i were to use any other value for size i would have to use the solving for tp code\n", + "(entry - mfee * entry) / (1 + mfee)" ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "entry_price = 1000\n", - "sl_pcts_new = 0.01\n", - "market_fee_pct = 0.0009\n", - "\n", - "exit_price = entry_price + (entry_price * sl_pcts_new)\n", - "\n", - "possible_loss = -10\n", - "\n", - "entry_size_usd = entry_price * -possible_loss / (-entry_price + exit_price + entry_price * market_fee_pct + market_fee_pct * exit_price)\n", - "entry_size_usd" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "-10.0" + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Solving for Short Leverage
\n", + "When you know you want your liq price to be slightly higher than your sl price
\n", + "AE = Avg Entry
\n", + "MMR = Maintaince Margin Rate
\n", + "LP = Liq Price
\n", + "SLP = Stop Loss Price
\n", + "P = Padding
\n", + "L = Long Leverage\n", + "\n", + "$$\n", + "LP = AE * (1 + (\\frac{1}{L}) - (MMR / 100))\\\\\n", + "|\\\\\n", + "SLP + (SLP * \\frac{P}{100}) = AE * (1 + (\\frac{1}{L}) - (MMR / 100))\\\\\n", + "|\\\\\n", + "|\\\\\n", + "L = \\frac{AE}{SLP + (SLP * \\frac{P}{100}) - AE + (AE * \\frac{MMR}{100})}\n", + "$$\n" ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(\n", - " ((entry_size_usd / entry_price) * (entry_price - exit_price))\n", - " - (entry_size_usd / entry_price) * entry_price * market_fee_pct\n", - " - (entry_size_usd / entry_price) * exit_price * market_fee_pct\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "possible_loss = 20\n", - "entry_price = 1900\n", - "average_entry = 2000\n", - "position_size_usd = 100\n", - "market_fee_pct = 0.0009\n", - "sl_price = 1800\n", - "entry_size_usd = 100" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(58.7544065804936, 1012.0200000000001)" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ae = 1000\n", + "mmr = .5\n", + "slp = 1010\n", + "p = .2\n", + "shortlev = ae / (slp + ((slp * p)/100) - ae + ((mmr * ae) / 100))\n", + "lp = ae * (1 + 1/shortlev - mmr/100)\n", + "shortlev, lp" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finding USD price based on possible loss
\n", + "[math](https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%5Cleft(e%20-%20x%5Cright)%5Cright)-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20e%5Ccdot%20m%5Cright)%20-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20x%5Ccdot%20m%5Cright)%20%5Cright)%3Dp?or=input)
\n", + "U = USD size
\n", + "E = entry or average entry
\n", + "M = Fee
\n", + "X = Stops price
\n", + "P = pnl
\n", + "\n", + "$$\n", + "P = ((\\frac{U}{E}) * (E - X)) - ((\\frac{U}{E}) * E * M) - ((\\frac{U}{E}) * X * M)\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "846.8117537471419" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "entry_price = 1000\n", + "sl_pcts_new = 0.01\n", + "market_fee_pct = 0.0009\n", + "\n", + "exit_price = entry_price + (entry_price * sl_pcts_new)\n", + "\n", + "total_possible_loss = -10\n", + "\n", + "entry_size_usd = entry_price * -total_possible_loss / (-entry_price + exit_price + entry_price * market_fee_pct + market_fee_pct * exit_price)\n", + "entry_size_usd" + ] + }, { - "data": { - "text/plain": [ - "-0.0" + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-10.0" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(\n", + " ((entry_size_usd / entry_price) * (entry_price - exit_price))\n", + " - (entry_size_usd / entry_price) * entry_price * market_fee_pct\n", + " - (entry_size_usd / entry_price) * exit_price * market_fee_pct\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "total_possible_loss = 20\n", + "entry_price = 1900\n", + "average_entry = 2000\n", + "position_size_usd = 100\n", + "market_fee_pct = 0.0009\n", + "sl_price = 1800\n", + "entry_size_usd = 100" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.0" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# math https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)-n%5Cright)%5Cright)-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)%5Ccdot%20%20m%5Cright)%20-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%20%20n%5Ccdot%20%20m%5Cright)%20%5Cright)%3D-f?or=input\n", + "\n", + "round(\n", + " -(\n", + " (\n", + " entry_price * average_entry * total_possible_loss\n", + " - entry_price * average_entry * position_size_usd\n", + " + sl_price * average_entry * position_size_usd\n", + " + sl_price * market_fee_pct * average_entry * position_size_usd\n", + " + entry_price * market_fee_pct * average_entry * position_size_usd\n", + " )\n", + " / (entry_price * (sl_price - average_entry * sl_price * market_fee_pct + average_entry * market_fee_pct))\n", + " ),\n", + " 3,\n", + ")" ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" } - ], - "source": [ - "# math https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)-n%5Cright)%5Cright)-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)%5Ccdot%20%20m%5Cright)%20-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%20%20n%5Ccdot%20%20m%5Cright)%20%5Cright)%3D-f?or=input\n", - "\n", - "round(\n", - " -(\n", - " (\n", - " entry_price * average_entry * possible_loss\n", - " - entry_price * average_entry * position_size_usd\n", - " + sl_price * average_entry * position_size_usd\n", - " + sl_price * market_fee_pct * average_entry * position_size_usd\n", - " + entry_price * market_fee_pct * average_entry * position_size_usd\n", - " )\n", - " / (entry_price * (sl_price - average_entry * sl_price * market_fee_pct + average_entry * market_fee_pct))\n", - " ),\n", - " 3,\n", - ")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "qfVBT", - "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.10.10" + ], + "metadata": { + "kernelspec": { + "display_name": "qfVBT", + "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.10.10" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "d03a5f5914d41db73604e557196e04fa21b062a314cb051b64faf513d9f7a3ca" + } + } }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "d03a5f5914d41db73604e557196e04fa21b062a314cb051b64faf513d9f7a3ca" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 + "nbformat": 4, + "nbformat_minor": 2 } diff --git a/quantfreedom/enums.py b/quantfreedom/enums.py index b271e005..b57bba69 100644 --- a/quantfreedom/enums.py +++ b/quantfreedom/enums.py @@ -185,7 +185,7 @@ class AccountState(NamedTuple): cash_used: float equity: float fees_paid: float - possible_loss: int + total_possible_loss: int realized_pnl: float total_trades: int @@ -214,9 +214,8 @@ class BacktestSettings(NamedTuple): class DynamicOrderSettingsArrays(NamedTuple): - max_equity_risk_pct: np.array max_trades: np.array - risk_account_pct_size: np.array + account_pct_risk_per_trade: np.array risk_reward: np.array sl_based_on_add_pct: np.array sl_based_on_lookback: np.array @@ -229,9 +228,8 @@ class DynamicOrderSettingsArrays(NamedTuple): class DynamicOrderSettings(NamedTuple): - max_equity_risk_pct: float max_trades: int - risk_account_pct_size: float + account_pct_risk_per_trade: float risk_reward: float sl_based_on_add_pct: float sl_based_on_lookback: int @@ -336,7 +334,7 @@ def __init__( ("leverage_type", np.int_), ("max_equity_risk_pct", np.float_), ("long_or_short", np.int_), - ("risk_account_pct_size", np.float_), + ("account_pct_risk_per_trade", np.float_), ("risk_reward", np.float_), ("sl_based_on_add_pct", np.float_), ("sl_based_on_lookback", np.int_), @@ -373,7 +371,7 @@ def __init__( ("fees_paid", np.float_), ("leverage", np.float_), ("liq_price", np.float_), - ("possible_loss", np.int_), + ("total_possible_loss", np.int_), ("total_trades", np.int_), ("entry_size_asset", np.float_), ("entry_size_usd", np.float_), diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/__init__.py b/quantfreedom/exchanges/apex_exchange/apex_github/__init__.py index b5fb7be8..0403f62d 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/__init__.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/__init__.py @@ -72,7 +72,7 @@ class HTTP: def __init__( self, endpoint, - api_timeout=3000, # TODO: Actually use this. + api_timeout=3000, default_ethereum_address=None, eth_private_key=None, eth_send_options=None, @@ -238,7 +238,6 @@ def _auth(self, method, params, recv_window): # Sort dictionary alphabetically to create querystring. _val = "&".join([str(k) + "=" + str(v) for k, v in sorted(params.items()) if (k != "sign") and (v is not None)]) - # Bug fix. Replaces all capitalized booleans with lowercase. if method == "POST": _val = _val.replace("True", "true").replace("False", "false") diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/helpers/requests.py b/quantfreedom/exchanges/apex_exchange/apex_github/helpers/requests.py index 7a8d506c..f39308d0 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/helpers/requests.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/helpers/requests.py @@ -5,7 +5,7 @@ from quantfreedom.exchanges.apex_exchange.apex_github.errors import ApexproApiError from quantfreedom.exchanges.apex_exchange.apex_github.helpers.request_helpers import remove_nones -# TODO: Use a separate session per client instance. + session = requests.session() session.headers.update( { diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/conditional_transfer.py b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/conditional_transfer.py index a811fdc9..9fbfc592 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/conditional_transfer.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/conditional_transfer.py @@ -78,7 +78,7 @@ def to_starkware(self): def _calculate_hash(self): """Calculate the hash of the Starkware order.""" - # TODO: Check values are in bounds + # The transfer asset and fee asset are always the collateral asset. # Fees are not supported for conditional transfers. diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/constants.py b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/constants.py index d4b11e4c..40f743d1 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/constants.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/constants.py @@ -13,7 +13,6 @@ WITHDRAWAL_PREFIX = 6 WITHDRAWAL_TO_ADDRESS_PREFIX = 7 -# Note: Fees are not supported for conditional transfers or transfers. TRANSFER_FEE_ASSET_ID = 0 TRANSFER_MAX_AMOUNT_FEE = 0 diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/order.py b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/order.py index 931d9ab8..015c4692 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/order.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/order.py @@ -67,7 +67,6 @@ def __init__( synthetic_resolution, ) - # Note: By creating the decimals outside the context and then # multiplying within the context, we ensure rounding does not occur # until after the multiplication is computed with full precision. if is_buying_synthetic: @@ -128,7 +127,7 @@ def to_starkware(self): def _calculate_hash(self): """Calculate the hash of the Starkware order.""" - # TODO: Check values are in bounds + if self._message.is_buying_synthetic: asset_id_sell = self._message.asset_id_collateral diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/proxy.py b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/proxy.py index 5b0c88b5..80394847 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/proxy.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/proxy.py @@ -15,7 +15,6 @@ def sign( priv_key: int, seed: Optional[int] = None, ) -> ECSignature: - # Note: cpp_sign() is not optimized and is currently slower than py_sign(). # So always use py_sign() for now. return py_sign(msg_hash=msg_hash, priv_key=priv_key, seed=seed) diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/python_signature.py b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/python_signature.py index f0f77df1..137ffaed 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/python_signature.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/starkex_resources/python_signature.py @@ -84,7 +84,6 @@ def get_y_coordinate(stark_key_x_coordinate: int) -> int: def get_random_private_key() -> int: - # NOTE: It is IMPORTANT to use a strong random function here. return random.randint(1, EC_ORDER - 1) @@ -125,7 +124,6 @@ def generate_k_rfc6979(msg_hash: int, priv_key: int, seed: Optional[int] = None) # Changes made by dYdX to function name only. def py_sign(msg_hash: int, priv_key: int, seed: Optional[int] = None) -> ECSignature: - # Note: msg_hash must be smaller than 2**N_ELEMENT_BITS_ECDSA. # Message whose hash is >= 2**N_ELEMENT_BITS_ECDSA cannot be signed. # This happens with a very small probability. assert 0 <= msg_hash < 2**N_ELEMENT_BITS_ECDSA, 'Message not signable.' diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/transfer.py b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/transfer.py index 0c630753..5a7b820c 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/transfer.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/transfer.py @@ -86,7 +86,7 @@ def to_starkware(self): def _calculate_hash(self): """Calculate the hash of the Starkware order.""" - # TODO: Check values are in bounds + asset_ids = get_hash( self.collateral_asset_id, diff --git a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/withdrawal.py b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/withdrawal.py index eda86333..9f4f275d 100644 --- a/quantfreedom/exchanges/apex_exchange/apex_github/starkex/withdrawal.py +++ b/quantfreedom/exchanges/apex_exchange/apex_github/starkex/withdrawal.py @@ -63,7 +63,6 @@ def to_starkware(self): def _calculate_hash(self): """Calculate the hash of the Starkware order.""" - # TODO: Check values are in bounds packed = WITHDRAWAL_TO_ADDRESS_PREFIX packed <<= WITHDRAWAL_FIELD_BIT_LENGTHS["position_id"] diff --git a/quantfreedom/exchanges/bybit_exchange/bybit_live_mode.py b/quantfreedom/exchanges/bybit_exchange/bybit_live_mode.py index 2f0eaf1c..f33a7105 100644 --- a/quantfreedom/exchanges/bybit_exchange/bybit_live_mode.py +++ b/quantfreedom/exchanges/bybit_exchange/bybit_live_mode.py @@ -119,7 +119,7 @@ def run( self.order.average_entry = 0.0 self.order.equity = self.exchange.get_equity_of_asset(trading_with=self.trading_with) self.order.available_balance = self.order.equity - self.order.possible_loss = 0.0 + self.order.total_possible_loss = 0.0 self.order.cash_used = 0.0 self.order.cach_borrowed = 0.0 @@ -137,7 +137,7 @@ def run( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = self.order.calculate_increase_position( @@ -146,7 +146,7 @@ def run( equity=self.order.equity, position_size_asset=self.order.position_size_asset, position_size_usd=self.order.position_size_usd, - possible_loss=self.order.possible_loss, + total_possible_loss=self.order.total_possible_loss, sl_price=sl_price, total_trades=self.order.total_trades, ) @@ -176,7 +176,7 @@ def run( ) = self.order.calculate_take_profit( average_entry=average_entry, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, ) logger.debug("filling order result") self.order.fill_order_result( @@ -196,7 +196,7 @@ def run( order_status=OrderStatus.EntryFilled, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, realized_pnl=np.nan, sl_pct=sl_pct, sl_price=sl_price, @@ -418,14 +418,14 @@ def __set_order_average_entry(self): logger.debug(f"Setting average entry") self.order.average_entry = float(self.get_position_info(symbol=self.symbol)["avgPrice"]) - def __set_ex_possible_loss(self): + def __set_ex_total_possible_loss(self): logger.debug(f"setting all exchange vars") coin_size = self.ex_position_size_asset pnl = coin_size * (self.ex_sl_price - self.ex_average_entry) fee_open = coin_size * self.ex_average_entry * self.exchange.exchange_settings.market_fee_pct # math checked fee_close = coin_size * self.ex_sl_price * self.exchange.exchange_settings.market_fee_pct # math checked self.fees_paid = fee_open + fee_close # math checked - self.ex_possible_loss = round(abs(pnl - self.fees_paid), 3) + self.ex_total_possible_loss = round(abs(pnl - self.fees_paid), 3) def __set_ex_possible_profit(self): logger.debug(f"setting all exchange vars") @@ -463,7 +463,7 @@ def __set_exchange_variables(self, entry_order_id, sl_order_id, tp_order_id): fee_open = coin_size * self.ex_average_entry * self.exchange.exchange_settings.market_fee_pct # math checked fee_close = coin_size * self.ex_sl_price * self.exchange.exchange_settings.market_fee_pct # math checked self.fees_paid = fee_open + fee_close # math checked - self.ex_possible_loss = round(-(pnl - self.fees_paid), 3) + self.ex_total_possible_loss = round(-(pnl - self.fees_paid), 3) def __get_pct_difference(self, starting_num, diff_num): logger.debug(f"getting pct difference") @@ -471,7 +471,7 @@ def __get_pct_difference(self, starting_num, diff_num): def __create_entry_successful_message(self): logger.debug(f"Creating message") - self.__set_ex_possible_loss() + self.__set_ex_total_possible_loss() self.__set_ex_possible_profit() message = f"An order was placed successfully\ @@ -500,8 +500,8 @@ def __create_entry_successful_message(self): \n[ex_take_profit_price={self.ex_tp_price}]\ \n[tp_pct={round(self.order.tp_pct * 100, 3)}]\ \n[ex_tp_pct={self.ex_tp_pct}]\ - \n[possible loss={self.order.possible_loss}]\ - \n[ex_possible loss={self.ex_possible_loss}]\ + \n[possible loss={self.order.total_possible_loss}]\ + \n[ex_possible loss={self.ex_total_possible_loss}]\ \n[ex_possible profit={self.ex_possible_profit}]" return message diff --git a/quantfreedom/exchanges/mufex_exchange/mufex_live_mode.py b/quantfreedom/exchanges/mufex_exchange/mufex_live_mode.py index 1fb26e98..543067df 100644 --- a/quantfreedom/exchanges/mufex_exchange/mufex_live_mode.py +++ b/quantfreedom/exchanges/mufex_exchange/mufex_live_mode.py @@ -119,7 +119,7 @@ def run( self.order.average_entry = 0.0 self.order.equity = self.exchange.get_equity_of_asset(trading_with=self.trading_with) self.order.available_balance = self.order.equity - self.order.possible_loss = 0.0 + self.order.total_possible_loss = 0.0 self.order.cash_used = 0.0 self.order.cach_borrowed = 0.0 @@ -137,7 +137,7 @@ def run( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = self.order.calculate_increase_position( @@ -146,7 +146,7 @@ def run( equity=self.order.equity, position_size_asset=self.order.position_size_asset, position_size_usd=self.order.position_size_usd, - possible_loss=self.order.possible_loss, + total_possible_loss=self.order.total_possible_loss, sl_price=sl_price, total_trades=self.order.total_trades, ) @@ -176,7 +176,7 @@ def run( ) = self.order.calculate_take_profit( average_entry=average_entry, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, ) logger.debug("filling order result") self.order.fill_order_result( @@ -196,7 +196,7 @@ def run( order_status=OrderStatus.EntryFilled, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, realized_pnl=np.nan, sl_pct=sl_pct, sl_price=sl_price, @@ -324,7 +324,7 @@ def run( tp_order_id=tp_order_id, ) message = self.__create_entry_successful_message() - print('Placed a new Trade') + print("Placed a new Trade") # entry_filename = self.__get_entry_plot_filename() # strategy_filename = self.strategy.get_strategy_plot_filename(candles=self.candles) # self.email_sender.email_new_order( @@ -418,14 +418,14 @@ def __set_order_average_entry(self): logger.debug(f"Setting average entry") self.order.average_entry = float(self.get_position_info(symbol=self.symbol)["entryPrice"]) - def __set_ex_possible_loss(self): + def __set_ex_total_possible_loss(self): logger.debug(f"setting all exchange vars") coin_size = self.ex_position_size_asset pnl = coin_size * (self.ex_sl_price - self.ex_average_entry) fee_open = coin_size * self.ex_average_entry * self.exchange.exchange_settings.market_fee_pct # math checked fee_close = coin_size * self.ex_sl_price * self.exchange.exchange_settings.market_fee_pct # math checked self.fees_paid = fee_open + fee_close # math checked - self.ex_possible_loss = round(abs(pnl - self.fees_paid), 3) + self.ex_total_possible_loss = round(abs(pnl - self.fees_paid), 3) def __set_ex_possible_profit(self): logger.debug(f"setting all exchange vars") @@ -463,7 +463,7 @@ def __set_exchange_variables(self, entry_order_id, sl_order_id, tp_order_id): fee_open = coin_size * self.ex_average_entry * self.exchange.exchange_settings.market_fee_pct # math checked fee_close = coin_size * self.ex_sl_price * self.exchange.exchange_settings.market_fee_pct # math checked self.fees_paid = fee_open + fee_close # math checked - self.ex_possible_loss = round(-(pnl - self.fees_paid), 3) + self.ex_total_possible_loss = round(-(pnl - self.fees_paid), 3) def __get_pct_difference(self, starting_num, diff_num): logger.debug(f"getting pct difference") @@ -471,7 +471,7 @@ def __get_pct_difference(self, starting_num, diff_num): def __create_entry_successful_message(self): logger.debug(f"Creating message") - self.__set_ex_possible_loss() + self.__set_ex_total_possible_loss() self.__set_ex_possible_profit() message = f"An order was placed successfully\ @@ -500,8 +500,8 @@ def __create_entry_successful_message(self): \n[ex_take_profit_price={self.ex_tp_price}]\ \n[tp_pct={round(self.order.tp_pct * 100, 3)}]\ \n[ex_tp_pct={self.ex_tp_pct}]\ - \n[possible loss={self.order.possible_loss}]\ - \n[ex_possible loss={self.ex_possible_loss}]\ + \n[possible loss={self.order.total_possible_loss}]\ + \n[ex_possible loss={self.ex_total_possible_loss}]\ \n[ex_possible profit={self.ex_possible_profit}]" return message diff --git a/quantfreedom/helper_funcs.py b/quantfreedom/helper_funcs.py index 1e77e9fc..61613796 100644 --- a/quantfreedom/helper_funcs.py +++ b/quantfreedom/helper_funcs.py @@ -161,9 +161,8 @@ def get_dos( dos_index: int, ): return DynamicOrderSettings( - max_equity_risk_pct=dos_cart_arrays.max_equity_risk_pct[dos_index], max_trades=dos_cart_arrays.max_trades[dos_index], - risk_account_pct_size=dos_cart_arrays.risk_account_pct_size[dos_index], + account_pct_risk_per_trade=dos_cart_arrays.account_pct_risk_per_trade[dos_index], risk_reward=dos_cart_arrays.risk_reward[dos_index], sl_based_on_add_pct=dos_cart_arrays.sl_based_on_add_pct[dos_index], sl_based_on_lookback=dos_cart_arrays.sl_based_on_lookback[dos_index], @@ -203,18 +202,17 @@ def dos_cart_product( ) -> DynamicOrderSettingsArrays: cart_arrays = cart_product(named_tuple=dos_arrays) return DynamicOrderSettingsArrays( - max_equity_risk_pct=cart_arrays[0] / 100, - max_trades=cart_arrays[1].astype(np.int_), - risk_account_pct_size=cart_arrays[2] / 100, - risk_reward=cart_arrays[3], - sl_based_on_add_pct=cart_arrays[4] / 100, - sl_based_on_lookback=cart_arrays[5].astype(np.int_), - sl_bcb_type=cart_arrays[6].astype(np.int_), - sl_to_be_cb_type=cart_arrays[7].astype(np.int_), - sl_to_be_when_pct=cart_arrays[8] / 100, - trail_sl_bcb_type=cart_arrays[9].astype(np.int_), - trail_sl_by_pct=cart_arrays[10] / 100, - trail_sl_when_pct=cart_arrays[11] / 100, + max_trades=cart_arrays[0].astype(np.int_), + account_pct_risk_per_trade=cart_arrays[1] / 100, + risk_reward=cart_arrays[2], + sl_based_on_add_pct=cart_arrays[3] / 100, + sl_based_on_lookback=cart_arrays[4].astype(np.int_), + sl_bcb_type=cart_arrays[5].astype(np.int_), + sl_to_be_cb_type=cart_arrays[6].astype(np.int_), + sl_to_be_when_pct=cart_arrays[7] / 100, + trail_sl_bcb_type=cart_arrays[8].astype(np.int_), + trail_sl_by_pct=cart_arrays[9] / 100, + trail_sl_when_pct=cart_arrays[10] / 100, ) @@ -246,7 +244,7 @@ def fill_order_records( order_records["leverage"] = order_result.leverage order_records["liq_price"] = order_result.liq_price order_records["order_status"] = order_result.order_status - order_records["possible_loss"] = account_state.possible_loss + order_records["total_possible_loss"] = account_state.total_possible_loss order_records["total_trades"] = account_state.total_trades order_records["entry_size_asset"] = order_result.entry_size_asset order_records["entry_size_usd"] = order_result.entry_size_usd @@ -267,17 +265,17 @@ def log_dynamic_order_settings( dynamic_order_settings: DynamicOrderSettingsArrays, ): logger.info( - f"\nDynamic Order settings index= {dos_index}\ - \nmax_equity_risk_pct={round(dynamic_order_settings.max_equity_risk_pct * 100, 3)}\ - \nmax_trades={dynamic_order_settings.max_trades}\ - \nrisk_account_pct_size={round(dynamic_order_settings.risk_account_pct_size * 100, 3)}\ - \nrisk_reward={dynamic_order_settings.risk_reward}\ - \nsl_based_on_add_pct={round(dynamic_order_settings.sl_based_on_add_pct * 100, 3)}\ - \nsl_based_on_lookback={dynamic_order_settings.sl_based_on_lookback}\ - \nsl_bcb_type={dynamic_order_settings.sl_bcb_type}\ - \nsl_to_be_cb_type={dynamic_order_settings.sl_to_be_cb_type}\ - \nsl_to_be_when_pct={round(dynamic_order_settings.sl_to_be_when_pct * 100, 3)}\ - \ntrail_sl_bcb_type={dynamic_order_settings.trail_sl_bcb_type}\ - \ntrail_sl_by_pct={round(dynamic_order_settings.trail_sl_by_pct * 100, 3)}\ - \ntrail_sl_when_pct={round(dynamic_order_settings.trail_sl_when_pct * 100, 3)}" + f""" +Dynamic Order settings index= {dos_index} +max_trades={dynamic_order_settings.max_trades} +account_pct_risk_per_trade={round(dynamic_order_settings.account_pct_risk_per_trade * 100, 3)} +risk_reward={dynamic_order_settings.risk_reward} +sl_based_on_add_pct={round(dynamic_order_settings.sl_based_on_add_pct * 100, 3)} +sl_based_on_lookback={dynamic_order_settings.sl_based_on_lookback} +sl_bcb_type={dynamic_order_settings.sl_bcb_type} +sl_to_be_cb_type={dynamic_order_settings.sl_to_be_cb_type} +sl_to_be_when_pct={round(dynamic_order_settings.sl_to_be_when_pct * 100, 3)} +trail_sl_bcb_type={dynamic_order_settings.trail_sl_bcb_type} +trail_sl_by_pct={round(dynamic_order_settings.trail_sl_by_pct * 100, 3)} +trail_sl_when_pct={round(dynamic_order_settings.trail_sl_when_pct * 100, 3)}""" ) diff --git a/quantfreedom/live_mode.py b/quantfreedom/live_mode.py index b1e30ec5..0b114329 100644 --- a/quantfreedom/live_mode.py +++ b/quantfreedom/live_mode.py @@ -118,7 +118,7 @@ def run( self.order.average_entry = 0.0 self.order.equity = self.exchange.get_equity_of_asset(trading_with=self.trading_with) self.order.available_balance = self.order.equity - self.order.possible_loss = 0.0 + self.order.total_possible_loss = 0.0 self.order.cash_used = 0.0 self.order.cach_borrowed = 0.0 @@ -136,7 +136,7 @@ def run( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = self.order.calculate_increase_position( @@ -145,7 +145,7 @@ def run( equity=self.order.equity, position_size_asset=self.order.position_size_asset, position_size_usd=self.order.position_size_usd, - possible_loss=self.order.possible_loss, + total_possible_loss=self.order.total_possible_loss, sl_price=sl_price, total_trades=self.order.total_trades, ) @@ -175,7 +175,7 @@ def run( ) = self.order.calculate_take_profit( average_entry=average_entry, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, ) logger.debug("filling order result") self.order.fill_order_result( @@ -195,7 +195,7 @@ def run( order_status=OrderStatus.EntryFilled, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, realized_pnl=np.nan, sl_pct=sl_pct, sl_price=sl_price, @@ -414,14 +414,14 @@ def __set_order_average_entry(self): logger.debug(f"Setting average entry") self.order.average_entry = float(self.get_position_info(symbol=self.symbol)["entryPrice"]) - def __set_ex_possible_loss(self): + def __set_ex_total_possible_loss(self): logger.debug(f"setting all exchange vars") coin_size = self.ex_position_size_asset pnl = coin_size * (self.ex_sl_price - self.ex_average_entry) fee_open = coin_size * self.ex_average_entry * self.exchange.exchange_settings.market_fee_pct # math checked fee_close = coin_size * self.ex_sl_price * self.exchange.exchange_settings.market_fee_pct # math checked self.fees_paid = fee_open + fee_close # math checked - self.ex_possible_loss = round(abs(pnl - self.fees_paid), 3) + self.ex_total_possible_loss = round(abs(pnl - self.fees_paid), 3) def __set_ex_possible_profit(self): logger.debug(f"setting all exchange vars") @@ -459,7 +459,7 @@ def __set_exchange_variables(self, entry_order_id, sl_order_id, tp_order_id): fee_open = coin_size * self.ex_average_entry * self.exchange.exchange_settings.market_fee_pct # math checked fee_close = coin_size * self.ex_sl_price * self.exchange.exchange_settings.market_fee_pct # math checked self.fees_paid = fee_open + fee_close # math checked - self.ex_possible_loss = round(-(pnl - self.fees_paid), 3) + self.ex_total_possible_loss = round(-(pnl - self.fees_paid), 3) def __get_pct_difference(self, starting_num, diff_num): logger.debug(f"getting pct difference") @@ -467,7 +467,7 @@ def __get_pct_difference(self, starting_num, diff_num): def __create_entry_successful_message(self): logger.debug(f"Creating message") - self.__set_ex_possible_loss() + self.__set_ex_total_possible_loss() self.__set_ex_possible_profit() message = f"An order was placed successfully\ @@ -496,8 +496,8 @@ def __create_entry_successful_message(self): \n[ex_take_profit_price={self.ex_tp_price}]\ \n[tp_pct={round(self.order.tp_pct * 100, 3)}]\ \n[ex_tp_pct={self.ex_tp_pct}]\ - \n[possible loss={self.order.possible_loss}]\ - \n[ex_possible loss={self.ex_possible_loss}]\ + \n[possible loss={self.order.total_possible_loss}]\ + \n[ex_possible loss={self.ex_total_possible_loss}]\ \n[ex_possible profit={self.ex_possible_profit}]" return message diff --git a/quantfreedom/nb_funcs/nb_helper_funcs.py b/quantfreedom/nb_funcs/nb_helper_funcs.py index f2c86960..03aefd94 100644 --- a/quantfreedom/nb_funcs/nb_helper_funcs.py +++ b/quantfreedom/nb_funcs/nb_helper_funcs.py @@ -58,7 +58,7 @@ def nb_get_dos( return DynamicOrderSettings( max_equity_risk_pct=dos_cart_arrays.max_equity_risk_pct[dos_index], max_trades=dos_cart_arrays.max_trades[dos_index], - risk_account_pct_size=dos_cart_arrays.risk_account_pct_size[dos_index], + account_pct_risk_per_trade=dos_cart_arrays.account_pct_risk_per_trade[dos_index], risk_reward=dos_cart_arrays.risk_reward[dos_index], sl_based_on_add_pct=dos_cart_arrays.sl_based_on_add_pct[dos_index], sl_based_on_lookback=dos_cart_arrays.sl_based_on_lookback[dos_index], @@ -87,7 +87,7 @@ def nb_create_ao( cash_used=0.0, equity=starting_equity, fees_paid=0.0, - possible_loss=0, + total_possible_loss=0, realized_pnl=0.0, total_trades=0, ) @@ -247,7 +247,7 @@ def nb_fill_order_records( order_records["leverage"] = order_result.leverage order_records["liq_price"] = order_result.liq_price order_records["order_status"] = order_result.order_status - order_records["possible_loss"] = account_state.possible_loss + order_records["total_possible_loss"] = account_state.total_possible_loss order_records["total_trades"] = account_state.total_trades order_records["entry_size_asset"] = order_result.entry_size_asset order_records["entry_size_usd"] = order_result.entry_size_usd @@ -297,7 +297,7 @@ def order_records_to_df(order_records: np.array): "fees_paid", "leverage", "liq_price", - "possible_loss", + "total_possible_loss", "entry_size_asset", "entry_size_usd", "entry_price", @@ -320,7 +320,7 @@ def order_records_to_df(order_records: np.array): "fees_paid", "leverage", "liq_price", - "possible_loss", + "total_possible_loss", "entry_size_asset", "entry_size_usd", "entry_price", @@ -527,7 +527,7 @@ def order_records_to_df(order_records: np.array): "fees_paid", "leverage", "liq_price", - "possible_loss", + "total_possible_loss", "entry_size_asset", "entry_size_usd", "entry_price", @@ -550,7 +550,7 @@ def order_records_to_df(order_records: np.array): "fees_paid", "leverage", "liq_price", - "possible_loss", + "total_possible_loss", "entry_size_asset", "entry_size_usd", "entry_price", diff --git a/quantfreedom/nb_funcs/nb_order_handler/nb_decrease_position.py b/quantfreedom/nb_funcs/nb_order_handler/nb_decrease_position.py index c2c99616..55634a2e 100644 --- a/quantfreedom/nb_funcs/nb_order_handler/nb_decrease_position.py +++ b/quantfreedom/nb_funcs/nb_order_handler/nb_decrease_position.py @@ -75,7 +75,7 @@ def nb_decrease_position( cash_used=0.0, equity=equity, fees_paid=fees_paid, - possible_loss=0, + total_possible_loss=0, realized_pnl=realized_pnl, total_trades=0, ) diff --git a/quantfreedom/nb_funcs/nb_order_handler/nb_increase_position.py b/quantfreedom/nb_funcs/nb_order_handler/nb_increase_position.py index 658ed8e7..9f5bed7b 100644 --- a/quantfreedom/nb_funcs/nb_order_handler/nb_increase_position.py +++ b/quantfreedom/nb_funcs/nb_order_handler/nb_increase_position.py @@ -11,7 +11,7 @@ class AccExOther(NamedTuple): market_fee_pct: float max_asset_size: float min_asset_size: float - possible_loss: float + total_possible_loss: float price_tick_step: float total_trades: int @@ -24,7 +24,7 @@ class OrderInfo(NamedTuple): max_trades: int position_size_asset: float position_size_usd: float - risk_account_pct_size: float + account_pct_risk_per_trade: float sl_price: float @@ -34,7 +34,7 @@ def nb_long_entry_size_p( entry_price: float, market_fee_pct: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, ): # math https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(n%20-%20%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)%5Cright)%5Cright)-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)%5Ccdot%20m%5Cright)%20-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%20n%5Ccdot%20m%5Cright)%20%5Cright)%3D-f?or=input @@ -42,7 +42,7 @@ def nb_long_entry_size_p( return round( -( ( - entry_price * average_entry * possible_loss + entry_price * average_entry * total_possible_loss - entry_price * sl_price * position_size_usd + entry_price * sl_price * market_fee_pct * position_size_usd + entry_price * average_entry * position_size_usd @@ -58,14 +58,14 @@ def nb_long_entry_size_p( def nb_long_entry_size_np( entry_price: float, market_fee_pct: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, ): # math https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%5Cleft(x%20-%20e%5Cright)%5Cright)-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20e%5Ccdot%20m%5Cright)%20-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20x%5Ccdot%20m%5Cright)%20%5Cright)%3Dp?or=input return round( entry_price - * -possible_loss + * -total_possible_loss / (-sl_price + entry_price + entry_price * market_fee_pct + market_fee_pct * sl_price), 3, ) @@ -77,7 +77,7 @@ def nb_short_entry_size_p( entry_price: float, market_fee_pct: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, ): # math https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)-n%5Cright)%5Cright)-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%5Cleft(%5Cfrac%7B%5Cleft(p%2Bu%5Cright)%7D%7B%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%7D%5Cright)%5Ccdot%20%20m%5Cright)%20-%20%5Cleft(%5Cleft(%5Cfrac%7Bp%7D%7Ba%7D%2B%5Cfrac%7Bu%7D%7Be%7D%5Cright)%5Ccdot%20%20n%5Ccdot%20%20m%5Cright)%20%5Cright)%3D-f?or=input @@ -85,7 +85,7 @@ def nb_short_entry_size_p( return round( -( ( - entry_price * average_entry * possible_loss + entry_price * average_entry * total_possible_loss - entry_price * average_entry * position_size_usd + entry_price * sl_price * position_size_usd + entry_price * sl_price * market_fee_pct * position_size_usd @@ -101,13 +101,13 @@ def nb_short_entry_size_p( def nb_short_entry_size_np( entry_price: float, market_fee_pct: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, ): # math https://www.symbolab.com/solver/simplify-calculator/solve%20for%20u%2C%20%5Cleft(%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%5Cleft(e%20-%20x%5Cright)%5Cright)-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20e%5Ccdot%20m%5Cright)%20-%20%5Cleft(%5Cfrac%7Bu%7D%7Be%7D%5Ccdot%20x%5Ccdot%20m%5Cright)%20%5Cright)%3Dp?or=input return -round( entry_price - * -possible_loss + * -total_possible_loss / (-entry_price + sl_price + entry_price * market_fee_pct + market_fee_pct * sl_price), 3, ) @@ -155,23 +155,23 @@ def nb_c_pl_ra_ps( equity: float, logger, max_equity_risk_pct: float, - possible_loss: float, - risk_account_pct_size: float, + total_possible_loss: float, + account_pct_risk_per_trade: float, total_trades: int, ): """ Possible loss risk account percent size """ logger("nb_increase_position.py - nb_c_pl_ra_ps() - Inside") - possible_loss = int(possible_loss - equity * risk_account_pct_size) - logger("nb_increase_position.py - nb_c_pl_ra_ps() -" + " possible_loss= " + str(possible_loss)) + total_possible_loss = int(total_possible_loss - equity * account_pct_risk_per_trade) + logger("nb_increase_position.py - nb_c_pl_ra_ps() -" + " total_possible_loss= " + str(total_possible_loss)) max_equity_risk = -round(equity * max_equity_risk_pct, 0) logger("nb_increase_position.py - nb_c_pl_ra_ps() -" + " max_equity_risk= " + str(int(max_equity_risk))) - if possible_loss < max_equity_risk: + if total_possible_loss < max_equity_risk: logger( "nb_increase_position.py - nb_c_pl_ra_ps() - Too big" - + " possible_loss= " - + str(int(possible_loss)) + + " total_possible_loss= " + + str(int(total_possible_loss)) + " max risk= " + str(int(max_equity_risk)) ) @@ -179,14 +179,14 @@ def nb_c_pl_ra_ps( total_trades += 1 logger( "nb_increase_position.py - nb_c_pl_ra_ps() - PL is fine" - + " possible_loss= " - + str(int(possible_loss)) + + " total_possible_loss= " + + str(int(total_possible_loss)) + " max risk= " + str(int(max_equity_risk)) + " total trades= " + str(int(total_trades)) ) - return possible_loss, total_trades + return total_possible_loss, total_trades @njit(cache=True) @@ -196,7 +196,7 @@ def nb_c_total_trades( market_fee_pct: float, max_trades: int, position_size_asset: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, stringer, total_trades: int, @@ -208,8 +208,8 @@ def nb_c_total_trades( fee_open = position_size_asset * average_entry * market_fee_pct # math checked fee_close = position_size_asset * sl_price * market_fee_pct # math checked fees_paid = fee_open + fee_close # math checked - possible_loss = int(pnl - fees_paid) - logger("nb_increase_position.py - nb_c_total_trades() -" + " possible_loss= " + str(possible_loss)) + total_possible_loss = int(pnl - fees_paid) + logger("nb_increase_position.py - nb_c_total_trades() -" + " total_possible_loss= " + str(total_possible_loss)) total_trades += 1 if total_trades > max_trades: logger( @@ -218,8 +218,8 @@ def nb_c_total_trades( + str(total_trades) + " max trades= " + str(max_trades) - + " possible_loss= " - + str(possible_loss) + + " total_possible_loss= " + + str(total_possible_loss) ) raise RejectedOrder logger( @@ -228,10 +228,10 @@ def nb_c_total_trades( + str(total_trades) + " max trades= " + str(max_trades) - + " possible_loss= " - + str(possible_loss) + + " total_possible_loss= " + + str(total_possible_loss) ) - return possible_loss, total_trades + return total_possible_loss, total_trades @njit(cache=True) @@ -280,7 +280,7 @@ def nb_rpa_slbcb_p( market_fee_pct = acc_ex_other.market_fee_pct max_asset_size = acc_ex_other.max_asset_size min_asset_size = acc_ex_other.min_asset_size - possible_loss = acc_ex_other.possible_loss + total_possible_loss = acc_ex_other.total_possible_loss price_tick_step = acc_ex_other.price_tick_step total_trades = acc_ex_other.total_trades @@ -289,16 +289,16 @@ def nb_rpa_slbcb_p( max_equity_risk_pct = order_info.max_equity_risk_pct position_size_asset = order_info.position_size_asset position_size_usd = order_info.position_size_usd - risk_account_pct_size = order_info.risk_account_pct_size + account_pct_risk_per_trade = order_info.account_pct_risk_per_trade sl_price = order_info.sl_price logger("nb_increase_position.py - nb_long_rpa_slbcb_p() - Calculating") - possible_loss, total_trades = nb_c_pl_ra_ps( + total_possible_loss, total_trades = nb_c_pl_ra_ps( equity=equity, logger=logger, max_equity_risk_pct=max_equity_risk_pct, - possible_loss=possible_loss, - risk_account_pct_size=risk_account_pct_size, + total_possible_loss=total_possible_loss, + account_pct_risk_per_trade=account_pct_risk_per_trade, total_trades=total_trades, ) @@ -307,7 +307,7 @@ def nb_rpa_slbcb_p( entry_price=entry_price, market_fee_pct=market_fee_pct, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, ) @@ -380,8 +380,8 @@ def nb_rpa_slbcb_p( + stringer[StringerFuncType.float_to_str](position_size_asset) + "\nposition_size_usd= " + stringer[StringerFuncType.float_to_str](position_size_usd) - + "\npossible_loss= " - + stringer[StringerFuncType.float_to_str](possible_loss) + + "\ntotal_possible_loss= " + + stringer[StringerFuncType.float_to_str](total_possible_loss) + "\ntotal_trades= " + stringer[StringerFuncType.float_to_str](total_trades) + "\nsl_pct= " @@ -394,7 +394,7 @@ def nb_rpa_slbcb_p( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) @@ -414,7 +414,7 @@ def nb_rpa_slbcb_np( market_fee_pct = acc_ex_other.market_fee_pct max_asset_size = acc_ex_other.max_asset_size min_asset_size = acc_ex_other.min_asset_size - possible_loss = acc_ex_other.possible_loss + total_possible_loss = acc_ex_other.total_possible_loss total_trades = acc_ex_other.total_trades average_entry = order_info.average_entry @@ -422,23 +422,23 @@ def nb_rpa_slbcb_np( max_equity_risk_pct = order_info.max_equity_risk_pct position_size_asset = order_info.position_size_asset position_size_usd = order_info.position_size_usd - risk_account_pct_size = order_info.risk_account_pct_size + account_pct_risk_per_trade = order_info.account_pct_risk_per_trade sl_price = order_info.sl_price logger("nb_increase_position.py - nb_rpa_slbcb_np() - Calculating") - possible_loss, total_trades = nb_c_pl_ra_ps( + total_possible_loss, total_trades = nb_c_pl_ra_ps( equity=equity, logger=logger, max_equity_risk_pct=max_equity_risk_pct, - possible_loss=possible_loss, - risk_account_pct_size=risk_account_pct_size, + total_possible_loss=total_possible_loss, + account_pct_risk_per_trade=account_pct_risk_per_trade, total_trades=total_trades, ) entry_size_usd = position_size_usd = nb_entry_calc_np( entry_price=entry_price, market_fee_pct=market_fee_pct, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, ) logger( @@ -481,8 +481,8 @@ def nb_rpa_slbcb_np( + stringer[StringerFuncType.float_to_str](position_size_asset) + "\nposition_size_usd= " + stringer[StringerFuncType.float_to_str](position_size_usd) - + "\npossible_loss= " - + stringer[StringerFuncType.float_to_str](possible_loss) + + "\ntotal_possible_loss= " + + stringer[StringerFuncType.float_to_str](total_possible_loss) + "\ntotal_trades= " + stringer[StringerFuncType.float_to_str](total_trades) + "\nsl_pct= " @@ -495,7 +495,7 @@ def nb_rpa_slbcb_np( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) @@ -542,7 +542,7 @@ def nb_min_amount_p( market_fee_pct = acc_ex_other.market_fee_pct max_asset_size = acc_ex_other.max_asset_size min_asset_size = acc_ex_other.min_asset_size - possible_loss = acc_ex_other.possible_loss + total_possible_loss = acc_ex_other.total_possible_loss price_tick_step = acc_ex_other.price_tick_step total_trades = acc_ex_other.total_trades @@ -579,19 +579,19 @@ def nb_min_amount_p( position_size_usd = round(entry_size_usd + position_size_usd, 3) logger("nb_increase_position.py - nb_long_min_amount_p() - position_size_usd position_size_usd}") - possible_loss, total_trades = nb_c_total_trades( + total_possible_loss, total_trades = nb_c_total_trades( average_entry=average_entry, logger=logger, market_fee_pct=market_fee_pct, max_trades=max_trades, position_size_asset=position_size_asset, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, stringer=stringer, total_trades=total_trades, ) logger( - "nb_increase_position.py - nb_long_min_amount_p() - possible_loss, total_trades {possible_loss, total_trades}" + "nb_increase_position.py - nb_long_min_amount_p() - total_possible_loss, total_trades {total_possible_loss, total_trades}" ) nb_c_too_b_s( @@ -615,8 +615,8 @@ def nb_min_amount_p( + stringer[StringerFuncType.float_to_str](position_size_asset) + "\nposition_size_usd= " + stringer[StringerFuncType.float_to_str](position_size_usd) - + "\npossible_loss= " - + stringer[StringerFuncType.float_to_str](possible_loss) + + "\ntotal_possible_loss= " + + stringer[StringerFuncType.float_to_str](total_possible_loss) + "\ntotal_trades= " + stringer[StringerFuncType.float_to_str](total_trades) + "\nsl_pct= " @@ -629,7 +629,7 @@ def nb_min_amount_p( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) @@ -645,7 +645,7 @@ def nb_min_amount_np( market_fee_pct = acc_ex_other.market_fee_pct max_asset_size = acc_ex_other.max_asset_size min_asset_size = acc_ex_other.min_asset_size - possible_loss = acc_ex_other.possible_loss + total_possible_loss = acc_ex_other.total_possible_loss total_trades = acc_ex_other.total_trades average_entry = order_info.average_entry @@ -667,18 +667,18 @@ def nb_min_amount_np( sl_pct = round((average_entry - sl_price) / average_entry, 3) logger("sl_pct={round(sl_pct*100, 3))") - possible_loss, total_trades = nb_c_total_trades( + total_possible_loss, total_trades = nb_c_total_trades( average_entry=average_entry, logger=logger, market_fee_pct=market_fee_pct, max_trades=max_trades, position_size_asset=position_size_asset, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, stringer=stringer, total_trades=total_trades, ) - logger("possible_loss, total_trades {possible_loss, total_trades}") + logger("total_possible_loss, total_trades {total_possible_loss, total_trades}") nb_c_too_b_s( entry_size_asset=entry_size_asset, @@ -701,8 +701,8 @@ def nb_min_amount_np( + stringer[StringerFuncType.float_to_str](position_size_asset) + "\nposition_size_usd= " + stringer[StringerFuncType.float_to_str](position_size_usd) - + "\npossible_loss= " - + stringer[StringerFuncType.float_to_str](possible_loss) + + "\ntotal_possible_loss= " + + stringer[StringerFuncType.float_to_str](total_possible_loss) + "\ntotal_trades= " + stringer[StringerFuncType.float_to_str](total_trades) + "\nsl_pct= " @@ -715,7 +715,7 @@ def nb_min_amount_np( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) diff --git a/quantfreedom/nb_funcs/nb_order_handler/nb_stop_loss.py b/quantfreedom/nb_funcs/nb_order_handler/nb_stop_loss.py index 26e70b14..5fe0161d 100644 --- a/quantfreedom/nb_funcs/nb_order_handler/nb_stop_loss.py +++ b/quantfreedom/nb_funcs/nb_order_handler/nb_stop_loss.py @@ -169,7 +169,7 @@ def nb_move_stop_loss( cash_used=account_state.cash_used, equity=account_state.equity, fees_paid=account_state.fees_paid, - possible_loss=account_state.possible_loss, + total_possible_loss=account_state.total_possible_loss, realized_pnl=account_state.realized_pnl, total_trades=account_state.total_trades, ) diff --git a/quantfreedom/nb_funcs/nb_order_handler/nb_take_profit.py b/quantfreedom/nb_funcs/nb_order_handler/nb_take_profit.py index 8cde490b..55e6a8d7 100644 --- a/quantfreedom/nb_funcs/nb_order_handler/nb_take_profit.py +++ b/quantfreedom/nb_funcs/nb_order_handler/nb_take_profit.py @@ -79,13 +79,13 @@ def nb_tp_rr( market_fee_pct: float, nb_get_tp_price, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, price_tick_step: float, risk_reward: float, stringer, tp_fee_pct: float, ): - profit = -possible_loss * risk_reward + profit = -total_possible_loss * risk_reward logger("nb_take_profit.py - nb_tp_rr() - profit= " + stringer[StringerFuncType.float_to_str](profit)) tp_price = nb_get_tp_price( average_entry=average_entry, diff --git a/quantfreedom/nb_funcs/nb_simulate/nb_sim_df.py b/quantfreedom/nb_funcs/nb_simulate/nb_sim_df.py index df0182b4..6a6e16c7 100644 --- a/quantfreedom/nb_funcs/nb_simulate/nb_sim_df.py +++ b/quantfreedom/nb_funcs/nb_simulate/nb_sim_df.py @@ -98,8 +98,10 @@ def nb_run_df_backtest( + stringer[StringerFuncType.float_to_str](round(dynamic_order_settings.max_equity_risk_pct * 100, 3)) + "\nmax_trades= " + str(dynamic_order_settings.max_trades) - + "\nrisk_account_pct_size= " - + stringer[StringerFuncType.float_to_str](round(dynamic_order_settings.risk_account_pct_size * 100, 3)) + + "\naccount_pct_risk_per_trade= " + + stringer[StringerFuncType.float_to_str]( + round(dynamic_order_settings.account_pct_risk_per_trade * 100, 3) + ) + "\nrisk_reward= " + stringer[StringerFuncType.float_to_str](dynamic_order_settings.risk_reward) + "\nsl_based_on_add_pct= " @@ -352,7 +354,7 @@ def nb_run_df_backtest( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = nb_inc_pos_calculator( @@ -362,7 +364,7 @@ def nb_run_df_backtest( market_fee_pct=market_fee_pct, max_asset_size=max_asset_size, min_asset_size=min_asset_size, - possible_loss=account_state.possible_loss, + total_possible_loss=account_state.total_possible_loss, price_tick_step=price_tick_step, total_trades=account_state.total_trades, ), @@ -374,7 +376,7 @@ def nb_run_df_backtest( max_trades=dynamic_order_settings.max_trades, position_size_asset=order_result.position_size_asset, position_size_usd=order_result.position_size_usd, - risk_account_pct_size=dynamic_order_settings.risk_account_pct_size, + account_pct_risk_per_trade=dynamic_order_settings.account_pct_risk_per_trade, sl_price=sl_price, ), logger=logger, @@ -427,7 +429,7 @@ def nb_run_df_backtest( market_fee_pct=market_fee_pct, nb_get_tp_price=nb_get_tp_price, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, price_tick_step=price_tick_step, risk_reward=dynamic_order_settings.risk_reward, stringer=stringer, @@ -447,7 +449,7 @@ def nb_run_df_backtest( cash_used=cash_used, equity=account_state.equity, fees_paid=0.0, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, realized_pnl=0.0, total_trades=total_trades, ) diff --git a/quantfreedom/nb_funcs/nb_simulate/nb_sim_or.py b/quantfreedom/nb_funcs/nb_simulate/nb_sim_or.py index 7cda0b44..08b768fb 100644 --- a/quantfreedom/nb_funcs/nb_simulate/nb_sim_or.py +++ b/quantfreedom/nb_funcs/nb_simulate/nb_sim_or.py @@ -87,8 +87,8 @@ def nb_run_or_backtest( + stringer[StringerFuncType.float_to_str](round(dynamic_order_settings.max_equity_risk_pct * 100, 3)) + "\nmax_trades= " + str(dynamic_order_settings.max_trades) - + "\nrisk_account_pct_size= " - + stringer[StringerFuncType.float_to_str](round(dynamic_order_settings.risk_account_pct_size * 100, 3)) + + "\naccount_pct_risk_per_trade= " + + stringer[StringerFuncType.float_to_str](round(dynamic_order_settings.account_pct_risk_per_trade * 100, 3)) + "\nrisk_reward= " + stringer[StringerFuncType.float_to_str](dynamic_order_settings.risk_reward) + "\nsl_based_on_add_pct= " @@ -360,7 +360,7 @@ def nb_run_or_backtest( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = nb_inc_pos_calculator( @@ -370,7 +370,7 @@ def nb_run_or_backtest( market_fee_pct=market_fee_pct, max_asset_size=max_asset_size, min_asset_size=min_asset_size, - possible_loss=account_state.possible_loss, + total_possible_loss=account_state.total_possible_loss, price_tick_step=price_tick_step, total_trades=account_state.total_trades, ), @@ -382,7 +382,7 @@ def nb_run_or_backtest( max_trades=dynamic_order_settings.max_trades, position_size_asset=order_result.position_size_asset, position_size_usd=order_result.position_size_usd, - risk_account_pct_size=dynamic_order_settings.risk_account_pct_size, + account_pct_risk_per_trade=dynamic_order_settings.account_pct_risk_per_trade, sl_price=sl_price, ), logger=logger, @@ -435,7 +435,7 @@ def nb_run_or_backtest( market_fee_pct=market_fee_pct, nb_get_tp_price=nb_get_tp_price, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, price_tick_step=price_tick_step, risk_reward=dynamic_order_settings.risk_reward, stringer=stringer, @@ -455,7 +455,7 @@ def nb_run_or_backtest( cash_used=cash_used, equity=account_state.equity, fees_paid=0.0, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, realized_pnl=0.0, total_trades=total_trades, ) diff --git a/quantfreedom/order_handler/increase_position.py b/quantfreedom/order_handler/increase_position.py index dde1c831..8c2c3499 100644 --- a/quantfreedom/order_handler/increase_position.py +++ b/quantfreedom/order_handler/increase_position.py @@ -10,7 +10,7 @@ class IncreasePosition: - risk_account_pct_size: float + account_pct_risk_per_trade: float max_equity_risk_pct: float max_trades: int @@ -101,7 +101,7 @@ def c_too_b_s( def c_pl_ra_ps( self, equity: float, - possible_loss: float, + total_possible_loss: float, total_trades: int, ) -> tuple[int, int]: """ @@ -113,36 +113,38 @@ def c_pl_ra_ps( ---------- equity : float equity - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss total_trades : int total_trades Returns ------- int, int - possible_loss, total_trades + total_possible_loss, total_trades """ - possible_loss = int(possible_loss - equity * self.risk_account_pct_size) - logger.debug(f"possible_loss= {possible_loss}") - - max_equity_risk = -int(equity * self.max_equity_risk_pct) - logger.debug(f"max_equity_risk= {max_equity_risk}") - if possible_loss < max_equity_risk: - logger.warning(f"PL too big possible_loss= {possible_loss} max risk= {max_equity_risk}") + total_trades += 1 + if total_trades > self.max_trades: + logger.warning(f"Max trades reached - total trades= {total_trades} max trades= {self.max_trades}") raise RejectedOrder - total_trades += 1 + possible_loss = -int(equity * self.account_pct_risk_per_trade) + + total_possible_loss = int(total_possible_loss + possible_loss) logger.debug( - f"PL is fine possible_loss= {possible_loss} max risk= {max_equity_risk} total trades= {total_trades}" + f""" +total trades= {total_trades} +max trades= {self.max_trades} +possible_loss= {possible_loss} +total_possible_loss= {total_possible_loss}""" ) - return possible_loss, total_trades + return total_possible_loss, total_trades def c_total_trades( self, average_entry: float, - possible_loss: float, + total_possible_loss: float, position_size_asset: float, sl_price: float, total_trades: int, @@ -156,8 +158,8 @@ def c_total_trades( ---------- average_entry : float average_entry - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss position_size_asset : float position_size_asset sl_price : float @@ -168,26 +170,35 @@ def c_total_trades( Returns ------- tuple[int, int] - possible_loss, total_trades + total_possible_loss, total_trades """ - pnl = -abs(average_entry - sl_price) * position_size_asset # math checked - fee_open = position_size_asset * average_entry * self.market_fee_pct # math checked - fee_close = position_size_asset * sl_price * self.market_fee_pct # math checked - fees_paid = fee_open + fee_close # math checked - possible_loss = int(pnl - fees_paid) - - logger.debug(f"possible_loss= {possible_loss}") - total_trades += 1 if total_trades > self.max_trades: logger.warning( - f"Max trades reached total trades= {total_trades} max trades= {self.max_trades} possible_loss= {possible_loss}" + f""" +Max trades reached +Total trades= {total_trades} +max trades= {self.max_trades} +possible_loss= {possible_loss} +total_possible_loss= {total_possible_loss}""" ) raise RejectedOrder + + pnl = -abs(average_entry - sl_price) * position_size_asset # math checked + fee_open = position_size_asset * average_entry * self.market_fee_pct # math checked + fee_close = position_size_asset * sl_price * self.market_fee_pct # math checked + fees_paid = fee_open + fee_close # math checked + possible_loss = -int(pnl - fees_paid) + total_possible_loss = int(total_possible_loss + possible_loss) + logger.debug( - f"Max trades reached - total trades= {total_trades} max trades= {self.max_trades} possible_loss= {possible_loss}" + f""" +Total trades= {total_trades} +max trades= {self.max_trades} +possible_loss= {possible_loss} +total_possible_loss= {total_possible_loss}""" ) - return possible_loss, total_trades + return total_possible_loss, total_trades def min_asset_amount( self, @@ -196,7 +207,7 @@ def min_asset_amount( equity: float, position_size_asset: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, total_trades: int, ) -> tuple[float, float, float, float, float, float, int, int, float]: @@ -217,8 +228,8 @@ def min_asset_amount( position_size_asset position_size_usd : float position_size_usd - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price total_trades : int @@ -233,7 +244,7 @@ def min_asset_amount( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct """ @@ -244,7 +255,7 @@ def min_asset_amount( entry_price=entry_price, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, total_trades=total_trades, ) @@ -261,7 +272,7 @@ def min_amount_p( entry_price: float, position_size_asset: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, total_trades: int, ) -> tuple[float, float, float, float, float, float, int, int, float]: @@ -280,8 +291,8 @@ def min_amount_p( position_size_asset position_size_usd : float position_size_usd - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price total_trades : int @@ -296,7 +307,7 @@ def min_amount_p( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct """ @@ -322,14 +333,14 @@ def min_amount_p( position_size_usd = round(entry_size_usd + position_size_usd, 3) logger.debug(f"position_size_usd= {position_size_usd}") - possible_loss, total_trades = self.c_total_trades( + total_possible_loss, total_trades = self.c_total_trades( average_entry=average_entry, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, total_trades=total_trades, position_size_asset=position_size_asset, sl_price=sl_price, ) - logger.debug(f"possible_loss= {possible_loss} total_trades= {total_trades}") + logger.debug(f"total_possible_loss= {total_possible_loss} total_trades= {total_trades}") self.c_too_b_s(entry_size_asset=entry_size_asset) return ( @@ -339,7 +350,7 @@ def min_amount_p( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) @@ -370,7 +381,7 @@ def min_amount_np( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct """ @@ -385,14 +396,14 @@ def min_amount_np( sl_pct = round(abs(average_entry - sl_price) / average_entry, 3) logger.debug(f"sl_pct= {round(sl_pct*100, 3)}") - possible_loss, total_trades = self.c_total_trades( + total_possible_loss, total_trades = self.c_total_trades( average_entry=average_entry, position_size_asset=position_size_asset, - possible_loss=0, + total_possible_loss=0, sl_price=sl_price, total_trades=0, ) - logger.debug(f"possible_loss= {possible_loss} total_trades {total_trades}") + logger.debug(f"total_possible_loss= {total_possible_loss} total_trades {total_trades}") self.c_too_b_s( entry_size_asset=entry_size_asset, @@ -404,7 +415,7 @@ def min_amount_np( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) @@ -414,7 +425,7 @@ def long_entry_size_p( average_entry: float, entry_price: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, ) -> float: """ @@ -434,8 +445,8 @@ def long_entry_size_p( entry_price position_size_usd : float position_size_usd - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price @@ -448,7 +459,7 @@ def long_entry_size_p( return round( -( ( - entry_price * average_entry * possible_loss + entry_price * average_entry * total_possible_loss - entry_price * sl_price * position_size_usd + entry_price * sl_price * self.market_fee_pct * position_size_usd + entry_price * average_entry * position_size_usd @@ -465,7 +476,7 @@ def long_entry_size_p( def long_entry_size_np( self, entry_price: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, ) -> float: """ @@ -481,8 +492,8 @@ def long_entry_size_np( ---------- entry_price : float entry_price - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price @@ -494,7 +505,7 @@ def long_entry_size_np( return round( entry_price - * -possible_loss + * -total_possible_loss / (-sl_price + entry_price + entry_price * self.market_fee_pct + self.market_fee_pct * sl_price), 3, ) @@ -504,7 +515,7 @@ def short_entry_size_p( average_entry: float, entry_price: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, ) -> float: """ @@ -524,8 +535,8 @@ def short_entry_size_p( entry_price position_size_usd : float position_size_usd - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price @@ -538,7 +549,7 @@ def short_entry_size_p( return round( -( ( - entry_price * average_entry * possible_loss + entry_price * average_entry * total_possible_loss - entry_price * average_entry * position_size_usd + entry_price * sl_price * position_size_usd + entry_price * sl_price * self.market_fee_pct * position_size_usd @@ -554,7 +565,7 @@ def short_entry_size_p( def short_entry_size_np( self, - possible_loss: float, + total_possible_loss: float, sl_price: float, entry_price: float, ) -> float: @@ -571,8 +582,8 @@ def short_entry_size_np( ---------- entry_price : float entry_price - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price @@ -583,7 +594,7 @@ def short_entry_size_np( """ return -round( entry_price - * -possible_loss + * -total_possible_loss / (-entry_price + sl_price + entry_price * self.market_fee_pct + self.market_fee_pct * sl_price), 3, ) @@ -595,7 +606,7 @@ def rpa_slbcb( entry_price: float, position_size_asset: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, total_trades: int, ) -> tuple[float, float, float, float, float, float, int, int, float]: @@ -616,8 +627,8 @@ def rpa_slbcb( position_size_asset position_size_usd : float position_size_usd - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price total_trades : int @@ -632,7 +643,7 @@ def rpa_slbcb( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct """ @@ -644,7 +655,7 @@ def rpa_slbcb( entry_price=entry_price, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, total_trades=total_trades, ) @@ -663,7 +674,7 @@ def rpa_slbcb_p( equity: float, position_size_asset: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, total_trades: int, ) -> tuple[float, float, float, float, float, float, int, int, float]: @@ -684,8 +695,8 @@ def rpa_slbcb_p( position_size_asset position_size_usd : float position_size_usd - possible_loss : float - possible_loss + total_possible_loss : float + total_possible_loss sl_price : float sl_price total_trades : int @@ -700,18 +711,18 @@ def rpa_slbcb_p( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct """ - possible_loss, total_trades = self.c_pl_ra_ps( + total_possible_loss, total_trades = self.c_pl_ra_ps( equity=equity, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, total_trades=total_trades, ) entry_size_usd = self.entry_calc_p( - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, entry_price=entry_price, average_entry=average_entry, @@ -752,7 +763,7 @@ def rpa_slbcb_p( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) @@ -786,18 +797,18 @@ def rpa_slbcb_np( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct """ - possible_loss, total_trades = self.c_pl_ra_ps( + total_possible_loss, total_trades = self.c_pl_ra_ps( equity=equity, - possible_loss=0, + total_possible_loss=0, total_trades=0, ) entry_size_usd = position_size_usd = self.entry_calc_np( - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, entry_price=entry_price, ) @@ -819,7 +830,7 @@ def rpa_slbcb_np( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) diff --git a/quantfreedom/order_handler/leverage.py b/quantfreedom/order_handler/leverage.py index 4b8d4d4d..94fa4963 100644 --- a/quantfreedom/order_handler/leverage.py +++ b/quantfreedom/order_handler/leverage.py @@ -9,7 +9,7 @@ class Leverage: def __init__( self, - leverage_strategy_type: LeverageStrategyType, + leverage_strategy_type: LeverageStrategyType, # type: ignore leverage_tick_step: float, long_short: str, market_fee_pct: float, @@ -99,12 +99,13 @@ def calc_liq_price( cash_used = initial_margin + fee_to_open + fee_to_close # math checked logger.debug( - f"\ninitial_margin= {round(initial_margin, 3)}\ - \nfee_to_open= {round(fee_to_open, 3)}\ - \nbankruptcy_price= {round(bankruptcy_price, 3)}\ - \nfee to close= {round(fee_to_close, 3)}\ - \ncash_used= {round(cash_used, 3)}\ - \nog_available_balance= {og_available_balance}" + f""" +initial_margin= {round(initial_margin, 3)} +fee_to_open= {round(fee_to_open, 3)} +bankruptcy_price= {round(bankruptcy_price, 3)} +fee to close= {round(fee_to_close, 3)} +cash_used= {round(cash_used, 3)} +og_available_balance= {og_available_balance}""" ) if cash_used > og_available_balance: diff --git a/quantfreedom/order_handler/order.py b/quantfreedom/order_handler/order.py index cb032d7a..599b723e 100644 --- a/quantfreedom/order_handler/order.py +++ b/quantfreedom/order_handler/order.py @@ -99,7 +99,7 @@ def set_order_variables(self, equity: float): self.order_status = 0 self.position_size_asset = 0.0 self.position_size_usd = 0.0 - self.possible_loss = 0.0 + self.total_possible_loss = 0.0 self.realized_pnl = 0.0 self.sl_pct = 0.0 self.sl_price = 0.0 @@ -113,7 +113,7 @@ def fill_or_exit_move( dos_index: int, ind_set_index: int, order_records: np.array, - order_status: OrderStatus, + order_status: OrderStatus, # type: ignore timestamp: int, equity: float = np.nan, exit_price: float = np.nan, @@ -137,7 +137,7 @@ def fill_or_exit_move( order_records["leverage"] = np.nan order_records["liq_price"] = np.nan order_records["order_status"] = order_status - order_records["possible_loss"] = 0 + order_records["total_possible_loss"] = 0 order_records["total_trades"] = 0 order_records["entry_size_asset"] = np.nan order_records["entry_size_usd"] = np.nan @@ -174,7 +174,7 @@ def fill_or_entry( order_records["leverage"] = self.leverage order_records["liq_price"] = self.liq_price order_records["order_status"] = self.order_status - order_records["possible_loss"] = self.possible_loss + order_records["total_possible_loss"] = self.total_possible_loss order_records["total_trades"] = self.total_trades order_records["entry_size_asset"] = self.entry_size_asset order_records["entry_size_usd"] = self.entry_size_usd @@ -235,8 +235,7 @@ def update_class_dos( # increase position self.obj_inc_pos.max_trades = dynamic_order_settings.max_trades - self.obj_inc_pos.risk_account_pct_size = dynamic_order_settings.risk_account_pct_size - self.obj_inc_pos.max_equity_risk_pct = dynamic_order_settings.max_equity_risk_pct + self.obj_inc_pos.account_pct_risk_per_trade = dynamic_order_settings.account_pct_risk_per_trade # stop loss updates self.obj_stop_loss.sl_based_on_add_pct = dynamic_order_settings.sl_based_on_add_pct @@ -257,7 +256,7 @@ def calculate_stop_loss( bar_index=bar_index, candles=candles, ) - logger.info(f"\nsl price= {sl_price}") + logger.info(f"sl price= {sl_price}") return sl_price def calculate_increase_position( @@ -267,7 +266,7 @@ def calculate_increase_position( entry_price: float, position_size_asset: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, sl_price: float, total_trades: int, ): @@ -278,7 +277,7 @@ def calculate_increase_position( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = self.obj_inc_pos.inc_pos_calculator( @@ -287,21 +286,19 @@ def calculate_increase_position( entry_price=entry_price, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, sl_price=sl_price, total_trades=total_trades, ) logger.info( - f"\ - \naverage_entry= {average_entry}\ - \nentry_price= {entry_price}\ - \nentry_size_asset= {entry_size_asset}\ - \nentry_size_usd= {entry_size_usd}\ - \nposition_size_asset= {position_size_asset}\ - \nposition_size_usd= {position_size_usd}\ - \npossible_loss= {possible_loss}\ - \ntotal_trades= {total_trades}\ - \nsl_pct= {round(sl_pct*100, 3)}" + f""" +average_entry= {average_entry} +entry_price= {entry_price} +entry_size_asset= {entry_size_asset} +entry_size_usd= {entry_size_usd} +position_size_asset= {position_size_asset} +position_size_usd= {position_size_usd} +sl_pct= {round(sl_pct*100, 3)}""" ) return ( average_entry, @@ -310,7 +307,7 @@ def calculate_increase_position( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) @@ -341,12 +338,12 @@ def calculate_leverage( sl_price=sl_price, ) logger.info( - f"\ - \navailable_balance= {available_balance}\ - \ncash_borrowed= {cash_borrowed}\ - \ncash_used= {cash_used}\ - \nleverage= {leverage}\ - \nliq_price= {liq_price}" + f""" +available_balance= {available_balance} +cash_borrowed= {cash_borrowed} +cash_used= {cash_used} +leverage= {leverage} +liq_price= {liq_price}""" ) return ( available_balance, @@ -360,7 +357,7 @@ def calculate_take_profit( self, average_entry: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, ): ( can_move_sl_to_be, @@ -369,12 +366,12 @@ def calculate_take_profit( ) = self.obj_take_profit.tp_calculator( average_entry=average_entry, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, ) logger.info( - f"\ - \ntp_price= {tp_price}\ - \ntp_pct= {round(tp_pct * 100, 3)}" + f""" +tp_price= {tp_price} +tp_pct= {round(tp_pct * 100, 3)}""" ) return ( can_move_sl_to_be, @@ -394,7 +391,7 @@ def calculate_decrease_position( exit_price: float, equity: float, market_fee_pct: float, - order_status: OrderStatus, + order_status: OrderStatus, # type: ignore ): pnl = self.pnl_calc(exit_price=exit_price) # math checked logger.debug(f"pnl= {pnl}") @@ -415,11 +412,11 @@ def calculate_decrease_position( logger.debug(f"equity= {equity}") logger.info( - f"\ - \nequity= {equity}\ - \nfees_paid= {fees_paid}\ - \norder_status= {OrderStatus._fields[order_status]}\ - \nrealized_pnl= {realized_pnl}" + f""" +equity= {equity} +fees_paid= {fees_paid} +order_status= {OrderStatus._fields[order_status]} +realized_pnl= {realized_pnl}""" ) return ( equity, @@ -445,7 +442,7 @@ def fill_order_result( order_status: float, position_size_asset: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, realized_pnl: float, sl_pct: float, sl_price: float, @@ -469,10 +466,10 @@ def fill_order_result( self.order_status = order_status self.position_size_asset = position_size_asset self.position_size_usd = position_size_usd - self.possible_loss = possible_loss + self.total_possible_loss = total_possible_loss self.realized_pnl = realized_pnl self.sl_pct = sl_pct self.sl_price = sl_price self.total_trades = total_trades self.tp_pct = tp_pct - self.tp_price = tp_price \ No newline at end of file + self.tp_price = tp_price diff --git a/quantfreedom/order_handler/take_profit.py b/quantfreedom/order_handler/take_profit.py index df7c57de..e46256be 100644 --- a/quantfreedom/order_handler/take_profit.py +++ b/quantfreedom/order_handler/take_profit.py @@ -82,15 +82,16 @@ def long_c_tp_candle( ): candle_high = current_candle[CandleBodyType.High] logger.debug(f"candle_high= {candle_high}") - return tp_price < candle_high + result = tp_price < candle_high + return result def tp_rr( self, average_entry: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, ): - profit = -possible_loss * self.risk_reward + profit = -total_possible_loss * self.risk_reward logger.debug(f"possible profit= {profit}") tp_price = self.get_tp_price( average_entry=average_entry, @@ -118,7 +119,7 @@ def tp_provided( self, average_entry: float, position_size_usd: float, - possible_loss: float, + total_possible_loss: float, ): can_move_sl_to_be = True tp_price = np.nan diff --git a/quantfreedom/simulate.py b/quantfreedom/simulate.py index d077e537..0f51ff58 100644 --- a/quantfreedom/simulate.py +++ b/quantfreedom/simulate.py @@ -155,8 +155,7 @@ def run_df_backtest( except Exception as e: logger.error(f"Exception checking sl liq tp and move -> {e}") - # raise Exception(f"Exception checking sl liq tp and move -> {e}") - pass + raise Exception(f"Exception checking sl liq tp and move -> {e}") else: logger.debug("Not in a pos so not checking SL Liq or TP") @@ -178,7 +177,7 @@ def run_df_backtest( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = order.calculate_increase_position( @@ -187,7 +186,7 @@ def run_df_backtest( equity=order.equity, position_size_asset=order.position_size_asset, position_size_usd=order.position_size_usd, - possible_loss=order.possible_loss, + total_possible_loss=order.total_possible_loss, sl_price=sl_price, total_trades=order.total_trades, ) @@ -217,7 +216,7 @@ def run_df_backtest( ) = order.calculate_take_profit( average_entry=average_entry, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, ) logger.debug("filling order result") order.fill_order_result( @@ -237,7 +236,7 @@ def run_df_backtest( order_status=OrderStatus.EntryFilled, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, realized_pnl=np.nan, sl_pct=sl_pct, sl_price=sl_price, @@ -250,21 +249,21 @@ def run_df_backtest( pass except Exception as e: logger.error(f"Exception hit in eval strat -> {e}") - # raise Exception(f"Exception hit in eval strat -> {e}") - pass + raise Exception(f"Exception hit in eval strat -> {e}") # Checking if gains gains_pct = round(((order.equity - starting_equity) / starting_equity) * 100, 3) wins_and_losses_array = pnl_array[~np.isnan(pnl_array)] total_trades_closed = wins_and_losses_array.size logger.info( - f"Results from backtest\ - \nind_set_index={ind_set_index}\ - \ndos_index={dos_index}\ - \nStarting eq={starting_equity}\ - \nEnding eq={order.equity}\ - \nGains pct={gains_pct}\ - \ntotal_trades={total_trades_closed}" + f""" +Results from backtest +ind_set_index={ind_set_index} +dos_index={dos_index} +Starting eq={starting_equity} +Ending eq={order.equity} +Gains pct={gains_pct} +total_trades={total_trades_closed}""" ) if total_trades_closed > 0 and gains_pct > backtest_settings.gains_pct_filter: if wins_and_losses_array.size > backtest_settings.total_trade_filter: @@ -469,7 +468,7 @@ def or_backtest( entry_size_usd, position_size_asset, position_size_usd, - possible_loss, + total_possible_loss, total_trades, sl_pct, ) = order.calculate_increase_position( @@ -478,7 +477,7 @@ def or_backtest( equity=order.equity, position_size_asset=order.position_size_asset, position_size_usd=order.position_size_usd, - possible_loss=order.possible_loss, + total_possible_loss=order.total_possible_loss, sl_price=sl_price, total_trades=order.total_trades, ) @@ -508,7 +507,7 @@ def or_backtest( ) = order.calculate_take_profit( average_entry=average_entry, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, ) logger.debug("calculate_take_profit") @@ -529,7 +528,7 @@ def or_backtest( order_status=OrderStatus.EntryFilled, position_size_asset=position_size_asset, position_size_usd=position_size_usd, - possible_loss=possible_loss, + total_possible_loss=total_possible_loss, realized_pnl=np.nan, sl_pct=sl_pct, sl_price=sl_price, @@ -551,6 +550,7 @@ def or_backtest( pass except Exception as e: if bar_index + 1 >= candles.shape[0]: + raise Exception(f"Exception hit in eval strat -> {e}") pass else: logger.error(f"Exception hit in eval strat -> {e}") diff --git a/tests/randoms/zzz_nb.ipynb b/tests/randoms/zzz_nb.ipynb index 217cff5d..5561a338 100644 --- a/tests/randoms/zzz_nb.ipynb +++ b/tests/randoms/zzz_nb.ipynb @@ -77,7 +77,7 @@ " cash_used=0.0,\n", " equity=equity,\n", " fees_paid=fees_paid,\n", - " possible_loss=0.0,\n", + " total_possible_loss=0.0,\n", " realized_pnl=realized_pnl,\n", " total_trades=0,\n", " )\n", @@ -122,7 +122,7 @@ " cash_used=0.0,\n", " equity=1000,\n", " fees_paid=0.0,\n", - " possible_loss=0.0,\n", + " total_possible_loss=0.0,\n", " realized_pnl=0.0,\n", " total_trades=0,\n", " )\n", diff --git a/tests/strategy/dynamic_lookback.ipynb b/tests/strategy/dynamic_lookback.ipynb index c9ed88b0..29dc667b 100644 --- a/tests/strategy/dynamic_lookback.ipynb +++ b/tests/strategy/dynamic_lookback.ipynb @@ -68,7 +68,7 @@ "dos_arrays = DynamicOrderSettingsArrays(\n", " max_equity_risk_pct=np.array([6]),\n", " max_trades=np.array([5]),\n", - " risk_account_pct_size=np.array([3]),\n", + " account_pct_risk_per_trade=np.array([3]),\n", " risk_reward=np.array([6]),\n", " sl_based_on_add_pct=np.array([0.1]),\n", " sl_based_on_lookback=np.array([20]),\n", diff --git a/tests/strategy/full_strat_long.ipynb b/tests/strategy/full_strat_long.ipynb index ea594f9c..37805f08 100644 --- a/tests/strategy/full_strat_long.ipynb +++ b/tests/strategy/full_strat_long.ipynb @@ -4,22 +4,7 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "field 'available_balance' occurs more than once", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[1], line 5\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mdatetime\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m datetime\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01menv\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m MufexKeys\n\u001b[1;32m----> 5\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mstrat\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m RSIRisingFalling\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01menums\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m CandleBodyType\n\u001b[0;32m 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01menums\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;241m*\u001b[39m\n", - "File \u001b[1;32me:\\Coding\\backtesters\\QuantFreedom\\tests\\strategy\\strat.py:10\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlogging\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m getLogger\n\u001b[0;32m 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtyping\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m NamedTuple\n\u001b[1;32m---> 10\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mhelper_funcs\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m cart_product\n\u001b[0;32m 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mindicators\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtv_indicators\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m rsi_tv\n\u001b[0;32m 12\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01menums\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m CandleBodyType\n", - "File \u001b[1;32mE:\\Coding\\backtesters\\QuantFreedom\\quantfreedom\\helper_funcs.py:7\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlogging\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m getLogger\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mdatetime\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m datetime\n\u001b[1;32m----> 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01menums\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AccountState, DynamicOrderSettings, DynamicOrderSettingsArrays, OrderResult\n\u001b[0;32m 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexchanges\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mapex_exchange\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mapex\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Apex\n\u001b[0;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mquantfreedom\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexchanges\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mbinance_exchange\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mbinance_us\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m BinanceUS\n", - "File \u001b[1;32mE:\\Coding\\backtesters\\QuantFreedom\\quantfreedom\\enums.py:359\u001b[0m\n\u001b[0;32m 327\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmsg \u001b[38;5;241m=\u001b[39m msg\n\u001b[0;32m 330\u001b[0m order_settings_array_dt \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mdtype(\n\u001b[0;32m 331\u001b[0m [\n\u001b[0;32m 332\u001b[0m (\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mor_set_idx\u001b[39m\u001b[38;5;124m\"\u001b[39m, np\u001b[38;5;241m.\u001b[39mint_),\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 355\u001b[0m align\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[0;32m 356\u001b[0m )\n\u001b[1;32m--> 359\u001b[0m or_dt \u001b[38;5;241m=\u001b[39m \u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 360\u001b[0m \u001b[43m \u001b[49m\u001b[43m[\u001b[49m\n\u001b[0;32m 361\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mind_set_idx\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mint_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 362\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mor_set_idx\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mint_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 363\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mbar_idx\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mint_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 364\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtimestamp\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mint64\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 365\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43morder_status\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mint_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 366\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mavailable_balance\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 367\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mavailable_balance\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 368\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcash_borrowed\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 369\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcash_used\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 370\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43maverage_entry\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 371\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfees_paid\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 372\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mleverage\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 373\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mliq_price\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 374\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mpossible_loss\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mint_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 375\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtotal_trades\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mint_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 376\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mentry_size_asset\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 377\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mentry_size_usd\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 378\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mentry_price\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 379\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mexit_price\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 380\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mposition_size_asset\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 381\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mposition_size_usd\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 382\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrealized_pnl\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 383\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43msl_pct\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 384\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43msl_price\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 385\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtp_pct\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 386\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtp_price\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat_\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 387\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 388\u001b[0m \u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 389\u001b[0m \u001b[43m)\u001b[49m\n\u001b[0;32m 391\u001b[0m strat_df_array_dt \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mdtype(\n\u001b[0;32m 392\u001b[0m [\n\u001b[0;32m 393\u001b[0m (\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mind_set_idx\u001b[39m\u001b[38;5;124m\"\u001b[39m, np\u001b[38;5;241m.\u001b[39mint_),\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 405\u001b[0m align\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[0;32m 406\u001b[0m )\n", - "\u001b[1;31mValueError\u001b[0m: field 'available_balance' occurs more than once" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "from datetime import datetime\n", @@ -49,28 +34,12942 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "candles = dl_ex_candles(\n", " exchange=\"mufex\",\n", " symbol=\"BTCUSDT\",\n", - " timeframe=\"1h\",\n", + " timeframe=\"5m\",\n", " candles_to_dl=3000,\n", ")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "line": { + "color": "yellow" + }, + "name": "RSI", + "type": "scatter", + "x": [ + "2024-03-13T16:35:00.000", + "2024-03-13T16:40:00.000", + "2024-03-13T16:45:00.000", + "2024-03-13T16:50:00.000", + "2024-03-13T16:55:00.000", + "2024-03-13T17:00:00.000", + "2024-03-13T17:05:00.000", + "2024-03-13T17:10:00.000", + "2024-03-13T17:15:00.000", + "2024-03-13T17:20:00.000", + "2024-03-13T17:25:00.000", + "2024-03-13T17:30:00.000", + "2024-03-13T17:35:00.000", + "2024-03-13T17:40:00.000", + "2024-03-13T17:45:00.000", + "2024-03-13T17:50:00.000", + "2024-03-13T17:55:00.000", + "2024-03-13T18:00:00.000", + "2024-03-13T18:05:00.000", + "2024-03-13T18:10:00.000", + "2024-03-13T18:15:00.000", + "2024-03-13T18:20:00.000", + "2024-03-13T18:25:00.000", + "2024-03-13T18:30:00.000", + "2024-03-13T18:35:00.000", + "2024-03-13T18:40:00.000", + "2024-03-13T18:45:00.000", + "2024-03-13T18:50:00.000", + "2024-03-13T18:55:00.000", + "2024-03-13T19:00:00.000", + "2024-03-13T19:05:00.000", + "2024-03-13T19:10:00.000", + "2024-03-13T19:15:00.000", + "2024-03-13T19:20:00.000", + "2024-03-13T19:25:00.000", + "2024-03-13T19:30:00.000", + "2024-03-13T19:35:00.000", + "2024-03-13T19:40:00.000", + "2024-03-13T19:45:00.000", + "2024-03-13T19:50:00.000", + "2024-03-13T19:55:00.000", + "2024-03-13T20:00:00.000", + "2024-03-13T20:05:00.000", + "2024-03-13T20:10:00.000", + "2024-03-13T20:15:00.000", + "2024-03-13T20:20:00.000", + "2024-03-13T20:25:00.000", + "2024-03-13T20:30:00.000", + "2024-03-13T20:35:00.000", + "2024-03-13T20:40:00.000", + "2024-03-13T20:45:00.000", + "2024-03-13T20:50:00.000", + "2024-03-13T20:55:00.000", + "2024-03-13T21:00:00.000", + "2024-03-13T21:05:00.000", + "2024-03-13T21:10:00.000", + "2024-03-13T21:15:00.000", + "2024-03-13T21:20:00.000", + "2024-03-13T21:25:00.000", + "2024-03-13T21:30:00.000", + "2024-03-13T21:35:00.000", + "2024-03-13T21:40:00.000", + "2024-03-13T21:45:00.000", + "2024-03-13T21:50:00.000", + "2024-03-13T21:55:00.000", + "2024-03-13T22:00:00.000", + "2024-03-13T22:05:00.000", + "2024-03-13T22:10:00.000", + "2024-03-13T22:15:00.000", + "2024-03-13T22:20:00.000", + "2024-03-13T22:25:00.000", + "2024-03-13T22:30:00.000", + "2024-03-13T22:35:00.000", + "2024-03-13T22:40:00.000", + "2024-03-13T22:45:00.000", + "2024-03-13T22:50:00.000", + "2024-03-13T22:55:00.000", + "2024-03-13T23:00:00.000", + "2024-03-13T23:05:00.000", + "2024-03-13T23:10:00.000", + "2024-03-13T23:15:00.000", + "2024-03-13T23:20:00.000", + "2024-03-13T23:25:00.000", + "2024-03-13T23:30:00.000", + "2024-03-13T23:35:00.000", + "2024-03-13T23:40:00.000", + "2024-03-13T23:45:00.000", + "2024-03-13T23:50:00.000", + "2024-03-13T23:55:00.000", + "2024-03-14T00:00:00.000", + "2024-03-14T00:05:00.000", + "2024-03-14T00:10:00.000", + "2024-03-14T00:15:00.000", + "2024-03-14T00:20:00.000", + "2024-03-14T00:25:00.000", + "2024-03-14T00:30:00.000", + "2024-03-14T00:35:00.000", + "2024-03-14T00:40:00.000", + "2024-03-14T00:45:00.000", + "2024-03-14T00:50:00.000", + "2024-03-14T00:55:00.000", + "2024-03-14T01:00:00.000", + "2024-03-14T01:05:00.000", + "2024-03-14T01:10:00.000", + "2024-03-14T01:15:00.000", + "2024-03-14T01:20:00.000", + "2024-03-14T01:25:00.000", + "2024-03-14T01:30:00.000", + "2024-03-14T01:35:00.000", + "2024-03-14T01:40:00.000", + "2024-03-14T01:45:00.000", + "2024-03-14T01:50:00.000", + "2024-03-14T01:55:00.000", + "2024-03-14T02:00:00.000", + "2024-03-14T02:05:00.000", + "2024-03-14T02:10:00.000", + "2024-03-14T02:15:00.000", + "2024-03-14T02:20:00.000", + "2024-03-14T02:25:00.000", + "2024-03-14T02:30:00.000", + "2024-03-14T02:35:00.000", + "2024-03-14T02:40:00.000", + "2024-03-14T02:45:00.000", + "2024-03-14T02:50:00.000", + "2024-03-14T02:55:00.000", + "2024-03-14T03:00:00.000", + "2024-03-14T03:05:00.000", + "2024-03-14T03:10:00.000", + "2024-03-14T03:15:00.000", + "2024-03-14T03:20:00.000", + "2024-03-14T03:25:00.000", + "2024-03-14T03:30:00.000", + "2024-03-14T03:35:00.000", + "2024-03-14T03:40:00.000", + "2024-03-14T03:45:00.000", + "2024-03-14T03:50:00.000", + "2024-03-14T03:55:00.000", + "2024-03-14T04:00:00.000", + "2024-03-14T04:05:00.000", + "2024-03-14T04:10:00.000", + "2024-03-14T04:15:00.000", + "2024-03-14T04:20:00.000", + "2024-03-14T04:25:00.000", + "2024-03-14T04:30:00.000", + "2024-03-14T04:35:00.000", + "2024-03-14T04:40:00.000", + "2024-03-14T04:45:00.000", + "2024-03-14T04:50:00.000", + "2024-03-14T04:55:00.000", + "2024-03-14T05:00:00.000", + "2024-03-14T05:05:00.000", + "2024-03-14T05:10:00.000", + "2024-03-14T05:15:00.000", + "2024-03-14T05:20:00.000", + "2024-03-14T05:25:00.000", + "2024-03-14T05:30:00.000", + "2024-03-14T05:35:00.000", + "2024-03-14T05:40:00.000", + "2024-03-14T05:45:00.000", + "2024-03-14T05:50:00.000", + "2024-03-14T05:55:00.000", + "2024-03-14T06:00:00.000", + "2024-03-14T06:05:00.000", + "2024-03-14T06:10:00.000", + "2024-03-14T06:15:00.000", + "2024-03-14T06:20:00.000", + "2024-03-14T06:25:00.000", + "2024-03-14T06:30:00.000", + "2024-03-14T06:35:00.000", + "2024-03-14T06:40:00.000", + "2024-03-14T06:45:00.000", + "2024-03-14T06:50:00.000", + "2024-03-14T06:55:00.000", + "2024-03-14T07:00:00.000", + "2024-03-14T07:05:00.000", + "2024-03-14T07:10:00.000", + "2024-03-14T07:15:00.000", + "2024-03-14T07:20:00.000", + "2024-03-14T07:25:00.000", + "2024-03-14T07:30:00.000", + "2024-03-14T07:35:00.000", + "2024-03-14T07:40:00.000", + "2024-03-14T07:45:00.000", + "2024-03-14T07:50:00.000", + "2024-03-14T07:55:00.000", + "2024-03-14T08:00:00.000", + "2024-03-14T08:05:00.000", + "2024-03-14T08:10:00.000", + "2024-03-14T08:15:00.000", + "2024-03-14T08:20:00.000", + "2024-03-14T08:25:00.000", + "2024-03-14T08:30:00.000", + "2024-03-14T08:35:00.000", + "2024-03-14T08:40:00.000", + "2024-03-14T08:45:00.000", + "2024-03-14T08:50:00.000", + "2024-03-14T08:55:00.000", + "2024-03-14T09:00:00.000", + "2024-03-14T09:05:00.000", + "2024-03-14T09:10:00.000", + "2024-03-14T09:15:00.000", + "2024-03-14T09:20:00.000", + "2024-03-14T09:25:00.000", + "2024-03-14T09:30:00.000", + "2024-03-14T09:35:00.000", + "2024-03-14T09:40:00.000", + "2024-03-14T09:45:00.000", + "2024-03-14T09:50:00.000", + "2024-03-14T09:55:00.000", + "2024-03-14T10:00:00.000", + "2024-03-14T10:05:00.000", + "2024-03-14T10:10:00.000", + "2024-03-14T10:15:00.000", + "2024-03-14T10:20:00.000", + "2024-03-14T10:25:00.000", + "2024-03-14T10:30:00.000", + "2024-03-14T10:35:00.000", + "2024-03-14T10:40:00.000", + "2024-03-14T10:45:00.000", + "2024-03-14T10:50:00.000", + "2024-03-14T10:55:00.000", + "2024-03-14T11:00:00.000", + "2024-03-14T11:05:00.000", + "2024-03-14T11:10:00.000", + "2024-03-14T11:15:00.000", + "2024-03-14T11:20:00.000", + "2024-03-14T11:25:00.000", + "2024-03-14T11:30:00.000", + "2024-03-14T11:35:00.000", + "2024-03-14T11:40:00.000", + "2024-03-14T11:45:00.000", + "2024-03-14T11:50:00.000", + "2024-03-14T11:55:00.000", + "2024-03-14T12:00:00.000", + "2024-03-14T12:05:00.000", + "2024-03-14T12:10:00.000", + "2024-03-14T12:15:00.000", + "2024-03-14T12:20:00.000", + "2024-03-14T12:25:00.000", + "2024-03-14T12:30:00.000", + "2024-03-14T12:35:00.000", + "2024-03-14T12:40:00.000", + "2024-03-14T12:45:00.000", + "2024-03-14T12:50:00.000", + "2024-03-14T12:55:00.000", + "2024-03-14T13:00:00.000", + "2024-03-14T13:05:00.000", + "2024-03-14T13:10:00.000", + "2024-03-14T13:15:00.000", + "2024-03-14T13:20:00.000", + "2024-03-14T13:25:00.000", + "2024-03-14T13:30:00.000", + "2024-03-14T13:35:00.000", + "2024-03-14T13:40:00.000", + "2024-03-14T13:45:00.000", + "2024-03-14T13:50:00.000", + "2024-03-14T13:55:00.000", + "2024-03-14T14:00:00.000", + "2024-03-14T14:05:00.000", + "2024-03-14T14:10:00.000", + "2024-03-14T14:15:00.000", + "2024-03-14T14:20:00.000", + "2024-03-14T14:25:00.000", + "2024-03-14T14:30:00.000", + "2024-03-14T14:35:00.000", + "2024-03-14T14:40:00.000", + "2024-03-14T14:45:00.000", + "2024-03-14T14:50:00.000", + "2024-03-14T14:55:00.000", + "2024-03-14T15:00:00.000", + "2024-03-14T15:05:00.000", + "2024-03-14T15:10:00.000", + "2024-03-14T15:15:00.000", + "2024-03-14T15:20:00.000", + "2024-03-14T15:25:00.000", + "2024-03-14T15:30:00.000", + "2024-03-14T15:35:00.000", + "2024-03-14T15:40:00.000", + "2024-03-14T15:45:00.000", + "2024-03-14T15:50:00.000", + "2024-03-14T15:55:00.000", + "2024-03-14T16:00:00.000", + "2024-03-14T16:05:00.000", + "2024-03-14T16:10:00.000", + "2024-03-14T16:15:00.000", + "2024-03-14T16:20:00.000", + "2024-03-14T16:25:00.000", + "2024-03-14T16:30:00.000", + "2024-03-14T16:35:00.000", + "2024-03-14T16:40:00.000", + "2024-03-14T16:45:00.000", + "2024-03-14T16:50:00.000", + "2024-03-14T16:55:00.000", + "2024-03-14T17:00:00.000", + "2024-03-14T17:05:00.000", + "2024-03-14T17:10:00.000", + "2024-03-14T17:15:00.000", + "2024-03-14T17:20:00.000", + "2024-03-14T17:25:00.000", + "2024-03-14T17:30:00.000", + "2024-03-14T17:35:00.000", + "2024-03-14T17:40:00.000", + "2024-03-14T17:45:00.000", + "2024-03-14T17:50:00.000", + "2024-03-14T17:55:00.000", + "2024-03-14T18:00:00.000", + "2024-03-14T18:05:00.000", + "2024-03-14T18:10:00.000", + "2024-03-14T18:15:00.000", + "2024-03-14T18:20:00.000", + "2024-03-14T18:25:00.000", + "2024-03-14T18:30:00.000", + "2024-03-14T18:35:00.000", + "2024-03-14T18:40:00.000", + "2024-03-14T18:45:00.000", + "2024-03-14T18:50:00.000", + "2024-03-14T18:55:00.000", + "2024-03-14T19:00:00.000", + "2024-03-14T19:05:00.000", + "2024-03-14T19:10:00.000", + "2024-03-14T19:15:00.000", + "2024-03-14T19:20:00.000", + "2024-03-14T19:25:00.000", + "2024-03-14T19:30:00.000", + "2024-03-14T19:35:00.000", + "2024-03-14T19:40:00.000", + "2024-03-14T19:45:00.000", + "2024-03-14T19:50:00.000", + "2024-03-14T19:55:00.000", + "2024-03-14T20:00:00.000", + "2024-03-14T20:05:00.000", + "2024-03-14T20:10:00.000", + "2024-03-14T20:15:00.000", + "2024-03-14T20:20:00.000", + "2024-03-14T20:25:00.000", + "2024-03-14T20:30:00.000", + "2024-03-14T20:35:00.000", + "2024-03-14T20:40:00.000", + "2024-03-14T20:45:00.000", + "2024-03-14T20:50:00.000", + "2024-03-14T20:55:00.000", + "2024-03-14T21:00:00.000", + "2024-03-14T21:05:00.000", + "2024-03-14T21:10:00.000", + "2024-03-14T21:15:00.000", + "2024-03-14T21:20:00.000", + "2024-03-14T21:25:00.000", + "2024-03-14T21:30:00.000", + "2024-03-14T21:35:00.000", + "2024-03-14T21:40:00.000", + "2024-03-14T21:45:00.000", + "2024-03-14T21:50:00.000", + "2024-03-14T21:55:00.000", + "2024-03-14T22:00:00.000", + "2024-03-14T22:05:00.000", + "2024-03-14T22:10:00.000", + "2024-03-14T22:15:00.000", + "2024-03-14T22:20:00.000", + "2024-03-14T22:25:00.000", + "2024-03-14T22:30:00.000", + "2024-03-14T22:35:00.000", + "2024-03-14T22:40:00.000", + "2024-03-14T22:45:00.000", + "2024-03-14T22:50:00.000", + "2024-03-14T22:55:00.000", + "2024-03-14T23:00:00.000", + "2024-03-14T23:05:00.000", + "2024-03-14T23:10:00.000", + "2024-03-14T23:15:00.000", + "2024-03-14T23:20:00.000", + "2024-03-14T23:25:00.000", + "2024-03-14T23:30:00.000", + "2024-03-14T23:35:00.000", + "2024-03-14T23:40:00.000", + "2024-03-14T23:45:00.000", + "2024-03-14T23:50:00.000", + "2024-03-14T23:55:00.000", + "2024-03-15T00:00:00.000", + "2024-03-15T00:05:00.000", + "2024-03-15T00:10:00.000", + "2024-03-15T00:15:00.000", + "2024-03-15T00:20:00.000", + "2024-03-15T00:25:00.000", + "2024-03-15T00:30:00.000", + "2024-03-15T00:35:00.000", + "2024-03-15T00:40:00.000", + "2024-03-15T00:45:00.000", + "2024-03-15T00:50:00.000", + "2024-03-15T00:55:00.000", + "2024-03-15T01:00:00.000", + "2024-03-15T01:05:00.000", + "2024-03-15T01:10:00.000", + "2024-03-15T01:15:00.000", + "2024-03-15T01:20:00.000", + "2024-03-15T01:25:00.000", + "2024-03-15T01:30:00.000", + "2024-03-15T01:35:00.000", + "2024-03-15T01:40:00.000", + "2024-03-15T01:45:00.000", + "2024-03-15T01:50:00.000", + "2024-03-15T01:55:00.000", + "2024-03-15T02:00:00.000", + "2024-03-15T02:05:00.000", + "2024-03-15T02:10:00.000", + "2024-03-15T02:15:00.000", + "2024-03-15T02:20:00.000", + "2024-03-15T02:25:00.000", + "2024-03-15T02:30:00.000", + "2024-03-15T02:35:00.000", + "2024-03-15T02:40:00.000", + "2024-03-15T02:45:00.000", + "2024-03-15T02:50:00.000", + "2024-03-15T02:55:00.000", + "2024-03-15T03:00:00.000", + "2024-03-15T03:05:00.000", + "2024-03-15T03:10:00.000", + "2024-03-15T03:15:00.000", + "2024-03-15T03:20:00.000", + "2024-03-15T03:25:00.000", + "2024-03-15T03:30:00.000", + "2024-03-15T03:35:00.000", + "2024-03-15T03:40:00.000", + "2024-03-15T03:45:00.000", + "2024-03-15T03:50:00.000", + "2024-03-15T03:55:00.000", + "2024-03-15T04:00:00.000", + "2024-03-15T04:05:00.000", + "2024-03-15T04:10:00.000", + "2024-03-15T04:15:00.000", + "2024-03-15T04:20:00.000", + "2024-03-15T04:25:00.000", + "2024-03-15T04:30:00.000", + "2024-03-15T04:35:00.000", + "2024-03-15T04:40:00.000", + "2024-03-15T04:45:00.000", + "2024-03-15T04:50:00.000", + "2024-03-15T04:55:00.000", + "2024-03-15T05:00:00.000", + "2024-03-15T05:05:00.000", + "2024-03-15T05:10:00.000", + "2024-03-15T05:15:00.000", + "2024-03-15T05:20:00.000", + "2024-03-15T05:25:00.000", + "2024-03-15T05:30:00.000", + "2024-03-15T05:35:00.000", + "2024-03-15T05:40:00.000", + "2024-03-15T05:45:00.000", + "2024-03-15T05:50:00.000", + "2024-03-15T05:55:00.000", + "2024-03-15T06:00:00.000", + "2024-03-15T06:05:00.000", + "2024-03-15T06:10:00.000", + "2024-03-15T06:15:00.000", + "2024-03-15T06:20:00.000", + "2024-03-15T06:25:00.000", + "2024-03-15T06:30:00.000", + "2024-03-15T06:35:00.000", + "2024-03-15T06:40:00.000", + "2024-03-15T06:45:00.000", + "2024-03-15T06:50:00.000", + "2024-03-15T06:55:00.000", + "2024-03-15T07:00:00.000", + "2024-03-15T07:05:00.000", + "2024-03-15T07:10:00.000", + "2024-03-15T07:15:00.000", + "2024-03-15T07:20:00.000", + "2024-03-15T07:25:00.000", + "2024-03-15T07:30:00.000", + "2024-03-15T07:35:00.000", + "2024-03-15T07:40:00.000", + "2024-03-15T07:45:00.000", + "2024-03-15T07:50:00.000", + "2024-03-15T07:55:00.000", + "2024-03-15T08:00:00.000", + "2024-03-15T08:05:00.000", + "2024-03-15T08:10:00.000", + "2024-03-15T08:15:00.000", + "2024-03-15T08:20:00.000", + "2024-03-15T08:25:00.000", + "2024-03-15T08:30:00.000", + "2024-03-15T08:35:00.000", + "2024-03-15T08:40:00.000", + "2024-03-15T08:45:00.000", + "2024-03-15T08:50:00.000", + "2024-03-15T08:55:00.000", + "2024-03-15T09:00:00.000", + "2024-03-15T09:05:00.000", + "2024-03-15T09:10:00.000", + "2024-03-15T09:15:00.000", + "2024-03-15T09:20:00.000", + "2024-03-15T09:25:00.000", + "2024-03-15T09:30:00.000", + "2024-03-15T09:35:00.000", + "2024-03-15T09:40:00.000", + "2024-03-15T09:45:00.000", + "2024-03-15T09:50:00.000", + "2024-03-15T09:55:00.000", + "2024-03-15T10:00:00.000", + "2024-03-15T10:05:00.000", + "2024-03-15T10:10:00.000", + "2024-03-15T10:15:00.000", + "2024-03-15T10:20:00.000", + "2024-03-15T10:25:00.000", + "2024-03-15T10:30:00.000", + "2024-03-15T10:35:00.000", + "2024-03-15T10:40:00.000", + "2024-03-15T10:45:00.000", + "2024-03-15T10:50:00.000", + "2024-03-15T10:55:00.000", + "2024-03-15T11:00:00.000", + "2024-03-15T11:05:00.000", + "2024-03-15T11:10:00.000", + "2024-03-15T11:15:00.000", + "2024-03-15T11:20:00.000", + "2024-03-15T11:25:00.000", + "2024-03-15T11:30:00.000", + "2024-03-15T11:35:00.000", + "2024-03-15T11:40:00.000", + "2024-03-15T11:45:00.000", + "2024-03-15T11:50:00.000", + "2024-03-15T11:55:00.000", + "2024-03-15T12:00:00.000", + "2024-03-15T12:05:00.000", + "2024-03-15T12:10:00.000", + "2024-03-15T12:15:00.000", + "2024-03-15T12:20:00.000", + "2024-03-15T12:25:00.000", + "2024-03-15T12:30:00.000", + "2024-03-15T12:35:00.000", + "2024-03-15T12:40:00.000", + "2024-03-15T12:45:00.000", + "2024-03-15T12:50:00.000", + "2024-03-15T12:55:00.000", + "2024-03-15T13:00:00.000", + "2024-03-15T13:05:00.000", + "2024-03-15T13:10:00.000", + "2024-03-15T13:15:00.000", + "2024-03-15T13:20:00.000", + "2024-03-15T13:25:00.000", + "2024-03-15T13:30:00.000", + "2024-03-15T13:35:00.000", + "2024-03-15T13:40:00.000", + "2024-03-15T13:45:00.000", + "2024-03-15T13:50:00.000", + "2024-03-15T13:55:00.000", + "2024-03-15T14:00:00.000", + "2024-03-15T14:05:00.000", + "2024-03-15T14:10:00.000", + "2024-03-15T14:15:00.000", + "2024-03-15T14:20:00.000", + "2024-03-15T14:25:00.000", + "2024-03-15T14:30:00.000", + "2024-03-15T14:35:00.000", + "2024-03-15T14:40:00.000", + "2024-03-15T14:45:00.000", + "2024-03-15T14:50:00.000", + "2024-03-15T14:55:00.000", + "2024-03-15T15:00:00.000", + "2024-03-15T15:05:00.000", + "2024-03-15T15:10:00.000", + "2024-03-15T15:15:00.000", + "2024-03-15T15:20:00.000", + "2024-03-15T15:25:00.000", + "2024-03-15T15:30:00.000", + "2024-03-15T15:35:00.000", + "2024-03-15T15:40:00.000", + "2024-03-15T15:45:00.000", + "2024-03-15T15:50:00.000", + "2024-03-15T15:55:00.000", + "2024-03-15T16:00:00.000", + "2024-03-15T16:05:00.000", + "2024-03-15T16:10:00.000", + "2024-03-15T16:15:00.000", + "2024-03-15T16:20:00.000", + "2024-03-15T16:25:00.000", + "2024-03-15T16:30:00.000", + "2024-03-15T16:35:00.000", + "2024-03-15T16:40:00.000", + "2024-03-15T16:45:00.000", + "2024-03-15T16:50:00.000", + "2024-03-15T16:55:00.000", + "2024-03-15T17:00:00.000", + "2024-03-15T17:05:00.000", + "2024-03-15T17:10:00.000", + "2024-03-15T17:15:00.000", + "2024-03-15T17:20:00.000", + "2024-03-15T17:25:00.000", + "2024-03-15T17:30:00.000", + "2024-03-15T17:35:00.000", + "2024-03-15T17:40:00.000", + "2024-03-15T17:45:00.000", + "2024-03-15T17:50:00.000", + "2024-03-15T17:55:00.000", + "2024-03-15T18:00:00.000", + "2024-03-15T18:05:00.000", + "2024-03-15T18:10:00.000", + "2024-03-15T18:15:00.000", + "2024-03-15T18:20:00.000", + "2024-03-15T18:25:00.000", + "2024-03-15T18:30:00.000", + "2024-03-15T18:35:00.000", + "2024-03-15T18:40:00.000", + "2024-03-15T18:45:00.000", + "2024-03-15T18:50:00.000", + "2024-03-15T18:55:00.000", + "2024-03-15T19:00:00.000", + "2024-03-15T19:05:00.000", + "2024-03-15T19:10:00.000", + "2024-03-15T19:15:00.000", + "2024-03-15T19:20:00.000", + "2024-03-15T19:25:00.000", + "2024-03-15T19:30:00.000", + "2024-03-15T19:35:00.000", + "2024-03-15T19:40:00.000", + "2024-03-15T19:45:00.000", + "2024-03-15T19:50:00.000", + "2024-03-15T19:55:00.000", + "2024-03-15T20:00:00.000", + "2024-03-15T20:05:00.000", + "2024-03-15T20:10:00.000", + "2024-03-15T20:15:00.000", + "2024-03-15T20:20:00.000", + "2024-03-15T20:25:00.000", + "2024-03-15T20:30:00.000", + "2024-03-15T20:35:00.000", + "2024-03-15T20:40:00.000", + "2024-03-15T20:45:00.000", + "2024-03-15T20:50:00.000", + "2024-03-15T20:55:00.000", + "2024-03-15T21:00:00.000", + "2024-03-15T21:05:00.000", + "2024-03-15T21:10:00.000", + "2024-03-15T21:15:00.000", + "2024-03-15T21:20:00.000", + "2024-03-15T21:25:00.000", + "2024-03-15T21:30:00.000", + "2024-03-15T21:35:00.000", + "2024-03-15T21:40:00.000", + "2024-03-15T21:45:00.000", + "2024-03-15T21:50:00.000", + "2024-03-15T21:55:00.000", + "2024-03-15T22:00:00.000", + "2024-03-15T22:05:00.000", + "2024-03-15T22:10:00.000", + "2024-03-15T22:15:00.000", + "2024-03-15T22:20:00.000", + "2024-03-15T22:25:00.000", + "2024-03-15T22:30:00.000", + "2024-03-15T22:35:00.000", + "2024-03-15T22:40:00.000", + "2024-03-15T22:45:00.000", + "2024-03-15T22:50:00.000", + "2024-03-15T22:55:00.000", + "2024-03-15T23:00:00.000", + "2024-03-15T23:05:00.000", + "2024-03-15T23:10:00.000", + "2024-03-15T23:15:00.000", + "2024-03-15T23:20:00.000", + "2024-03-15T23:25:00.000", + "2024-03-15T23:30:00.000", + "2024-03-15T23:35:00.000", + "2024-03-15T23:40:00.000", + "2024-03-15T23:45:00.000", + "2024-03-15T23:50:00.000", + "2024-03-15T23:55:00.000", + "2024-03-16T00:00:00.000", + "2024-03-16T00:05:00.000", + "2024-03-16T00:10:00.000", + "2024-03-16T00:15:00.000", + "2024-03-16T00:20:00.000", + "2024-03-16T00:25:00.000", + "2024-03-16T00:30:00.000", + "2024-03-16T00:35:00.000", + "2024-03-16T00:40:00.000", + "2024-03-16T00:45:00.000", + "2024-03-16T00:50:00.000", + "2024-03-16T00:55:00.000", + "2024-03-16T01:00:00.000", + "2024-03-16T01:05:00.000", + "2024-03-16T01:10:00.000", + "2024-03-16T01:15:00.000", + "2024-03-16T01:20:00.000", + "2024-03-16T01:25:00.000", + "2024-03-16T01:30:00.000", + "2024-03-16T01:35:00.000", + "2024-03-16T01:40:00.000", + "2024-03-16T01:45:00.000", + "2024-03-16T01:50:00.000", + "2024-03-16T01:55:00.000", + "2024-03-16T02:00:00.000", + "2024-03-16T02:05:00.000", + "2024-03-16T02:10:00.000", + "2024-03-16T02:15:00.000", + "2024-03-16T02:20:00.000", + "2024-03-16T02:25:00.000", + "2024-03-16T02:30:00.000", + "2024-03-16T02:35:00.000", + "2024-03-16T02:40:00.000", + "2024-03-16T02:45:00.000", + "2024-03-16T02:50:00.000", + "2024-03-16T02:55:00.000", + "2024-03-16T03:00:00.000", + "2024-03-16T03:05:00.000", + "2024-03-16T03:10:00.000", + "2024-03-16T03:15:00.000", + "2024-03-16T03:20:00.000", + "2024-03-16T03:25:00.000", + "2024-03-16T03:30:00.000", + "2024-03-16T03:35:00.000", + "2024-03-16T03:40:00.000", + "2024-03-16T03:45:00.000", + "2024-03-16T03:50:00.000", + "2024-03-16T03:55:00.000", + "2024-03-16T04:00:00.000", + "2024-03-16T04:05:00.000", + "2024-03-16T04:10:00.000", + "2024-03-16T04:15:00.000", + "2024-03-16T04:20:00.000", + "2024-03-16T04:25:00.000", + "2024-03-16T04:30:00.000", + "2024-03-16T04:35:00.000", + "2024-03-16T04:40:00.000", + "2024-03-16T04:45:00.000", + "2024-03-16T04:50:00.000", + "2024-03-16T04:55:00.000", + "2024-03-16T05:00:00.000", + "2024-03-16T05:05:00.000", + "2024-03-16T05:10:00.000", + "2024-03-16T05:15:00.000", + "2024-03-16T05:20:00.000", + "2024-03-16T05:25:00.000", + "2024-03-16T05:30:00.000", + "2024-03-16T05:35:00.000", + "2024-03-16T05:40:00.000", + "2024-03-16T05:45:00.000", + "2024-03-16T05:50:00.000", + "2024-03-16T05:55:00.000", + "2024-03-16T06:00:00.000", + "2024-03-16T06:05:00.000", + "2024-03-16T06:10:00.000", + "2024-03-16T06:15:00.000", + "2024-03-16T06:20:00.000", + "2024-03-16T06:25:00.000", + "2024-03-16T06:30:00.000", + "2024-03-16T06:35:00.000", + "2024-03-16T06:40:00.000", + "2024-03-16T06:45:00.000", + "2024-03-16T06:50:00.000", + "2024-03-16T06:55:00.000", + "2024-03-16T07:00:00.000", + "2024-03-16T07:05:00.000", + "2024-03-16T07:10:00.000", + "2024-03-16T07:15:00.000", + "2024-03-16T07:20:00.000", + "2024-03-16T07:25:00.000", + "2024-03-16T07:30:00.000", + "2024-03-16T07:35:00.000", + "2024-03-16T07:40:00.000", + "2024-03-16T07:45:00.000", + "2024-03-16T07:50:00.000", + "2024-03-16T07:55:00.000", + "2024-03-16T08:00:00.000", + "2024-03-16T08:05:00.000", + "2024-03-16T08:10:00.000", + "2024-03-16T08:15:00.000", + "2024-03-16T08:20:00.000", + "2024-03-16T08:25:00.000", + "2024-03-16T08:30:00.000", + "2024-03-16T08:35:00.000", + "2024-03-16T08:40:00.000", + "2024-03-16T08:45:00.000", + "2024-03-16T08:50:00.000", + "2024-03-16T08:55:00.000", + "2024-03-16T09:00:00.000", + "2024-03-16T09:05:00.000", + "2024-03-16T09:10:00.000", + "2024-03-16T09:15:00.000", + "2024-03-16T09:20:00.000", + "2024-03-16T09:25:00.000", + "2024-03-16T09:30:00.000", + "2024-03-16T09:35:00.000", + "2024-03-16T09:40:00.000", + "2024-03-16T09:45:00.000", + "2024-03-16T09:50:00.000", + "2024-03-16T09:55:00.000", + "2024-03-16T10:00:00.000", + "2024-03-16T10:05:00.000", + "2024-03-16T10:10:00.000", + "2024-03-16T10:15:00.000", + "2024-03-16T10:20:00.000", + "2024-03-16T10:25:00.000", + "2024-03-16T10:30:00.000", + "2024-03-16T10:35:00.000", + "2024-03-16T10:40:00.000", + "2024-03-16T10:45:00.000", + "2024-03-16T10:50:00.000", + "2024-03-16T10:55:00.000", + "2024-03-16T11:00:00.000", + "2024-03-16T11:05:00.000", + "2024-03-16T11:10:00.000", + "2024-03-16T11:15:00.000", + "2024-03-16T11:20:00.000", + "2024-03-16T11:25:00.000", + "2024-03-16T11:30:00.000", + "2024-03-16T11:35:00.000", + "2024-03-16T11:40:00.000", + "2024-03-16T11:45:00.000", + "2024-03-16T11:50:00.000", + "2024-03-16T11:55:00.000", + "2024-03-16T12:00:00.000", + "2024-03-16T12:05:00.000", + "2024-03-16T12:10:00.000", + "2024-03-16T12:15:00.000", + "2024-03-16T12:20:00.000", + "2024-03-16T12:25:00.000", + "2024-03-16T12:30:00.000", + "2024-03-16T12:35:00.000", + "2024-03-16T12:40:00.000", + "2024-03-16T12:45:00.000", + "2024-03-16T12:50:00.000", + "2024-03-16T12:55:00.000", + "2024-03-16T13:00:00.000", + "2024-03-16T13:05:00.000", + "2024-03-16T13:10:00.000", + "2024-03-16T13:15:00.000", + "2024-03-16T13:20:00.000", + "2024-03-16T13:25:00.000", + "2024-03-16T13:30:00.000", + "2024-03-16T13:35:00.000", + "2024-03-16T13:40:00.000", + "2024-03-16T13:45:00.000", + "2024-03-16T13:50:00.000", + "2024-03-16T13:55:00.000", + "2024-03-16T14:00:00.000", + "2024-03-16T14:05:00.000", + "2024-03-16T14:10:00.000", + "2024-03-16T14:15:00.000", + "2024-03-16T14:20:00.000", + "2024-03-16T14:25:00.000", + "2024-03-16T14:30:00.000", + "2024-03-16T14:35:00.000", + "2024-03-16T14:40:00.000", + "2024-03-16T14:45:00.000", + "2024-03-16T14:50:00.000", + "2024-03-16T14:55:00.000", + "2024-03-16T15:00:00.000", + "2024-03-16T15:05:00.000", + "2024-03-16T15:10:00.000", + "2024-03-16T15:15:00.000", + "2024-03-16T15:20:00.000", + "2024-03-16T15:25:00.000", + "2024-03-16T15:30:00.000", + "2024-03-16T15:35:00.000", + "2024-03-16T15:40:00.000", + "2024-03-16T15:45:00.000", + "2024-03-16T15:50:00.000", + "2024-03-16T15:55:00.000", + "2024-03-16T16:00:00.000", + "2024-03-16T16:05:00.000", + "2024-03-16T16:10:00.000", + "2024-03-16T16:15:00.000", + "2024-03-16T16:20:00.000", + "2024-03-16T16:25:00.000", + "2024-03-16T16:30:00.000", + "2024-03-16T16:35:00.000", + "2024-03-16T16:40:00.000", + "2024-03-16T16:45:00.000", + "2024-03-16T16:50:00.000", + "2024-03-16T16:55:00.000", + "2024-03-16T17:00:00.000", + "2024-03-16T17:05:00.000", + "2024-03-16T17:10:00.000", + "2024-03-16T17:15:00.000", + "2024-03-16T17:20:00.000", + "2024-03-16T17:25:00.000", + "2024-03-16T17:30:00.000", + "2024-03-16T17:35:00.000", + "2024-03-16T17:40:00.000", + "2024-03-16T17:45:00.000", + "2024-03-16T17:50:00.000", + "2024-03-16T17:55:00.000", + "2024-03-16T18:00:00.000", + "2024-03-16T18:05:00.000", + "2024-03-16T18:10:00.000", + "2024-03-16T18:15:00.000", + "2024-03-16T18:20:00.000", + "2024-03-16T18:25:00.000", + "2024-03-16T18:30:00.000", + "2024-03-16T18:35:00.000", + "2024-03-16T18:40:00.000", + "2024-03-16T18:45:00.000", + "2024-03-16T18:50:00.000", + "2024-03-16T18:55:00.000", + "2024-03-16T19:00:00.000", + "2024-03-16T19:05:00.000", + "2024-03-16T19:10:00.000", + "2024-03-16T19:15:00.000", + "2024-03-16T19:20:00.000", + "2024-03-16T19:25:00.000", + "2024-03-16T19:30:00.000", + "2024-03-16T19:35:00.000", + "2024-03-16T19:40:00.000", + "2024-03-16T19:45:00.000", + "2024-03-16T19:50:00.000", + "2024-03-16T19:55:00.000", + "2024-03-16T20:00:00.000", + "2024-03-16T20:05:00.000", + "2024-03-16T20:10:00.000", + "2024-03-16T20:15:00.000", + "2024-03-16T20:20:00.000", + "2024-03-16T20:25:00.000", + "2024-03-16T20:30:00.000", + "2024-03-16T20:35:00.000", + "2024-03-16T20:40:00.000", + "2024-03-16T20:45:00.000", + "2024-03-16T20:50:00.000", + "2024-03-16T20:55:00.000", + "2024-03-16T21:00:00.000", + "2024-03-16T21:05:00.000", + "2024-03-16T21:10:00.000", + "2024-03-16T21:15:00.000", + "2024-03-16T21:20:00.000", + "2024-03-16T21:25:00.000", + "2024-03-16T21:30:00.000", + "2024-03-16T21:35:00.000", + "2024-03-16T21:40:00.000", + "2024-03-16T21:45:00.000", + "2024-03-16T21:50:00.000", + "2024-03-16T21:55:00.000", + "2024-03-16T22:00:00.000", + "2024-03-16T22:05:00.000", + "2024-03-16T22:10:00.000", + "2024-03-16T22:15:00.000", + "2024-03-16T22:20:00.000", + "2024-03-16T22:25:00.000", + "2024-03-16T22:30:00.000", + "2024-03-16T22:35:00.000", + "2024-03-16T22:40:00.000", + "2024-03-16T22:45:00.000", + "2024-03-16T22:50:00.000", + "2024-03-16T22:55:00.000", + "2024-03-16T23:00:00.000", + "2024-03-16T23:05:00.000", + "2024-03-16T23:10:00.000", + "2024-03-16T23:15:00.000", + "2024-03-16T23:20:00.000", + "2024-03-16T23:25:00.000", + "2024-03-16T23:30:00.000", + "2024-03-16T23:35:00.000", + "2024-03-16T23:40:00.000", + "2024-03-16T23:45:00.000", + "2024-03-16T23:50:00.000", + "2024-03-16T23:55:00.000", + "2024-03-17T00:00:00.000", + "2024-03-17T00:05:00.000", + "2024-03-17T00:10:00.000", + "2024-03-17T00:15:00.000", + "2024-03-17T00:20:00.000", + "2024-03-17T00:25:00.000", + "2024-03-17T00:30:00.000", + "2024-03-17T00:35:00.000", + "2024-03-17T00:40:00.000", + "2024-03-17T00:45:00.000", + "2024-03-17T00:50:00.000", + "2024-03-17T00:55:00.000", + "2024-03-17T01:00:00.000", + "2024-03-17T01:05:00.000", + "2024-03-17T01:10:00.000", + "2024-03-17T01:15:00.000", + "2024-03-17T01:20:00.000", + "2024-03-17T01:25:00.000", + "2024-03-17T01:30:00.000", + "2024-03-17T01:35:00.000", + "2024-03-17T01:40:00.000", + "2024-03-17T01:45:00.000", + "2024-03-17T01:50:00.000", + "2024-03-17T01:55:00.000", + "2024-03-17T02:00:00.000", + "2024-03-17T02:05:00.000", + "2024-03-17T02:10:00.000", + "2024-03-17T02:15:00.000", + "2024-03-17T02:20:00.000", + "2024-03-17T02:25:00.000", + "2024-03-17T02:30:00.000", + "2024-03-17T02:35:00.000", + "2024-03-17T02:40:00.000", + "2024-03-17T02:45:00.000", + "2024-03-17T02:50:00.000", + "2024-03-17T02:55:00.000", + "2024-03-17T03:00:00.000", + "2024-03-17T03:05:00.000", + "2024-03-17T03:10:00.000", + "2024-03-17T03:15:00.000", + "2024-03-17T03:20:00.000", + "2024-03-17T03:25:00.000", + "2024-03-17T03:30:00.000", + "2024-03-17T03:35:00.000", + "2024-03-17T03:40:00.000", + "2024-03-17T03:45:00.000", + "2024-03-17T03:50:00.000", + "2024-03-17T03:55:00.000", + "2024-03-17T04:00:00.000", + "2024-03-17T04:05:00.000", + "2024-03-17T04:10:00.000", + "2024-03-17T04:15:00.000", + "2024-03-17T04:20:00.000", + "2024-03-17T04:25:00.000", + "2024-03-17T04:30:00.000", + "2024-03-17T04:35:00.000", + "2024-03-17T04:40:00.000", + "2024-03-17T04:45:00.000", + "2024-03-17T04:50:00.000", + "2024-03-17T04:55:00.000", + "2024-03-17T05:00:00.000", + "2024-03-17T05:05:00.000", + "2024-03-17T05:10:00.000", + "2024-03-17T05:15:00.000", + "2024-03-17T05:20:00.000", + "2024-03-17T05:25:00.000", + "2024-03-17T05:30:00.000", + "2024-03-17T05:35:00.000", + "2024-03-17T05:40:00.000", + "2024-03-17T05:45:00.000", + "2024-03-17T05:50:00.000", + "2024-03-17T05:55:00.000", + "2024-03-17T06:00:00.000", + "2024-03-17T06:05:00.000", + "2024-03-17T06:10:00.000", + "2024-03-17T06:15:00.000", + "2024-03-17T06:20:00.000", + "2024-03-17T06:25:00.000", + "2024-03-17T06:30:00.000", + "2024-03-17T06:35:00.000", + "2024-03-17T06:40:00.000", + "2024-03-17T06:45:00.000", + "2024-03-17T06:50:00.000", + "2024-03-17T06:55:00.000", + "2024-03-17T07:00:00.000", + "2024-03-17T07:05:00.000", + "2024-03-17T07:10:00.000", + "2024-03-17T07:15:00.000", + "2024-03-17T07:20:00.000", + "2024-03-17T07:25:00.000", + "2024-03-17T07:30:00.000", + "2024-03-17T07:35:00.000", + "2024-03-17T07:40:00.000", + "2024-03-17T07:45:00.000", + "2024-03-17T07:50:00.000", + "2024-03-17T07:55:00.000", + "2024-03-17T08:00:00.000", + "2024-03-17T08:05:00.000", + "2024-03-17T08:10:00.000", + "2024-03-17T08:15:00.000", + "2024-03-17T08:20:00.000", + "2024-03-17T08:25:00.000", + "2024-03-17T08:30:00.000", + "2024-03-17T08:35:00.000", + "2024-03-17T08:40:00.000", + "2024-03-17T08:45:00.000", + "2024-03-17T08:50:00.000", + "2024-03-17T08:55:00.000", + "2024-03-17T09:00:00.000", + "2024-03-17T09:05:00.000", + "2024-03-17T09:10:00.000", + "2024-03-17T09:15:00.000", + "2024-03-17T09:20:00.000", + "2024-03-17T09:25:00.000", + "2024-03-17T09:30:00.000", + "2024-03-17T09:35:00.000", + "2024-03-17T09:40:00.000", + "2024-03-17T09:45:00.000", + "2024-03-17T09:50:00.000", + "2024-03-17T09:55:00.000", + "2024-03-17T10:00:00.000", + "2024-03-17T10:05:00.000", + "2024-03-17T10:10:00.000", + "2024-03-17T10:15:00.000", + "2024-03-17T10:20:00.000", + "2024-03-17T10:25:00.000", + "2024-03-17T10:30:00.000", + "2024-03-17T10:35:00.000", + "2024-03-17T10:40:00.000", + "2024-03-17T10:45:00.000", + "2024-03-17T10:50:00.000", + "2024-03-17T10:55:00.000", + "2024-03-17T11:00:00.000", + "2024-03-17T11:05:00.000", + "2024-03-17T11:10:00.000", + "2024-03-17T11:15:00.000", + "2024-03-17T11:20:00.000", + "2024-03-17T11:25:00.000", + "2024-03-17T11:30:00.000", + "2024-03-17T11:35:00.000", + "2024-03-17T11:40:00.000", + "2024-03-17T11:45:00.000", + "2024-03-17T11:50:00.000", + "2024-03-17T11:55:00.000", + "2024-03-17T12:00:00.000", + "2024-03-17T12:05:00.000", + "2024-03-17T12:10:00.000", + "2024-03-17T12:15:00.000", + "2024-03-17T12:20:00.000", + "2024-03-17T12:25:00.000", + "2024-03-17T12:30:00.000", + "2024-03-17T12:35:00.000", + "2024-03-17T12:40:00.000", + "2024-03-17T12:45:00.000", + "2024-03-17T12:50:00.000", + "2024-03-17T12:55:00.000", + "2024-03-17T13:00:00.000", + "2024-03-17T13:05:00.000", + "2024-03-17T13:10:00.000", + "2024-03-17T13:15:00.000", + "2024-03-17T13:20:00.000", + "2024-03-17T13:25:00.000", + "2024-03-17T13:30:00.000", + "2024-03-17T13:35:00.000", + "2024-03-17T13:40:00.000", + "2024-03-17T13:45:00.000", + "2024-03-17T13:50:00.000", + "2024-03-17T13:55:00.000", + "2024-03-17T14:00:00.000", + "2024-03-17T14:05:00.000", + "2024-03-17T14:10:00.000", + "2024-03-17T14:15:00.000", + "2024-03-17T14:20:00.000", + "2024-03-17T14:25:00.000", + "2024-03-17T14:30:00.000", + "2024-03-17T14:35:00.000", + "2024-03-17T14:40:00.000", + "2024-03-17T14:45:00.000", + "2024-03-17T14:50:00.000", + "2024-03-17T14:55:00.000", + "2024-03-17T15:00:00.000", + "2024-03-17T15:05:00.000", + "2024-03-17T15:10:00.000", + "2024-03-17T15:15:00.000", + "2024-03-17T15:20:00.000", + "2024-03-17T15:25:00.000", + "2024-03-17T15:30:00.000", + "2024-03-17T15:35:00.000", + "2024-03-17T15:40:00.000", + "2024-03-17T15:45:00.000", + "2024-03-17T15:50:00.000", + "2024-03-17T15:55:00.000", + "2024-03-17T16:00:00.000", + "2024-03-17T16:05:00.000", + "2024-03-17T16:10:00.000", + "2024-03-17T16:15:00.000", + "2024-03-17T16:20:00.000", + "2024-03-17T16:25:00.000", + "2024-03-17T16:30:00.000", + "2024-03-17T16:35:00.000", + "2024-03-17T16:40:00.000", + "2024-03-17T16:45:00.000", + "2024-03-17T16:50:00.000", + "2024-03-17T16:55:00.000", + "2024-03-17T17:00:00.000", + "2024-03-17T17:05:00.000", + "2024-03-17T17:10:00.000", + "2024-03-17T17:15:00.000", + "2024-03-17T17:20:00.000", + "2024-03-17T17:25:00.000", + "2024-03-17T17:30:00.000", + "2024-03-17T17:35:00.000", + "2024-03-17T17:40:00.000", + "2024-03-17T17:45:00.000", + "2024-03-17T17:50:00.000", + "2024-03-17T17:55:00.000", + "2024-03-17T18:00:00.000", + "2024-03-17T18:05:00.000", + "2024-03-17T18:10:00.000", + "2024-03-17T18:15:00.000", + "2024-03-17T18:20:00.000", + "2024-03-17T18:25:00.000", + "2024-03-17T18:30:00.000", + "2024-03-17T18:35:00.000", + "2024-03-17T18:40:00.000", + "2024-03-17T18:45:00.000", + "2024-03-17T18:50:00.000", + "2024-03-17T18:55:00.000", + "2024-03-17T19:00:00.000", + "2024-03-17T19:05:00.000", + "2024-03-17T19:10:00.000", + "2024-03-17T19:15:00.000", + "2024-03-17T19:20:00.000", + "2024-03-17T19:25:00.000", + "2024-03-17T19:30:00.000", + "2024-03-17T19:35:00.000", + "2024-03-17T19:40:00.000", + "2024-03-17T19:45:00.000", + "2024-03-17T19:50:00.000", + "2024-03-17T19:55:00.000", + "2024-03-17T20:00:00.000", + "2024-03-17T20:05:00.000", + "2024-03-17T20:10:00.000", + "2024-03-17T20:15:00.000", + "2024-03-17T20:20:00.000", + "2024-03-17T20:25:00.000", + "2024-03-17T20:30:00.000", + "2024-03-17T20:35:00.000", + "2024-03-17T20:40:00.000", + "2024-03-17T20:45:00.000", + "2024-03-17T20:50:00.000", + "2024-03-17T20:55:00.000", + "2024-03-17T21:00:00.000", + "2024-03-17T21:05:00.000", + "2024-03-17T21:10:00.000", + "2024-03-17T21:15:00.000", + "2024-03-17T21:20:00.000", + "2024-03-17T21:25:00.000", + "2024-03-17T21:30:00.000", + "2024-03-17T21:35:00.000", + "2024-03-17T21:40:00.000", + "2024-03-17T21:45:00.000", + "2024-03-17T21:50:00.000", + "2024-03-17T21:55:00.000", + "2024-03-17T22:00:00.000", + "2024-03-17T22:05:00.000", + "2024-03-17T22:10:00.000", + "2024-03-17T22:15:00.000", + "2024-03-17T22:20:00.000", + "2024-03-17T22:25:00.000", + "2024-03-17T22:30:00.000", + "2024-03-17T22:35:00.000", + "2024-03-17T22:40:00.000", + "2024-03-17T22:45:00.000", + "2024-03-17T22:50:00.000", + "2024-03-17T22:55:00.000", + "2024-03-17T23:00:00.000", + "2024-03-17T23:05:00.000", + "2024-03-17T23:10:00.000", + "2024-03-17T23:15:00.000", + "2024-03-17T23:20:00.000", + "2024-03-17T23:25:00.000", + "2024-03-17T23:30:00.000", + "2024-03-17T23:35:00.000", + "2024-03-17T23:40:00.000", + "2024-03-17T23:45:00.000", + "2024-03-17T23:50:00.000", + "2024-03-17T23:55:00.000", + "2024-03-18T00:00:00.000", + "2024-03-18T00:05:00.000", + "2024-03-18T00:10:00.000", + "2024-03-18T00:15:00.000", + "2024-03-18T00:20:00.000", + "2024-03-18T00:25:00.000", + "2024-03-18T00:30:00.000", + "2024-03-18T00:35:00.000", + "2024-03-18T00:40:00.000", + "2024-03-18T00:45:00.000", + "2024-03-18T00:50:00.000", + "2024-03-18T00:55:00.000", + "2024-03-18T01:00:00.000", + "2024-03-18T01:05:00.000", + "2024-03-18T01:10:00.000", + "2024-03-18T01:15:00.000", + "2024-03-18T01:20:00.000", + "2024-03-18T01:25:00.000", + "2024-03-18T01:30:00.000", + "2024-03-18T01:35:00.000", + "2024-03-18T01:40:00.000", + "2024-03-18T01:45:00.000", + "2024-03-18T01:50:00.000", + "2024-03-18T01:55:00.000", + "2024-03-18T02:00:00.000", + "2024-03-18T02:05:00.000", + "2024-03-18T02:10:00.000", + "2024-03-18T02:15:00.000", + "2024-03-18T02:20:00.000", + "2024-03-18T02:25:00.000", + "2024-03-18T02:30:00.000", + "2024-03-18T02:35:00.000", + "2024-03-18T02:40:00.000", + "2024-03-18T02:45:00.000", + "2024-03-18T02:50:00.000", + "2024-03-18T02:55:00.000", + "2024-03-18T03:00:00.000", + "2024-03-18T03:05:00.000", + "2024-03-18T03:10:00.000", + "2024-03-18T03:15:00.000", + "2024-03-18T03:20:00.000", + "2024-03-18T03:25:00.000", + "2024-03-18T03:30:00.000", + "2024-03-18T03:35:00.000", + "2024-03-18T03:40:00.000", + "2024-03-18T03:45:00.000", + "2024-03-18T03:50:00.000", + "2024-03-18T03:55:00.000", + "2024-03-18T04:00:00.000", + "2024-03-18T04:05:00.000", + "2024-03-18T04:10:00.000", + "2024-03-18T04:15:00.000", + "2024-03-18T04:20:00.000", + "2024-03-18T04:25:00.000", + "2024-03-18T04:30:00.000", + "2024-03-18T04:35:00.000", + "2024-03-18T04:40:00.000", + "2024-03-18T04:45:00.000", + "2024-03-18T04:50:00.000", + "2024-03-18T04:55:00.000", + "2024-03-18T05:00:00.000", + "2024-03-18T05:05:00.000", + "2024-03-18T05:10:00.000", + "2024-03-18T05:15:00.000", + "2024-03-18T05:20:00.000", + "2024-03-18T05:25:00.000", + "2024-03-18T05:30:00.000", + "2024-03-18T05:35:00.000", + "2024-03-18T05:40:00.000", + "2024-03-18T05:45:00.000", + "2024-03-18T05:50:00.000", + "2024-03-18T05:55:00.000", + "2024-03-18T06:00:00.000", + "2024-03-18T06:05:00.000", + "2024-03-18T06:10:00.000", + "2024-03-18T06:15:00.000", + "2024-03-18T06:20:00.000", + "2024-03-18T06:25:00.000", + "2024-03-18T06:30:00.000", + "2024-03-18T06:35:00.000", + "2024-03-18T06:40:00.000", + "2024-03-18T06:45:00.000", + "2024-03-18T06:50:00.000", + "2024-03-18T06:55:00.000", + "2024-03-18T07:00:00.000", + "2024-03-18T07:05:00.000", + "2024-03-18T07:10:00.000", + "2024-03-18T07:15:00.000", + "2024-03-18T07:20:00.000", + "2024-03-18T07:25:00.000", + "2024-03-18T07:30:00.000", + "2024-03-18T07:35:00.000", + "2024-03-18T07:40:00.000", + "2024-03-18T07:45:00.000", + "2024-03-18T07:50:00.000", + "2024-03-18T07:55:00.000", + "2024-03-18T08:00:00.000", + "2024-03-18T08:05:00.000", + "2024-03-18T08:10:00.000", + "2024-03-18T08:15:00.000", + "2024-03-18T08:20:00.000", + "2024-03-18T08:25:00.000", + "2024-03-18T08:30:00.000", + "2024-03-18T08:35:00.000", + "2024-03-18T08:40:00.000", + "2024-03-18T08:45:00.000", + "2024-03-18T08:50:00.000", + "2024-03-18T08:55:00.000", + "2024-03-18T09:00:00.000", + "2024-03-18T09:05:00.000", + "2024-03-18T09:10:00.000", + "2024-03-18T09:15:00.000", + "2024-03-18T09:20:00.000", + "2024-03-18T09:25:00.000", + "2024-03-18T09:30:00.000", + "2024-03-18T09:35:00.000", + "2024-03-18T09:40:00.000", + "2024-03-18T09:45:00.000", + "2024-03-18T09:50:00.000", + "2024-03-18T09:55:00.000", + "2024-03-18T10:00:00.000", + "2024-03-18T10:05:00.000", + "2024-03-18T10:10:00.000", + "2024-03-18T10:15:00.000", + "2024-03-18T10:20:00.000", + "2024-03-18T10:25:00.000", + "2024-03-18T10:30:00.000", + "2024-03-18T10:35:00.000", + "2024-03-18T10:40:00.000", + "2024-03-18T10:45:00.000", + "2024-03-18T10:50:00.000", + "2024-03-18T10:55:00.000", + "2024-03-18T11:00:00.000", + "2024-03-18T11:05:00.000", + "2024-03-18T11:10:00.000", + "2024-03-18T11:15:00.000", + "2024-03-18T11:20:00.000", + "2024-03-18T11:25:00.000", + "2024-03-18T11:30:00.000", + "2024-03-18T11:35:00.000", + "2024-03-18T11:40:00.000", + "2024-03-18T11:45:00.000", + "2024-03-18T11:50:00.000", + "2024-03-18T11:55:00.000", + "2024-03-18T12:00:00.000", + "2024-03-18T12:05:00.000", + "2024-03-18T12:10:00.000", + "2024-03-18T12:15:00.000", + "2024-03-18T12:20:00.000", + "2024-03-18T12:25:00.000", + "2024-03-18T12:30:00.000", + "2024-03-18T12:35:00.000", + "2024-03-18T12:40:00.000", + "2024-03-18T12:45:00.000", + "2024-03-18T12:50:00.000", + "2024-03-18T12:55:00.000", + "2024-03-18T13:00:00.000", + "2024-03-18T13:05:00.000", + "2024-03-18T13:10:00.000", + "2024-03-18T13:15:00.000", + "2024-03-18T13:20:00.000", + "2024-03-18T13:25:00.000", + "2024-03-18T13:30:00.000", + "2024-03-18T13:35:00.000", + "2024-03-18T13:40:00.000", + "2024-03-18T13:45:00.000", + "2024-03-18T13:50:00.000", + "2024-03-18T13:55:00.000", + "2024-03-18T14:00:00.000", + "2024-03-18T14:05:00.000", + "2024-03-18T14:10:00.000", + "2024-03-18T14:15:00.000", + "2024-03-18T14:20:00.000", + "2024-03-18T14:25:00.000", + "2024-03-18T14:30:00.000", + "2024-03-18T14:35:00.000", + "2024-03-18T14:40:00.000", + "2024-03-18T14:45:00.000", + "2024-03-18T14:50:00.000", + "2024-03-18T14:55:00.000", + "2024-03-18T15:00:00.000", + "2024-03-18T15:05:00.000", + "2024-03-18T15:10:00.000", + "2024-03-18T15:15:00.000", + "2024-03-18T15:20:00.000", + "2024-03-18T15:25:00.000", + "2024-03-18T15:30:00.000", + "2024-03-18T15:35:00.000", + "2024-03-18T15:40:00.000", + "2024-03-18T15:45:00.000", + "2024-03-18T15:50:00.000", + "2024-03-18T15:55:00.000", + "2024-03-18T16:00:00.000", + "2024-03-18T16:05:00.000", + "2024-03-18T16:10:00.000", + "2024-03-18T16:15:00.000", + "2024-03-18T16:20:00.000", + "2024-03-18T16:25:00.000", + "2024-03-18T16:30:00.000", + "2024-03-18T16:35:00.000", + "2024-03-18T16:40:00.000", + "2024-03-18T16:45:00.000", + "2024-03-18T16:50:00.000", + "2024-03-18T16:55:00.000", + "2024-03-18T17:00:00.000", + "2024-03-18T17:05:00.000", + "2024-03-18T17:10:00.000", + "2024-03-18T17:15:00.000", + "2024-03-18T17:20:00.000", + "2024-03-18T17:25:00.000", + "2024-03-18T17:30:00.000", + "2024-03-18T17:35:00.000", + "2024-03-18T17:40:00.000", + "2024-03-18T17:45:00.000", + "2024-03-18T17:50:00.000", + "2024-03-18T17:55:00.000", + "2024-03-18T18:00:00.000", + "2024-03-18T18:05:00.000", + "2024-03-18T18:10:00.000", + "2024-03-18T18:15:00.000", + "2024-03-18T18:20:00.000", + "2024-03-18T18:25:00.000", + "2024-03-18T18:30:00.000", + "2024-03-18T18:35:00.000", + "2024-03-18T18:40:00.000", + "2024-03-18T18:45:00.000", + "2024-03-18T18:50:00.000", + "2024-03-18T18:55:00.000", + "2024-03-18T19:00:00.000", + "2024-03-18T19:05:00.000", + "2024-03-18T19:10:00.000", + "2024-03-18T19:15:00.000", + "2024-03-18T19:20:00.000", + "2024-03-18T19:25:00.000", + "2024-03-18T19:30:00.000", + "2024-03-18T19:35:00.000", + "2024-03-18T19:40:00.000", + "2024-03-18T19:45:00.000", + "2024-03-18T19:50:00.000", + "2024-03-18T19:55:00.000", + "2024-03-18T20:00:00.000", + "2024-03-18T20:05:00.000", + "2024-03-18T20:10:00.000", + "2024-03-18T20:15:00.000", + "2024-03-18T20:20:00.000", + "2024-03-18T20:25:00.000", + "2024-03-18T20:30:00.000", + "2024-03-18T20:35:00.000", + "2024-03-18T20:40:00.000", + "2024-03-18T20:45:00.000", + "2024-03-18T20:50:00.000", + "2024-03-18T20:55:00.000", + "2024-03-18T21:00:00.000", + "2024-03-18T21:05:00.000", + "2024-03-18T21:10:00.000", + "2024-03-18T21:15:00.000", + "2024-03-18T21:20:00.000", + "2024-03-18T21:25:00.000", + "2024-03-18T21:30:00.000", + "2024-03-18T21:35:00.000", + "2024-03-18T21:40:00.000", + "2024-03-18T21:45:00.000", + "2024-03-18T21:50:00.000", + "2024-03-18T21:55:00.000", + "2024-03-18T22:00:00.000", + "2024-03-18T22:05:00.000", + "2024-03-18T22:10:00.000", + "2024-03-18T22:15:00.000", + "2024-03-18T22:20:00.000", + "2024-03-18T22:25:00.000", + "2024-03-18T22:30:00.000", + "2024-03-18T22:35:00.000", + "2024-03-18T22:40:00.000", + "2024-03-18T22:45:00.000", + "2024-03-18T22:50:00.000", + "2024-03-18T22:55:00.000", + "2024-03-18T23:00:00.000", + "2024-03-18T23:05:00.000", + "2024-03-18T23:10:00.000", + "2024-03-18T23:15:00.000", + "2024-03-18T23:20:00.000", + "2024-03-18T23:25:00.000", + "2024-03-18T23:30:00.000", + "2024-03-18T23:35:00.000", + "2024-03-18T23:40:00.000", + "2024-03-18T23:45:00.000", + "2024-03-18T23:50:00.000", + "2024-03-18T23:55:00.000", + "2024-03-19T00:00:00.000", + "2024-03-19T00:05:00.000", + "2024-03-19T00:10:00.000", + "2024-03-19T00:15:00.000", + "2024-03-19T00:20:00.000", + "2024-03-19T00:25:00.000", + "2024-03-19T00:30:00.000", + "2024-03-19T00:35:00.000", + "2024-03-19T00:40:00.000", + "2024-03-19T00:45:00.000", + "2024-03-19T00:50:00.000", + "2024-03-19T00:55:00.000", + "2024-03-19T01:00:00.000", + "2024-03-19T01:05:00.000", + "2024-03-19T01:10:00.000", + "2024-03-19T01:15:00.000", + "2024-03-19T01:20:00.000", + "2024-03-19T01:25:00.000", + "2024-03-19T01:30:00.000", + "2024-03-19T01:35:00.000", + "2024-03-19T01:40:00.000", + "2024-03-19T01:45:00.000", + "2024-03-19T01:50:00.000", + "2024-03-19T01:55:00.000", + "2024-03-19T02:00:00.000", + "2024-03-19T02:05:00.000", + "2024-03-19T02:10:00.000", + "2024-03-19T02:15:00.000", + "2024-03-19T02:20:00.000", + "2024-03-19T02:25:00.000", + "2024-03-19T02:30:00.000", + "2024-03-19T02:35:00.000", + "2024-03-19T02:40:00.000", + "2024-03-19T02:45:00.000", + "2024-03-19T02:50:00.000", + "2024-03-19T02:55:00.000", + "2024-03-19T03:00:00.000", + "2024-03-19T03:05:00.000", + "2024-03-19T03:10:00.000", + "2024-03-19T03:15:00.000", + "2024-03-19T03:20:00.000", + "2024-03-19T03:25:00.000", + "2024-03-19T03:30:00.000", + "2024-03-19T03:35:00.000", + "2024-03-19T03:40:00.000", + "2024-03-19T03:45:00.000", + "2024-03-19T03:50:00.000", + "2024-03-19T03:55:00.000", + "2024-03-19T04:00:00.000", + "2024-03-19T04:05:00.000", + "2024-03-19T04:10:00.000", + "2024-03-19T04:15:00.000", + "2024-03-19T04:20:00.000", + "2024-03-19T04:25:00.000", + "2024-03-19T04:30:00.000", + "2024-03-19T04:35:00.000", + "2024-03-19T04:40:00.000", + "2024-03-19T04:45:00.000", + "2024-03-19T04:50:00.000", + "2024-03-19T04:55:00.000", + "2024-03-19T05:00:00.000", + "2024-03-19T05:05:00.000", + "2024-03-19T05:10:00.000", + "2024-03-19T05:15:00.000", + "2024-03-19T05:20:00.000", + "2024-03-19T05:25:00.000", + "2024-03-19T05:30:00.000", + "2024-03-19T05:35:00.000", + "2024-03-19T05:40:00.000", + "2024-03-19T05:45:00.000", + "2024-03-19T05:50:00.000", + "2024-03-19T05:55:00.000", + "2024-03-19T06:00:00.000", + "2024-03-19T06:05:00.000", + "2024-03-19T06:10:00.000", + "2024-03-19T06:15:00.000", + "2024-03-19T06:20:00.000", + "2024-03-19T06:25:00.000", + "2024-03-19T06:30:00.000", + "2024-03-19T06:35:00.000", + "2024-03-19T06:40:00.000", + "2024-03-19T06:45:00.000", + "2024-03-19T06:50:00.000", + "2024-03-19T06:55:00.000", + "2024-03-19T07:00:00.000", + "2024-03-19T07:05:00.000", + "2024-03-19T07:10:00.000", + "2024-03-19T07:15:00.000", + "2024-03-19T07:20:00.000", + "2024-03-19T07:25:00.000", + "2024-03-19T07:30:00.000", + "2024-03-19T07:35:00.000", + "2024-03-19T07:40:00.000", + "2024-03-19T07:45:00.000", + "2024-03-19T07:50:00.000", + "2024-03-19T07:55:00.000", + "2024-03-19T08:00:00.000", + "2024-03-19T08:05:00.000", + "2024-03-19T08:10:00.000", + "2024-03-19T08:15:00.000", + "2024-03-19T08:20:00.000", + "2024-03-19T08:25:00.000", + "2024-03-19T08:30:00.000", + "2024-03-19T08:35:00.000", + "2024-03-19T08:40:00.000", + "2024-03-19T08:45:00.000", + "2024-03-19T08:50:00.000", + "2024-03-19T08:55:00.000", + "2024-03-19T09:00:00.000", + "2024-03-19T09:05:00.000", + "2024-03-19T09:10:00.000", + "2024-03-19T09:15:00.000", + "2024-03-19T09:20:00.000", + "2024-03-19T09:25:00.000", + "2024-03-19T09:30:00.000", + "2024-03-19T09:35:00.000", + "2024-03-19T09:40:00.000", + "2024-03-19T09:45:00.000", + "2024-03-19T09:50:00.000", + "2024-03-19T09:55:00.000", + "2024-03-19T10:00:00.000", + "2024-03-19T10:05:00.000", + "2024-03-19T10:10:00.000", + "2024-03-19T10:15:00.000", + "2024-03-19T10:20:00.000", + "2024-03-19T10:25:00.000", + "2024-03-19T10:30:00.000", + "2024-03-19T10:35:00.000", + "2024-03-19T10:40:00.000", + "2024-03-19T10:45:00.000", + "2024-03-19T10:50:00.000", + "2024-03-19T10:55:00.000", + "2024-03-19T11:00:00.000", + "2024-03-19T11:05:00.000", + "2024-03-19T11:10:00.000", + "2024-03-19T11:15:00.000", + "2024-03-19T11:20:00.000", + "2024-03-19T11:25:00.000", + "2024-03-19T11:30:00.000", + "2024-03-19T11:35:00.000", + "2024-03-19T11:40:00.000", + "2024-03-19T11:45:00.000", + "2024-03-19T11:50:00.000", + "2024-03-19T11:55:00.000", + "2024-03-19T12:00:00.000", + "2024-03-19T12:05:00.000", + "2024-03-19T12:10:00.000", + "2024-03-19T12:15:00.000", + "2024-03-19T12:20:00.000", + "2024-03-19T12:25:00.000", + "2024-03-19T12:30:00.000", + "2024-03-19T12:35:00.000", + "2024-03-19T12:40:00.000", + "2024-03-19T12:45:00.000", + "2024-03-19T12:50:00.000", + "2024-03-19T12:55:00.000", + "2024-03-19T13:00:00.000", + "2024-03-19T13:05:00.000", + "2024-03-19T13:10:00.000", + "2024-03-19T13:15:00.000", + "2024-03-19T13:20:00.000", + "2024-03-19T13:25:00.000", + "2024-03-19T13:30:00.000", + "2024-03-19T13:35:00.000", + "2024-03-19T13:40:00.000", + "2024-03-19T13:45:00.000", + "2024-03-19T13:50:00.000", + "2024-03-19T13:55:00.000", + "2024-03-19T14:00:00.000", + "2024-03-19T14:05:00.000", + "2024-03-19T14:10:00.000", + "2024-03-19T14:15:00.000", + "2024-03-19T14:20:00.000", + "2024-03-19T14:25:00.000", + "2024-03-19T14:30:00.000", + "2024-03-19T14:35:00.000", + "2024-03-19T14:40:00.000", + "2024-03-19T14:45:00.000", + "2024-03-19T14:50:00.000", + "2024-03-19T14:55:00.000", + "2024-03-19T15:00:00.000", + "2024-03-19T15:05:00.000", + "2024-03-19T15:10:00.000", + "2024-03-19T15:15:00.000", + "2024-03-19T15:20:00.000", + "2024-03-19T15:25:00.000", + "2024-03-19T15:30:00.000", + "2024-03-19T15:35:00.000", + "2024-03-19T15:40:00.000", + "2024-03-19T15:45:00.000", + "2024-03-19T15:50:00.000", + "2024-03-19T15:55:00.000", + "2024-03-19T16:00:00.000", + "2024-03-19T16:05:00.000", + "2024-03-19T16:10:00.000", + "2024-03-19T16:15:00.000", + "2024-03-19T16:20:00.000", + "2024-03-19T16:25:00.000", + "2024-03-19T16:30:00.000", + "2024-03-19T16:35:00.000", + "2024-03-19T16:40:00.000", + "2024-03-19T16:45:00.000", + "2024-03-19T16:50:00.000", + "2024-03-19T16:55:00.000", + "2024-03-19T17:00:00.000", + "2024-03-19T17:05:00.000", + "2024-03-19T17:10:00.000", + "2024-03-19T17:15:00.000", + "2024-03-19T17:20:00.000", + "2024-03-19T17:25:00.000", + "2024-03-19T17:30:00.000", + "2024-03-19T17:35:00.000", + "2024-03-19T17:40:00.000", + "2024-03-19T17:45:00.000", + "2024-03-19T17:50:00.000", + "2024-03-19T17:55:00.000", + "2024-03-19T18:00:00.000", + "2024-03-19T18:05:00.000", + "2024-03-19T18:10:00.000", + "2024-03-19T18:15:00.000", + "2024-03-19T18:20:00.000", + "2024-03-19T18:25:00.000", + "2024-03-19T18:30:00.000", + "2024-03-19T18:35:00.000", + "2024-03-19T18:40:00.000", + "2024-03-19T18:45:00.000", + "2024-03-19T18:50:00.000", + "2024-03-19T18:55:00.000", + "2024-03-19T19:00:00.000", + "2024-03-19T19:05:00.000", + "2024-03-19T19:10:00.000", + "2024-03-19T19:15:00.000", + "2024-03-19T19:20:00.000", + "2024-03-19T19:25:00.000", + "2024-03-19T19:30:00.000", + "2024-03-19T19:35:00.000", + "2024-03-19T19:40:00.000", + "2024-03-19T19:45:00.000", + "2024-03-19T19:50:00.000", + "2024-03-19T19:55:00.000", + "2024-03-19T20:00:00.000", + "2024-03-19T20:05:00.000", + "2024-03-19T20:10:00.000", + "2024-03-19T20:15:00.000", + "2024-03-19T20:20:00.000", + "2024-03-19T20:25:00.000", + "2024-03-19T20:30:00.000", + "2024-03-19T20:35:00.000", + "2024-03-19T20:40:00.000", + "2024-03-19T20:45:00.000", + "2024-03-19T20:50:00.000", + "2024-03-19T20:55:00.000", + "2024-03-19T21:00:00.000", + "2024-03-19T21:05:00.000", + "2024-03-19T21:10:00.000", + "2024-03-19T21:15:00.000", + "2024-03-19T21:20:00.000", + "2024-03-19T21:25:00.000", + "2024-03-19T21:30:00.000", + "2024-03-19T21:35:00.000", + "2024-03-19T21:40:00.000", + "2024-03-19T21:45:00.000", + "2024-03-19T21:50:00.000", + "2024-03-19T21:55:00.000", + "2024-03-19T22:00:00.000", + "2024-03-19T22:05:00.000", + "2024-03-19T22:10:00.000", + "2024-03-19T22:15:00.000", + "2024-03-19T22:20:00.000", + "2024-03-19T22:25:00.000", + "2024-03-19T22:30:00.000", + "2024-03-19T22:35:00.000", + "2024-03-19T22:40:00.000", + "2024-03-19T22:45:00.000", + "2024-03-19T22:50:00.000", + "2024-03-19T22:55:00.000", + "2024-03-19T23:00:00.000", + "2024-03-19T23:05:00.000", + "2024-03-19T23:10:00.000", + "2024-03-19T23:15:00.000", + "2024-03-19T23:20:00.000", + "2024-03-19T23:25:00.000", + "2024-03-19T23:30:00.000", + "2024-03-19T23:35:00.000", + "2024-03-19T23:40:00.000", + "2024-03-19T23:45:00.000", + "2024-03-19T23:50:00.000", + "2024-03-19T23:55:00.000", + "2024-03-20T00:00:00.000", + "2024-03-20T00:05:00.000", + "2024-03-20T00:10:00.000", + "2024-03-20T00:15:00.000", + "2024-03-20T00:20:00.000", + "2024-03-20T00:25:00.000", + "2024-03-20T00:30:00.000", + "2024-03-20T00:35:00.000", + "2024-03-20T00:40:00.000", + "2024-03-20T00:45:00.000", + "2024-03-20T00:50:00.000", + "2024-03-20T00:55:00.000", + "2024-03-20T01:00:00.000", + "2024-03-20T01:05:00.000", + "2024-03-20T01:10:00.000", + "2024-03-20T01:15:00.000", + "2024-03-20T01:20:00.000", + "2024-03-20T01:25:00.000", + "2024-03-20T01:30:00.000", + "2024-03-20T01:35:00.000", + "2024-03-20T01:40:00.000", + "2024-03-20T01:45:00.000", + "2024-03-20T01:50:00.000", + "2024-03-20T01:55:00.000", + "2024-03-20T02:00:00.000", + "2024-03-20T02:05:00.000", + "2024-03-20T02:10:00.000", + "2024-03-20T02:15:00.000", + "2024-03-20T02:20:00.000", + "2024-03-20T02:25:00.000", + "2024-03-20T02:30:00.000", + "2024-03-20T02:35:00.000", + "2024-03-20T02:40:00.000", + "2024-03-20T02:45:00.000", + "2024-03-20T02:50:00.000", + "2024-03-20T02:55:00.000", + "2024-03-20T03:00:00.000", + "2024-03-20T03:05:00.000", + "2024-03-20T03:10:00.000", + "2024-03-20T03:15:00.000", + "2024-03-20T03:20:00.000", + "2024-03-20T03:25:00.000", + "2024-03-20T03:30:00.000", + "2024-03-20T03:35:00.000", + "2024-03-20T03:40:00.000", + "2024-03-20T03:45:00.000", + "2024-03-20T03:50:00.000", + "2024-03-20T03:55:00.000", + "2024-03-20T04:00:00.000", + "2024-03-20T04:05:00.000", + "2024-03-20T04:10:00.000", + "2024-03-20T04:15:00.000", + "2024-03-20T04:20:00.000", + "2024-03-20T04:25:00.000", + "2024-03-20T04:30:00.000", + "2024-03-20T04:35:00.000", + "2024-03-20T04:40:00.000", + "2024-03-20T04:45:00.000", + "2024-03-20T04:50:00.000", + "2024-03-20T04:55:00.000", + "2024-03-20T05:00:00.000", + "2024-03-20T05:05:00.000", + "2024-03-20T05:10:00.000", + "2024-03-20T05:15:00.000", + "2024-03-20T05:20:00.000", + "2024-03-20T05:25:00.000", + "2024-03-20T05:30:00.000", + "2024-03-20T05:35:00.000", + "2024-03-20T05:40:00.000", + "2024-03-20T05:45:00.000", + "2024-03-20T05:50:00.000", + "2024-03-20T05:55:00.000", + "2024-03-20T06:00:00.000", + "2024-03-20T06:05:00.000", + "2024-03-20T06:10:00.000", + "2024-03-20T06:15:00.000", + "2024-03-20T06:20:00.000", + "2024-03-20T06:25:00.000", + "2024-03-20T06:30:00.000", + "2024-03-20T06:35:00.000", + "2024-03-20T06:40:00.000", + "2024-03-20T06:45:00.000", + "2024-03-20T06:50:00.000", + "2024-03-20T06:55:00.000", + "2024-03-20T07:00:00.000", + "2024-03-20T07:05:00.000", + "2024-03-20T07:10:00.000", + "2024-03-20T07:15:00.000", + "2024-03-20T07:20:00.000", + "2024-03-20T07:25:00.000", + "2024-03-20T07:30:00.000", + "2024-03-20T07:35:00.000", + "2024-03-20T07:40:00.000", + "2024-03-20T07:45:00.000", + "2024-03-20T07:50:00.000", + "2024-03-20T07:55:00.000", + "2024-03-20T08:00:00.000", + "2024-03-20T08:05:00.000", + "2024-03-20T08:10:00.000", + "2024-03-20T08:15:00.000", + "2024-03-20T08:20:00.000", + "2024-03-20T08:25:00.000", + "2024-03-20T08:30:00.000", + "2024-03-20T08:35:00.000", + "2024-03-20T08:40:00.000", + "2024-03-20T08:45:00.000", + "2024-03-20T08:50:00.000", + "2024-03-20T08:55:00.000", + "2024-03-20T09:00:00.000", + "2024-03-20T09:05:00.000", + "2024-03-20T09:10:00.000", + "2024-03-20T09:15:00.000", + "2024-03-20T09:20:00.000", + "2024-03-20T09:25:00.000", + "2024-03-20T09:30:00.000", + "2024-03-20T09:35:00.000", + "2024-03-20T09:40:00.000", + "2024-03-20T09:45:00.000", + "2024-03-20T09:50:00.000", + "2024-03-20T09:55:00.000", + "2024-03-20T10:00:00.000", + "2024-03-20T10:05:00.000", + "2024-03-20T10:10:00.000", + "2024-03-20T10:15:00.000", + "2024-03-20T10:20:00.000", + "2024-03-20T10:25:00.000", + "2024-03-20T10:30:00.000", + "2024-03-20T10:35:00.000", + "2024-03-20T10:40:00.000", + "2024-03-20T10:45:00.000", + "2024-03-20T10:50:00.000", + "2024-03-20T10:55:00.000", + "2024-03-20T11:00:00.000", + "2024-03-20T11:05:00.000", + "2024-03-20T11:10:00.000", + "2024-03-20T11:15:00.000", + "2024-03-20T11:20:00.000", + "2024-03-20T11:25:00.000", + "2024-03-20T11:30:00.000", + "2024-03-20T11:35:00.000", + "2024-03-20T11:40:00.000", + "2024-03-20T11:45:00.000", + "2024-03-20T11:50:00.000", + "2024-03-20T11:55:00.000", + "2024-03-20T12:00:00.000", + "2024-03-20T12:05:00.000", + "2024-03-20T12:10:00.000", + "2024-03-20T12:15:00.000", + "2024-03-20T12:20:00.000", + "2024-03-20T12:25:00.000", + "2024-03-20T12:30:00.000", + "2024-03-20T12:35:00.000", + "2024-03-20T12:40:00.000", + "2024-03-20T12:45:00.000", + "2024-03-20T12:50:00.000", + "2024-03-20T12:55:00.000", + "2024-03-20T13:00:00.000", + "2024-03-20T13:05:00.000", + "2024-03-20T13:10:00.000", + "2024-03-20T13:15:00.000", + "2024-03-20T13:20:00.000", + "2024-03-20T13:25:00.000", + "2024-03-20T13:30:00.000", + "2024-03-20T13:35:00.000", + "2024-03-20T13:40:00.000", + "2024-03-20T13:45:00.000", + "2024-03-20T13:50:00.000", + "2024-03-20T13:55:00.000", + "2024-03-20T14:00:00.000", + "2024-03-20T14:05:00.000", + "2024-03-20T14:10:00.000", + "2024-03-20T14:15:00.000", + "2024-03-20T14:20:00.000", + "2024-03-20T14:25:00.000", + "2024-03-20T14:30:00.000", + "2024-03-20T14:35:00.000", + "2024-03-20T14:40:00.000", + "2024-03-20T14:45:00.000", + "2024-03-20T14:50:00.000", + "2024-03-20T14:55:00.000", + "2024-03-20T15:00:00.000", + "2024-03-20T15:05:00.000", + "2024-03-20T15:10:00.000", + "2024-03-20T15:15:00.000", + "2024-03-20T15:20:00.000", + "2024-03-20T15:25:00.000", + "2024-03-20T15:30:00.000", + "2024-03-20T15:35:00.000", + "2024-03-20T15:40:00.000", + "2024-03-20T15:45:00.000", + "2024-03-20T15:50:00.000", + "2024-03-20T15:55:00.000", + "2024-03-20T16:00:00.000", + "2024-03-20T16:05:00.000", + "2024-03-20T16:10:00.000", + "2024-03-20T16:15:00.000", + "2024-03-20T16:20:00.000", + "2024-03-20T16:25:00.000", + "2024-03-20T16:30:00.000", + "2024-03-20T16:35:00.000", + "2024-03-20T16:40:00.000", + "2024-03-20T16:45:00.000", + "2024-03-20T16:50:00.000", + "2024-03-20T16:55:00.000", + "2024-03-20T17:00:00.000", + "2024-03-20T17:05:00.000", + "2024-03-20T17:10:00.000", + "2024-03-20T17:15:00.000", + "2024-03-20T17:20:00.000", + "2024-03-20T17:25:00.000", + "2024-03-20T17:30:00.000", + "2024-03-20T17:35:00.000", + "2024-03-20T17:40:00.000", + "2024-03-20T17:45:00.000", + "2024-03-20T17:50:00.000", + "2024-03-20T17:55:00.000", + "2024-03-20T18:00:00.000", + "2024-03-20T18:05:00.000", + "2024-03-20T18:10:00.000", + "2024-03-20T18:15:00.000", + "2024-03-20T18:20:00.000", + "2024-03-20T18:25:00.000", + "2024-03-20T18:30:00.000", + "2024-03-20T18:35:00.000", + "2024-03-20T18:40:00.000", + "2024-03-20T18:45:00.000", + "2024-03-20T18:50:00.000", + "2024-03-20T18:55:00.000", + "2024-03-20T19:00:00.000", + "2024-03-20T19:05:00.000", + "2024-03-20T19:10:00.000", + "2024-03-20T19:15:00.000", + "2024-03-20T19:20:00.000", + "2024-03-20T19:25:00.000", + "2024-03-20T19:30:00.000", + "2024-03-20T19:35:00.000", + "2024-03-20T19:40:00.000", + "2024-03-20T19:45:00.000", + "2024-03-20T19:50:00.000", + "2024-03-20T19:55:00.000", + "2024-03-20T20:00:00.000", + "2024-03-20T20:05:00.000", + "2024-03-20T20:10:00.000", + "2024-03-20T20:15:00.000", + "2024-03-20T20:20:00.000", + "2024-03-20T20:25:00.000", + "2024-03-20T20:30:00.000", + "2024-03-20T20:35:00.000", + "2024-03-20T20:40:00.000", + "2024-03-20T20:45:00.000", + "2024-03-20T20:50:00.000", + "2024-03-20T20:55:00.000", + "2024-03-20T21:00:00.000", + "2024-03-20T21:05:00.000", + "2024-03-20T21:10:00.000", + "2024-03-20T21:15:00.000", + "2024-03-20T21:20:00.000", + "2024-03-20T21:25:00.000", + "2024-03-20T21:30:00.000", + "2024-03-20T21:35:00.000", + "2024-03-20T21:40:00.000", + "2024-03-20T21:45:00.000", + "2024-03-20T21:50:00.000", + "2024-03-20T21:55:00.000", + "2024-03-20T22:00:00.000", + "2024-03-20T22:05:00.000", + "2024-03-20T22:10:00.000", + "2024-03-20T22:15:00.000", + "2024-03-20T22:20:00.000", + "2024-03-20T22:25:00.000", + "2024-03-20T22:30:00.000", + "2024-03-20T22:35:00.000", + "2024-03-20T22:40:00.000", + "2024-03-20T22:45:00.000", + "2024-03-20T22:50:00.000", + "2024-03-20T22:55:00.000", + "2024-03-20T23:00:00.000", + "2024-03-20T23:05:00.000", + "2024-03-20T23:10:00.000", + "2024-03-20T23:15:00.000", + "2024-03-20T23:20:00.000", + "2024-03-20T23:25:00.000", + "2024-03-20T23:30:00.000", + "2024-03-20T23:35:00.000", + "2024-03-20T23:40:00.000", + "2024-03-20T23:45:00.000", + "2024-03-20T23:50:00.000", + "2024-03-20T23:55:00.000", + "2024-03-21T00:00:00.000", + "2024-03-21T00:05:00.000", + "2024-03-21T00:10:00.000", + "2024-03-21T00:15:00.000", + "2024-03-21T00:20:00.000", + "2024-03-21T00:25:00.000", + "2024-03-21T00:30:00.000", + "2024-03-21T00:35:00.000", + "2024-03-21T00:40:00.000", + "2024-03-21T00:45:00.000", + "2024-03-21T00:50:00.000", + "2024-03-21T00:55:00.000", + "2024-03-21T01:00:00.000", + "2024-03-21T01:05:00.000", + "2024-03-21T01:10:00.000", + "2024-03-21T01:15:00.000", + "2024-03-21T01:20:00.000", + "2024-03-21T01:25:00.000", + "2024-03-21T01:30:00.000", + "2024-03-21T01:35:00.000", + "2024-03-21T01:40:00.000", + "2024-03-21T01:45:00.000", + "2024-03-21T01:50:00.000", + "2024-03-21T01:55:00.000", + "2024-03-21T02:00:00.000", + "2024-03-21T02:05:00.000", + "2024-03-21T02:10:00.000", + "2024-03-21T02:15:00.000", + "2024-03-21T02:20:00.000", + "2024-03-21T02:25:00.000", + "2024-03-21T02:30:00.000", + "2024-03-21T02:35:00.000", + "2024-03-21T02:40:00.000", + "2024-03-21T02:45:00.000", + "2024-03-21T02:50:00.000", + "2024-03-21T02:55:00.000", + "2024-03-21T03:00:00.000", + "2024-03-21T03:05:00.000", + "2024-03-21T03:10:00.000", + "2024-03-21T03:15:00.000", + "2024-03-21T03:20:00.000", + "2024-03-21T03:25:00.000", + "2024-03-21T03:30:00.000", + "2024-03-21T03:35:00.000", + "2024-03-21T03:40:00.000", + "2024-03-21T03:45:00.000", + "2024-03-21T03:50:00.000", + "2024-03-21T03:55:00.000", + "2024-03-21T04:00:00.000", + "2024-03-21T04:05:00.000", + "2024-03-21T04:10:00.000", + "2024-03-21T04:15:00.000", + "2024-03-21T04:20:00.000", + "2024-03-21T04:25:00.000", + "2024-03-21T04:30:00.000", + "2024-03-21T04:35:00.000", + "2024-03-21T04:40:00.000", + "2024-03-21T04:45:00.000", + "2024-03-21T04:50:00.000", + "2024-03-21T04:55:00.000", + "2024-03-21T05:00:00.000", + "2024-03-21T05:05:00.000", + "2024-03-21T05:10:00.000", + "2024-03-21T05:15:00.000", + "2024-03-21T05:20:00.000", + "2024-03-21T05:25:00.000", + "2024-03-21T05:30:00.000", + "2024-03-21T05:35:00.000", + "2024-03-21T05:40:00.000", + "2024-03-21T05:45:00.000", + "2024-03-21T05:50:00.000", + "2024-03-21T05:55:00.000", + "2024-03-21T06:00:00.000", + "2024-03-21T06:05:00.000", + "2024-03-21T06:10:00.000", + "2024-03-21T06:15:00.000", + "2024-03-21T06:20:00.000", + "2024-03-21T06:25:00.000", + "2024-03-21T06:30:00.000", + "2024-03-21T06:35:00.000", + "2024-03-21T06:40:00.000", + "2024-03-21T06:45:00.000", + "2024-03-21T06:50:00.000", + "2024-03-21T06:55:00.000", + "2024-03-21T07:00:00.000", + "2024-03-21T07:05:00.000", + "2024-03-21T07:10:00.000", + "2024-03-21T07:15:00.000", + "2024-03-21T07:20:00.000", + "2024-03-21T07:25:00.000", + "2024-03-21T07:30:00.000", + "2024-03-21T07:35:00.000", + "2024-03-21T07:40:00.000", + "2024-03-21T07:45:00.000", + "2024-03-21T07:50:00.000", + "2024-03-21T07:55:00.000", + "2024-03-21T08:00:00.000", + "2024-03-21T08:05:00.000", + "2024-03-21T08:10:00.000", + "2024-03-21T08:15:00.000", + "2024-03-21T08:20:00.000", + "2024-03-21T08:25:00.000", + "2024-03-21T08:30:00.000", + "2024-03-21T08:35:00.000", + "2024-03-21T08:40:00.000", + "2024-03-21T08:45:00.000", + "2024-03-21T08:50:00.000", + "2024-03-21T08:55:00.000", + "2024-03-21T09:00:00.000", + "2024-03-21T09:05:00.000", + "2024-03-21T09:10:00.000", + "2024-03-21T09:15:00.000", + "2024-03-21T09:20:00.000", + "2024-03-21T09:25:00.000", + "2024-03-21T09:30:00.000", + "2024-03-21T09:35:00.000", + "2024-03-21T09:40:00.000", + "2024-03-21T09:45:00.000", + "2024-03-21T09:50:00.000", + "2024-03-21T09:55:00.000", + "2024-03-21T10:00:00.000", + "2024-03-21T10:05:00.000", + "2024-03-21T10:10:00.000", + "2024-03-21T10:15:00.000", + "2024-03-21T10:20:00.000", + "2024-03-21T10:25:00.000", + "2024-03-21T10:30:00.000", + "2024-03-21T10:35:00.000", + "2024-03-21T10:40:00.000", + "2024-03-21T10:45:00.000", + "2024-03-21T10:50:00.000", + "2024-03-21T10:55:00.000", + "2024-03-21T11:00:00.000", + "2024-03-21T11:05:00.000", + "2024-03-21T11:10:00.000", + "2024-03-21T11:15:00.000", + "2024-03-21T11:20:00.000", + "2024-03-21T11:25:00.000", + "2024-03-21T11:30:00.000", + "2024-03-21T11:35:00.000", + "2024-03-21T11:40:00.000", + "2024-03-21T11:45:00.000", + "2024-03-21T11:50:00.000", + "2024-03-21T11:55:00.000", + "2024-03-21T12:00:00.000", + "2024-03-21T12:05:00.000", + "2024-03-21T12:10:00.000", + "2024-03-21T12:15:00.000", + "2024-03-21T12:20:00.000", + "2024-03-21T12:25:00.000", + "2024-03-21T12:30:00.000", + "2024-03-21T12:35:00.000", + "2024-03-21T12:40:00.000", + "2024-03-21T12:45:00.000", + "2024-03-21T12:50:00.000", + "2024-03-21T12:55:00.000", + "2024-03-21T13:00:00.000", + "2024-03-21T13:05:00.000", + "2024-03-21T13:10:00.000", + "2024-03-21T13:15:00.000", + "2024-03-21T13:20:00.000", + "2024-03-21T13:25:00.000", + "2024-03-21T13:30:00.000", + "2024-03-21T13:35:00.000", + "2024-03-21T13:40:00.000", + "2024-03-21T13:45:00.000", + "2024-03-21T13:50:00.000", + "2024-03-21T13:55:00.000", + "2024-03-21T14:00:00.000", + "2024-03-21T14:05:00.000", + "2024-03-21T14:10:00.000", + "2024-03-21T14:15:00.000", + "2024-03-21T14:20:00.000", + "2024-03-21T14:25:00.000", + "2024-03-21T14:30:00.000", + "2024-03-21T14:35:00.000", + "2024-03-21T14:40:00.000", + "2024-03-21T14:45:00.000", + "2024-03-21T14:50:00.000", + "2024-03-21T14:55:00.000", + "2024-03-21T15:00:00.000", + "2024-03-21T15:05:00.000", + "2024-03-21T15:10:00.000", + "2024-03-21T15:15:00.000", + "2024-03-21T15:20:00.000", + "2024-03-21T15:25:00.000", + "2024-03-21T15:30:00.000", + "2024-03-21T15:35:00.000", + "2024-03-21T15:40:00.000", + "2024-03-21T15:45:00.000", + "2024-03-21T15:50:00.000", + "2024-03-21T15:55:00.000", + "2024-03-21T16:00:00.000", + "2024-03-21T16:05:00.000", + "2024-03-21T16:10:00.000", + "2024-03-21T16:15:00.000", + "2024-03-21T16:20:00.000", + "2024-03-21T16:25:00.000", + "2024-03-21T16:30:00.000", + "2024-03-21T16:35:00.000", + "2024-03-21T16:40:00.000", + "2024-03-21T16:45:00.000", + "2024-03-21T16:50:00.000", + "2024-03-21T16:55:00.000", + "2024-03-21T17:00:00.000", + "2024-03-21T17:05:00.000", + "2024-03-21T17:10:00.000", + "2024-03-21T17:15:00.000", + "2024-03-21T17:20:00.000", + "2024-03-21T17:25:00.000", + "2024-03-21T17:30:00.000", + "2024-03-21T17:35:00.000", + "2024-03-21T17:40:00.000", + "2024-03-21T17:45:00.000", + "2024-03-21T17:50:00.000", + "2024-03-21T17:55:00.000", + "2024-03-21T18:00:00.000", + "2024-03-21T18:05:00.000", + "2024-03-21T18:10:00.000", + "2024-03-21T18:15:00.000", + "2024-03-21T18:20:00.000", + "2024-03-21T18:25:00.000", + "2024-03-21T18:30:00.000", + "2024-03-21T18:35:00.000", + "2024-03-21T18:40:00.000", + "2024-03-21T18:45:00.000", + "2024-03-21T18:50:00.000", + "2024-03-21T18:55:00.000", + "2024-03-21T19:00:00.000", + "2024-03-21T19:05:00.000", + "2024-03-21T19:10:00.000", + "2024-03-21T19:15:00.000", + "2024-03-21T19:20:00.000", + "2024-03-21T19:25:00.000", + "2024-03-21T19:30:00.000", + "2024-03-21T19:35:00.000", + "2024-03-21T19:40:00.000", + "2024-03-21T19:45:00.000", + "2024-03-21T19:50:00.000", + "2024-03-21T19:55:00.000", + "2024-03-21T20:00:00.000", + "2024-03-21T20:05:00.000", + "2024-03-21T20:10:00.000", + "2024-03-21T20:15:00.000", + "2024-03-21T20:20:00.000", + "2024-03-21T20:25:00.000", + "2024-03-21T20:30:00.000", + "2024-03-21T20:35:00.000", + "2024-03-21T20:40:00.000", + "2024-03-21T20:45:00.000", + "2024-03-21T20:50:00.000", + "2024-03-21T20:55:00.000", + "2024-03-21T21:00:00.000", + "2024-03-21T21:05:00.000", + "2024-03-21T21:10:00.000", + "2024-03-21T21:15:00.000", + "2024-03-21T21:20:00.000", + "2024-03-21T21:25:00.000", + "2024-03-21T21:30:00.000", + "2024-03-21T21:35:00.000", + "2024-03-21T21:40:00.000", + "2024-03-21T21:45:00.000", + "2024-03-21T21:50:00.000", + "2024-03-21T21:55:00.000", + "2024-03-21T22:00:00.000", + "2024-03-21T22:05:00.000", + "2024-03-21T22:10:00.000", + "2024-03-21T22:15:00.000", + "2024-03-21T22:20:00.000", + "2024-03-21T22:25:00.000", + "2024-03-21T22:30:00.000", + "2024-03-21T22:35:00.000", + "2024-03-21T22:40:00.000", + "2024-03-21T22:45:00.000", + "2024-03-21T22:50:00.000", + "2024-03-21T22:55:00.000", + "2024-03-21T23:00:00.000", + "2024-03-21T23:05:00.000", + "2024-03-21T23:10:00.000", + "2024-03-21T23:15:00.000", + "2024-03-21T23:20:00.000", + "2024-03-21T23:25:00.000", + "2024-03-21T23:30:00.000", + "2024-03-21T23:35:00.000", + "2024-03-21T23:40:00.000", + "2024-03-21T23:45:00.000", + "2024-03-21T23:50:00.000", + "2024-03-21T23:55:00.000", + "2024-03-22T00:00:00.000", + "2024-03-22T00:05:00.000", + "2024-03-22T00:10:00.000", + "2024-03-22T00:15:00.000", + "2024-03-22T00:20:00.000", + "2024-03-22T00:25:00.000", + "2024-03-22T00:30:00.000", + "2024-03-22T00:35:00.000", + "2024-03-22T00:40:00.000", + "2024-03-22T00:45:00.000", + "2024-03-22T00:50:00.000", + "2024-03-22T00:55:00.000", + "2024-03-22T01:00:00.000", + "2024-03-22T01:05:00.000", + "2024-03-22T01:10:00.000", + "2024-03-22T01:15:00.000", + "2024-03-22T01:20:00.000", + "2024-03-22T01:25:00.000", + "2024-03-22T01:30:00.000", + "2024-03-22T01:35:00.000", + "2024-03-22T01:40:00.000", + "2024-03-22T01:45:00.000", + "2024-03-22T01:50:00.000", + "2024-03-22T01:55:00.000", + "2024-03-22T02:00:00.000", + "2024-03-22T02:05:00.000", + "2024-03-22T02:10:00.000", + "2024-03-22T02:15:00.000", + "2024-03-22T02:20:00.000", + "2024-03-22T02:25:00.000", + "2024-03-22T02:30:00.000", + "2024-03-22T02:35:00.000", + "2024-03-22T02:40:00.000", + "2024-03-22T02:45:00.000", + "2024-03-22T02:50:00.000", + "2024-03-22T02:55:00.000", + "2024-03-22T03:00:00.000", + "2024-03-22T03:05:00.000", + "2024-03-22T03:10:00.000", + "2024-03-22T03:15:00.000", + "2024-03-22T03:20:00.000", + "2024-03-22T03:25:00.000", + "2024-03-22T03:30:00.000", + "2024-03-22T03:35:00.000", + "2024-03-22T03:40:00.000", + "2024-03-22T03:45:00.000", + "2024-03-22T03:50:00.000", + "2024-03-22T03:55:00.000", + "2024-03-22T04:00:00.000", + "2024-03-22T04:05:00.000", + "2024-03-22T04:10:00.000", + "2024-03-22T04:15:00.000", + "2024-03-22T04:20:00.000", + "2024-03-22T04:25:00.000", + "2024-03-22T04:30:00.000", + "2024-03-22T04:35:00.000", + "2024-03-22T04:40:00.000", + "2024-03-22T04:45:00.000", + "2024-03-22T04:50:00.000", + "2024-03-22T04:55:00.000", + "2024-03-22T05:00:00.000", + "2024-03-22T05:05:00.000", + "2024-03-22T05:10:00.000", + "2024-03-22T05:15:00.000", + "2024-03-22T05:20:00.000", + "2024-03-22T05:25:00.000", + "2024-03-22T05:30:00.000", + "2024-03-22T05:35:00.000", + "2024-03-22T05:40:00.000", + "2024-03-22T05:45:00.000", + "2024-03-22T05:50:00.000", + "2024-03-22T05:55:00.000", + "2024-03-22T06:00:00.000", + "2024-03-22T06:05:00.000", + "2024-03-22T06:10:00.000", + "2024-03-22T06:15:00.000", + "2024-03-22T06:20:00.000", + "2024-03-22T06:25:00.000", + "2024-03-22T06:30:00.000", + "2024-03-22T06:35:00.000", + "2024-03-22T06:40:00.000", + "2024-03-22T06:45:00.000", + "2024-03-22T06:50:00.000", + "2024-03-22T06:55:00.000", + "2024-03-22T07:00:00.000", + "2024-03-22T07:05:00.000", + "2024-03-22T07:10:00.000", + "2024-03-22T07:15:00.000", + "2024-03-22T07:20:00.000", + "2024-03-22T07:25:00.000", + "2024-03-22T07:30:00.000", + "2024-03-22T07:35:00.000", + "2024-03-22T07:40:00.000", + "2024-03-22T07:45:00.000", + "2024-03-22T07:50:00.000", + "2024-03-22T07:55:00.000", + "2024-03-22T08:00:00.000", + "2024-03-22T08:05:00.000", + "2024-03-22T08:10:00.000", + "2024-03-22T08:15:00.000", + "2024-03-22T08:20:00.000", + "2024-03-22T08:25:00.000", + "2024-03-22T08:30:00.000", + "2024-03-22T08:35:00.000", + "2024-03-22T08:40:00.000", + "2024-03-22T08:45:00.000", + "2024-03-22T08:50:00.000", + "2024-03-22T08:55:00.000", + "2024-03-22T09:00:00.000", + "2024-03-22T09:05:00.000", + "2024-03-22T09:10:00.000", + "2024-03-22T09:15:00.000", + "2024-03-22T09:20:00.000", + "2024-03-22T09:25:00.000", + "2024-03-22T09:30:00.000", + "2024-03-22T09:35:00.000", + "2024-03-22T09:40:00.000", + "2024-03-22T09:45:00.000", + "2024-03-22T09:50:00.000", + "2024-03-22T09:55:00.000", + "2024-03-22T10:00:00.000", + "2024-03-22T10:05:00.000", + "2024-03-22T10:10:00.000", + "2024-03-22T10:15:00.000", + "2024-03-22T10:20:00.000", + "2024-03-22T10:25:00.000", + "2024-03-22T10:30:00.000", + "2024-03-22T10:35:00.000", + "2024-03-22T10:40:00.000", + "2024-03-22T10:45:00.000", + "2024-03-22T10:50:00.000", + "2024-03-22T10:55:00.000", + "2024-03-22T11:00:00.000", + "2024-03-22T11:05:00.000", + "2024-03-22T11:10:00.000", + "2024-03-22T11:15:00.000", + "2024-03-22T11:20:00.000", + "2024-03-22T11:25:00.000", + "2024-03-22T11:30:00.000", + "2024-03-22T11:35:00.000", + "2024-03-22T11:40:00.000", + "2024-03-22T11:45:00.000", + "2024-03-22T11:50:00.000", + "2024-03-22T11:55:00.000", + "2024-03-22T12:00:00.000", + "2024-03-22T12:05:00.000", + "2024-03-22T12:10:00.000", + "2024-03-22T12:15:00.000", + "2024-03-22T12:20:00.000", + "2024-03-22T12:25:00.000", + "2024-03-22T12:30:00.000", + "2024-03-22T12:35:00.000", + "2024-03-22T12:40:00.000", + "2024-03-22T12:45:00.000", + "2024-03-22T12:50:00.000", + "2024-03-22T12:55:00.000", + "2024-03-22T13:00:00.000", + "2024-03-22T13:05:00.000", + "2024-03-22T13:10:00.000", + "2024-03-22T13:15:00.000", + "2024-03-22T13:20:00.000", + "2024-03-22T13:25:00.000", + "2024-03-22T13:30:00.000", + "2024-03-22T13:35:00.000", + "2024-03-22T13:40:00.000", + "2024-03-22T13:45:00.000", + "2024-03-22T13:50:00.000", + "2024-03-22T13:55:00.000", + "2024-03-22T14:00:00.000", + "2024-03-22T14:05:00.000", + "2024-03-22T14:10:00.000", + "2024-03-22T14:15:00.000", + "2024-03-22T14:20:00.000", + "2024-03-22T14:25:00.000", + "2024-03-22T14:30:00.000", + "2024-03-22T14:35:00.000", + "2024-03-22T14:40:00.000", + "2024-03-22T14:45:00.000", + "2024-03-22T14:50:00.000", + "2024-03-22T14:55:00.000", + "2024-03-22T15:00:00.000", + "2024-03-22T15:05:00.000", + "2024-03-22T15:10:00.000", + "2024-03-22T15:15:00.000", + "2024-03-22T15:20:00.000", + "2024-03-22T15:25:00.000", + "2024-03-22T15:30:00.000", + "2024-03-22T15:35:00.000", + "2024-03-22T15:40:00.000", + "2024-03-22T15:45:00.000", + "2024-03-22T15:50:00.000", + "2024-03-22T15:55:00.000", + "2024-03-22T16:00:00.000", + "2024-03-22T16:05:00.000", + "2024-03-22T16:10:00.000", + "2024-03-22T16:15:00.000", + "2024-03-22T16:20:00.000", + "2024-03-22T16:25:00.000", + "2024-03-22T16:30:00.000", + "2024-03-22T16:35:00.000", + "2024-03-22T16:40:00.000", + "2024-03-22T16:45:00.000", + "2024-03-22T16:50:00.000", + "2024-03-22T16:55:00.000", + "2024-03-22T17:00:00.000", + "2024-03-22T17:05:00.000", + "2024-03-22T17:10:00.000", + "2024-03-22T17:15:00.000", + "2024-03-22T17:20:00.000", + "2024-03-22T17:25:00.000", + "2024-03-22T17:30:00.000", + "2024-03-22T17:35:00.000", + "2024-03-22T17:40:00.000", + "2024-03-22T17:45:00.000", + "2024-03-22T17:50:00.000", + "2024-03-22T17:55:00.000", + "2024-03-22T18:00:00.000", + "2024-03-22T18:05:00.000", + "2024-03-22T18:10:00.000", + "2024-03-22T18:15:00.000", + "2024-03-22T18:20:00.000", + "2024-03-22T18:25:00.000", + "2024-03-22T18:30:00.000", + "2024-03-22T18:35:00.000", + "2024-03-22T18:40:00.000", + "2024-03-22T18:45:00.000", + "2024-03-22T18:50:00.000", + "2024-03-22T18:55:00.000", + "2024-03-22T19:00:00.000", + "2024-03-22T19:05:00.000", + "2024-03-22T19:10:00.000", + "2024-03-22T19:15:00.000", + "2024-03-22T19:20:00.000", + "2024-03-22T19:25:00.000", + "2024-03-22T19:30:00.000", + "2024-03-22T19:35:00.000", + "2024-03-22T19:40:00.000", + "2024-03-22T19:45:00.000", + "2024-03-22T19:50:00.000", + "2024-03-22T19:55:00.000", + "2024-03-22T20:00:00.000", + "2024-03-22T20:05:00.000", + "2024-03-22T20:10:00.000", + "2024-03-22T20:15:00.000", + "2024-03-22T20:20:00.000", + "2024-03-22T20:25:00.000", + "2024-03-22T20:30:00.000", + "2024-03-22T20:35:00.000", + "2024-03-22T20:40:00.000", + "2024-03-22T20:45:00.000", + "2024-03-22T20:50:00.000", + "2024-03-22T20:55:00.000", + "2024-03-22T21:00:00.000", + "2024-03-22T21:05:00.000", + "2024-03-22T21:10:00.000", + "2024-03-22T21:15:00.000", + "2024-03-22T21:20:00.000", + "2024-03-22T21:25:00.000", + "2024-03-22T21:30:00.000", + "2024-03-22T21:35:00.000", + "2024-03-22T21:40:00.000", + "2024-03-22T21:45:00.000", + "2024-03-22T21:50:00.000", + "2024-03-22T21:55:00.000", + "2024-03-22T22:00:00.000", + "2024-03-22T22:05:00.000", + "2024-03-22T22:10:00.000", + "2024-03-22T22:15:00.000", + "2024-03-22T22:20:00.000", + "2024-03-22T22:25:00.000", + "2024-03-22T22:30:00.000", + "2024-03-22T22:35:00.000", + "2024-03-22T22:40:00.000", + "2024-03-22T22:45:00.000", + "2024-03-22T22:50:00.000", + "2024-03-22T22:55:00.000", + "2024-03-22T23:00:00.000", + "2024-03-22T23:05:00.000", + "2024-03-22T23:10:00.000", + "2024-03-22T23:15:00.000", + "2024-03-22T23:20:00.000", + "2024-03-22T23:25:00.000", + "2024-03-22T23:30:00.000", + "2024-03-22T23:35:00.000", + "2024-03-22T23:40:00.000", + "2024-03-22T23:45:00.000", + "2024-03-22T23:50:00.000", + "2024-03-22T23:55:00.000", + "2024-03-23T00:00:00.000", + "2024-03-23T00:05:00.000", + "2024-03-23T00:10:00.000", + "2024-03-23T00:15:00.000", + "2024-03-23T00:20:00.000", + "2024-03-23T00:25:00.000", + "2024-03-23T00:30:00.000", + "2024-03-23T00:35:00.000", + "2024-03-23T00:40:00.000", + "2024-03-23T00:45:00.000", + "2024-03-23T00:50:00.000", + "2024-03-23T00:55:00.000", + "2024-03-23T01:00:00.000", + "2024-03-23T01:05:00.000", + "2024-03-23T01:10:00.000", + "2024-03-23T01:15:00.000", + "2024-03-23T01:20:00.000", + "2024-03-23T01:25:00.000", + "2024-03-23T01:30:00.000", + "2024-03-23T01:35:00.000", + "2024-03-23T01:40:00.000", + "2024-03-23T01:45:00.000", + "2024-03-23T01:50:00.000", + "2024-03-23T01:55:00.000", + "2024-03-23T02:00:00.000", + "2024-03-23T02:05:00.000", + "2024-03-23T02:10:00.000", + "2024-03-23T02:15:00.000", + "2024-03-23T02:20:00.000", + "2024-03-23T02:25:00.000", + "2024-03-23T02:30:00.000", + "2024-03-23T02:35:00.000", + "2024-03-23T02:40:00.000", + "2024-03-23T02:45:00.000", + "2024-03-23T02:50:00.000", + "2024-03-23T02:55:00.000", + "2024-03-23T03:00:00.000", + "2024-03-23T03:05:00.000", + "2024-03-23T03:10:00.000", + "2024-03-23T03:15:00.000", + "2024-03-23T03:20:00.000", + "2024-03-23T03:25:00.000", + "2024-03-23T03:30:00.000", + "2024-03-23T03:35:00.000", + "2024-03-23T03:40:00.000", + "2024-03-23T03:45:00.000", + "2024-03-23T03:50:00.000", + "2024-03-23T03:55:00.000", + "2024-03-23T04:00:00.000", + "2024-03-23T04:05:00.000", + "2024-03-23T04:10:00.000", + "2024-03-23T04:15:00.000", + "2024-03-23T04:20:00.000", + "2024-03-23T04:25:00.000", + "2024-03-23T04:30:00.000", + "2024-03-23T04:35:00.000", + "2024-03-23T04:40:00.000", + "2024-03-23T04:45:00.000", + "2024-03-23T04:50:00.000", + "2024-03-23T04:55:00.000", + "2024-03-23T05:00:00.000", + "2024-03-23T05:05:00.000", + "2024-03-23T05:10:00.000", + "2024-03-23T05:15:00.000", + "2024-03-23T05:20:00.000", + "2024-03-23T05:25:00.000", + "2024-03-23T05:30:00.000", + "2024-03-23T05:35:00.000", + "2024-03-23T05:40:00.000", + "2024-03-23T05:45:00.000", + "2024-03-23T05:50:00.000", + "2024-03-23T05:55:00.000", + "2024-03-23T06:00:00.000", + "2024-03-23T06:05:00.000", + "2024-03-23T06:10:00.000", + "2024-03-23T06:15:00.000", + "2024-03-23T06:20:00.000", + "2024-03-23T06:25:00.000", + "2024-03-23T06:30:00.000", + "2024-03-23T06:35:00.000", + "2024-03-23T06:40:00.000", + "2024-03-23T06:45:00.000", + "2024-03-23T06:50:00.000", + "2024-03-23T06:55:00.000", + "2024-03-23T07:00:00.000", + "2024-03-23T07:05:00.000", + "2024-03-23T07:10:00.000", + "2024-03-23T07:15:00.000", + "2024-03-23T07:20:00.000", + "2024-03-23T07:25:00.000", + "2024-03-23T07:30:00.000", + "2024-03-23T07:35:00.000", + "2024-03-23T07:40:00.000", + "2024-03-23T07:45:00.000", + "2024-03-23T07:50:00.000", + "2024-03-23T07:55:00.000", + "2024-03-23T08:00:00.000", + "2024-03-23T08:05:00.000", + "2024-03-23T08:10:00.000", + "2024-03-23T08:15:00.000", + "2024-03-23T08:20:00.000", + "2024-03-23T08:25:00.000", + "2024-03-23T08:30:00.000", + "2024-03-23T08:35:00.000", + "2024-03-23T08:40:00.000", + "2024-03-23T08:45:00.000", + "2024-03-23T08:50:00.000", + "2024-03-23T08:55:00.000", + "2024-03-23T09:00:00.000", + "2024-03-23T09:05:00.000", + "2024-03-23T09:10:00.000", + "2024-03-23T09:15:00.000", + "2024-03-23T09:20:00.000", + "2024-03-23T09:25:00.000", + "2024-03-23T09:30:00.000", + "2024-03-23T09:35:00.000", + "2024-03-23T09:40:00.000", + "2024-03-23T09:45:00.000", + "2024-03-23T09:50:00.000", + "2024-03-23T09:55:00.000", + "2024-03-23T10:00:00.000", + "2024-03-23T10:05:00.000", + "2024-03-23T10:10:00.000", + "2024-03-23T10:15:00.000", + "2024-03-23T10:20:00.000", + "2024-03-23T10:25:00.000", + "2024-03-23T10:30:00.000", + "2024-03-23T10:35:00.000", + "2024-03-23T10:40:00.000", + "2024-03-23T10:45:00.000", + "2024-03-23T10:50:00.000", + "2024-03-23T10:55:00.000", + "2024-03-23T11:00:00.000", + "2024-03-23T11:05:00.000", + "2024-03-23T11:10:00.000", + "2024-03-23T11:15:00.000", + "2024-03-23T11:20:00.000", + "2024-03-23T11:25:00.000", + "2024-03-23T11:30:00.000", + "2024-03-23T11:35:00.000", + "2024-03-23T11:40:00.000", + "2024-03-23T11:45:00.000", + "2024-03-23T11:50:00.000", + "2024-03-23T11:55:00.000", + "2024-03-23T12:00:00.000", + "2024-03-23T12:05:00.000", + "2024-03-23T12:10:00.000", + "2024-03-23T12:15:00.000", + "2024-03-23T12:20:00.000", + "2024-03-23T12:25:00.000", + "2024-03-23T12:30:00.000", + "2024-03-23T12:35:00.000", + "2024-03-23T12:40:00.000", + "2024-03-23T12:45:00.000", + "2024-03-23T12:50:00.000", + "2024-03-23T12:55:00.000", + "2024-03-23T13:00:00.000", + "2024-03-23T13:05:00.000", + "2024-03-23T13:10:00.000", + "2024-03-23T13:15:00.000", + "2024-03-23T13:20:00.000", + "2024-03-23T13:25:00.000", + "2024-03-23T13:30:00.000", + "2024-03-23T13:35:00.000", + "2024-03-23T13:40:00.000", + "2024-03-23T13:45:00.000", + "2024-03-23T13:50:00.000", + "2024-03-23T13:55:00.000", + "2024-03-23T14:00:00.000", + "2024-03-23T14:05:00.000", + "2024-03-23T14:10:00.000", + "2024-03-23T14:15:00.000", + "2024-03-23T14:20:00.000", + "2024-03-23T14:25:00.000", + "2024-03-23T14:30:00.000", + "2024-03-23T14:35:00.000", + "2024-03-23T14:40:00.000", + "2024-03-23T14:45:00.000", + "2024-03-23T14:50:00.000", + "2024-03-23T14:55:00.000", + "2024-03-23T15:00:00.000", + "2024-03-23T15:05:00.000", + "2024-03-23T15:10:00.000", + "2024-03-23T15:15:00.000", + "2024-03-23T15:20:00.000", + "2024-03-23T15:25:00.000", + "2024-03-23T15:30:00.000", + "2024-03-23T15:35:00.000", + "2024-03-23T15:40:00.000", + "2024-03-23T15:45:00.000", + "2024-03-23T15:50:00.000", + "2024-03-23T15:55:00.000", + "2024-03-23T16:00:00.000", + "2024-03-23T16:05:00.000", + "2024-03-23T16:10:00.000", + "2024-03-23T16:15:00.000", + "2024-03-23T16:20:00.000", + "2024-03-23T16:25:00.000", + "2024-03-23T16:30:00.000", + "2024-03-23T16:35:00.000", + "2024-03-23T16:40:00.000", + "2024-03-23T16:45:00.000", + "2024-03-23T16:50:00.000", + "2024-03-23T16:55:00.000", + "2024-03-23T17:00:00.000", + "2024-03-23T17:05:00.000", + "2024-03-23T17:10:00.000", + "2024-03-23T17:15:00.000", + "2024-03-23T17:20:00.000", + "2024-03-23T17:25:00.000", + "2024-03-23T17:30:00.000", + "2024-03-23T17:35:00.000", + "2024-03-23T17:40:00.000", + "2024-03-23T17:45:00.000", + "2024-03-23T17:50:00.000", + "2024-03-23T17:55:00.000", + "2024-03-23T18:00:00.000", + "2024-03-23T18:05:00.000", + "2024-03-23T18:10:00.000", + "2024-03-23T18:15:00.000", + "2024-03-23T18:20:00.000", + "2024-03-23T18:25:00.000", + "2024-03-23T18:30:00.000", + "2024-03-23T18:35:00.000", + "2024-03-23T18:40:00.000", + "2024-03-23T18:45:00.000", + "2024-03-23T18:50:00.000", + "2024-03-23T18:55:00.000", + "2024-03-23T19:00:00.000", + "2024-03-23T19:05:00.000", + "2024-03-23T19:10:00.000", + "2024-03-23T19:15:00.000", + "2024-03-23T19:20:00.000", + "2024-03-23T19:25:00.000", + "2024-03-23T19:30:00.000", + "2024-03-23T19:35:00.000", + "2024-03-23T19:40:00.000", + "2024-03-23T19:45:00.000", + "2024-03-23T19:50:00.000", + "2024-03-23T19:55:00.000", + "2024-03-23T20:00:00.000", + "2024-03-23T20:05:00.000", + "2024-03-23T20:10:00.000", + "2024-03-23T20:15:00.000", + "2024-03-23T20:20:00.000", + "2024-03-23T20:25:00.000", + "2024-03-23T20:30:00.000", + "2024-03-23T20:35:00.000", + "2024-03-23T20:40:00.000", + "2024-03-23T20:45:00.000", + "2024-03-23T20:50:00.000", + "2024-03-23T20:55:00.000", + "2024-03-23T21:00:00.000", + "2024-03-23T21:05:00.000", + "2024-03-23T21:10:00.000", + "2024-03-23T21:15:00.000", + "2024-03-23T21:20:00.000", + "2024-03-23T21:25:00.000", + "2024-03-23T21:30:00.000", + "2024-03-23T21:35:00.000", + "2024-03-23T21:40:00.000", + "2024-03-23T21:45:00.000", + "2024-03-23T21:50:00.000", + "2024-03-23T21:55:00.000", + "2024-03-23T22:00:00.000", + "2024-03-23T22:05:00.000", + "2024-03-23T22:10:00.000", + "2024-03-23T22:15:00.000", + "2024-03-23T22:20:00.000", + "2024-03-23T22:25:00.000", + "2024-03-23T22:30:00.000", + "2024-03-23T22:35:00.000", + "2024-03-23T22:40:00.000", + "2024-03-23T22:45:00.000", + "2024-03-23T22:50:00.000", + "2024-03-23T22:55:00.000", + "2024-03-23T23:00:00.000", + "2024-03-23T23:05:00.000", + "2024-03-23T23:10:00.000", + "2024-03-23T23:15:00.000", + "2024-03-23T23:20:00.000", + "2024-03-23T23:25:00.000", + "2024-03-23T23:30:00.000", + "2024-03-23T23:35:00.000", + "2024-03-23T23:40:00.000", + "2024-03-23T23:45:00.000", + "2024-03-23T23:50:00.000", + "2024-03-23T23:55:00.000", + "2024-03-24T00:00:00.000", + "2024-03-24T00:05:00.000", + "2024-03-24T00:10:00.000", + "2024-03-24T00:15:00.000", + "2024-03-24T00:20:00.000", + "2024-03-24T00:25:00.000", + "2024-03-24T00:30:00.000", + "2024-03-24T00:35:00.000", + "2024-03-24T00:40:00.000", + "2024-03-24T00:45:00.000", + "2024-03-24T00:50:00.000", + "2024-03-24T00:55:00.000", + "2024-03-24T01:00:00.000", + "2024-03-24T01:05:00.000", + "2024-03-24T01:10:00.000", + "2024-03-24T01:15:00.000", + "2024-03-24T01:20:00.000", + "2024-03-24T01:25:00.000", + "2024-03-24T01:30:00.000", + "2024-03-24T01:35:00.000", + "2024-03-24T01:40:00.000", + "2024-03-24T01:45:00.000", + "2024-03-24T01:50:00.000", + "2024-03-24T01:55:00.000", + "2024-03-24T02:00:00.000", + "2024-03-24T02:05:00.000", + "2024-03-24T02:10:00.000", + "2024-03-24T02:15:00.000", + "2024-03-24T02:20:00.000", + "2024-03-24T02:25:00.000", + "2024-03-24T02:30:00.000" + ], + "y": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 62.9, + 56.6, + 56.9, + 57.8, + 58.4, + 59.1, + 54.5, + 56, + 63, + 68.5, + 65.8, + 63, + 64.3, + 66.9, + 65.2, + 66.6, + 58.5, + 61.1, + 59.2, + 48.5, + 43.1, + 47.3, + 49.5, + 45.4, + 55.1, + 56.8, + 64.9, + 56.4, + 60.2, + 63.6, + 55.1, + 57.4, + 53.3, + 46.3, + 47.5, + 48.3, + 51.7, + 52.7, + 51.2, + 55.3, + 54.7, + 54.1, + 46.6, + 44.6, + 48.2, + 48.6, + 56.1, + 53.4, + 49.9, + 51.2, + 57.3, + 51.3, + 52.2, + 51.4, + 53.5, + 52.6, + 45.4, + 41.1, + 39.4, + 41.1, + 39.7, + 44.7, + 45.1, + 44.9, + 52.8, + 54.2, + 50.2, + 46.5, + 46, + 44.8, + 50, + 51.9, + 51.4, + 54.1, + 53, + 44.7, + 48.6, + 47.6, + 54.6, + 58.2, + 55.1, + 47.5, + 42.4, + 42.9, + 39.5, + 39.8, + 40, + 30.6, + 41, + 37.3, + 40.7, + 41.8, + 40.4, + 38.1, + 36.8, + 40.8, + 49.1, + 51.5, + 54.7, + 55.4, + 49.9, + 51.8, + 50.8, + 60.7, + 64.2, + 62.9, + 62.9, + 62.1, + 54.7, + 52.8, + 55.4, + 59.2, + 60.5, + 63.4, + 63.5, + 67.5, + 67.7, + 62.2, + 66.1, + 62.9, + 66, + 59.9, + 62.3, + 63.9, + 67.5, + 76.7, + 70.7, + 59.4, + 55.9, + 45.5, + 42.4, + 38.5, + 35.7, + 35.2, + 41.2, + 45, + 41.3, + 35.1, + 39, + 46.9, + 45.1, + 48.8, + 48.3, + 48.2, + 53.3, + 51.8, + 54.6, + 54.7, + 63.5, + 64, + 65.9, + 68.7, + 70.7, + 55.7, + 60.1, + 62.4, + 60.8, + 61.4, + 64, + 65.4, + 65.7, + 55.2, + 49.4, + 52.3, + 48, + 44.9, + 46.4, + 50.6, + 48.4, + 43, + 45.2, + 52.8, + 51.2, + 49.4, + 54.2, + 57.1, + 58.6, + 53, + 51.6, + 51.4, + 53.3, + 50.8, + 47.7, + 48.4, + 53.9, + 56.2, + 51.6, + 51.4, + 54.1, + 50.6, + 43.5, + 45.2, + 40.7, + 43.7, + 49.9, + 43.9, + 43.5, + 37.3, + 42.4, + 41.1, + 47.4, + 48, + 41.9, + 39.1, + 34.9, + 34, + 35.7, + 33.9, + 29.7, + 26.3, + 37.8, + 36, + 38.4, + 34.5, + 32, + 34.7, + 40.2, + 42.7, + 44.5, + 50.9, + 51.7, + 46.9, + 38.4, + 33.8, + 40.3, + 39.3, + 36.9, + 41, + 39.1, + 47.7, + 49.3, + 51.9, + 43, + 37.9, + 43.9, + 35.9, + 40.9, + 35, + 29.5, + 33.5, + 27.2, + 25.1, + 36.4, + 40.6, + 42.6, + 40.2, + 45.2, + 47.3, + 47.2, + 37.6, + 37.1, + 38.5, + 32.7, + 33, + 39.1, + 46.7, + 42.3, + 47.4, + 41.3, + 36.5, + 30.1, + 36.8, + 31, + 40, + 43.2, + 38.8, + 38.2, + 43.7, + 39.4, + 36, + 37.3, + 36.6, + 34.4, + 40.6, + 45, + 43.7, + 52.8, + 54, + 53.1, + 50.6, + 48.7, + 51.4, + 50.1, + 46.2, + 43.2, + 49.7, + 47.4, + 45.7, + 45.4, + 47.8, + 49.5, + 44.4, + 40.9, + 40.5, + 35.8, + 40.5, + 43.5, + 41, + 43, + 40.3, + 35.7, + 27.2, + 40.7, + 41.6, + 41.5, + 39.8, + 37.7, + 36.2, + 33.8, + 27, + 26.4, + 28.1, + 38.1, + 45.8, + 40.5, + 49.3, + 52.6, + 51.5, + 55.1, + 55.5, + 58.2, + 60.7, + 65.6, + 60, + 62, + 61.8, + 56.5, + 54, + 51, + 59.4, + 54.3, + 55.8, + 54.4, + 54.1, + 55.2, + 58.1, + 55.8, + 56, + 60, + 63.5, + 64.9, + 60.5, + 64.2, + 65, + 65.5, + 61.1, + 63.3, + 59.2, + 63.1, + 60.7, + 60.9, + 59.4, + 60.4, + 64.3, + 59.4, + 58.8, + 57.3, + 59.9, + 62.3, + 59.6, + 53.5, + 52.1, + 50.6, + 55.3, + 52.1, + 50.7, + 58, + 62.1, + 68.9, + 73.8, + 68.3, + 56.1, + 56, + 54.7, + 56.7, + 54.6, + 53.7, + 58.9, + 58.1, + 54.7, + 55.7, + 56, + 55.7, + 54.5, + 49.2, + 44.2, + 45, + 45.7, + 46, + 40.2, + 38.1, + 28.7, + 22.6, + 19.2, + 14.1, + 13.6, + 11.9, + 8.5, + 22.9, + 30.1, + 27.1, + 29.2, + 28.5, + 21.5, + 18.8, + 29.8, + 36, + 34.5, + 40.3, + 38.4, + 36.1, + 33.1, + 34.9, + 42.4, + 40.5, + 39.5, + 40.3, + 36.1, + 33.5, + 29.7, + 37.5, + 37.3, + 37, + 45, + 46.8, + 45.5, + 43.9, + 43, + 42.5, + 44.1, + 40, + 37.3, + 38.1, + 42.3, + 40.4, + 43.6, + 47, + 46.9, + 48.4, + 51.6, + 58.3, + 61.4, + 58.5, + 60.6, + 56.3, + 56.9, + 60.8, + 55.1, + 54.4, + 54.8, + 49.6, + 51.8, + 51.6, + 55.2, + 58.9, + 60.6, + 59.6, + 56.6, + 52.8, + 56.3, + 50.7, + 49.9, + 47.4, + 39.1, + 35.1, + 43.3, + 40.7, + 35.9, + 32.3, + 33.1, + 29.3, + 34.5, + 23.4, + 23.3, + 39.4, + 41.1, + 40.3, + 41.8, + 52.8, + 50.4, + 52.3, + 56.7, + 53.8, + 53.6, + 49.9, + 48.3, + 53.1, + 54.2, + 51.8, + 50.1, + 47, + 49.2, + 49.9, + 47.7, + 42.7, + 45.3, + 37.7, + 45.8, + 43.8, + 39.9, + 39.3, + 50.3, + 52.5, + 51.6, + 55.1, + 55.3, + 55.2, + 56.3, + 54, + 52.2, + 50.8, + 57.1, + 56.4, + 60.2, + 57.1, + 50.6, + 53.3, + 54.8, + 57.1, + 63.2, + 56.1, + 55.3, + 52.7, + 50.1, + 51.4, + 50.7, + 61.1, + 55.9, + 61.8, + 64.2, + 62.6, + 56.7, + 50.7, + 49.9, + 51, + 57, + 51.3, + 50.4, + 52.8, + 52.6, + 57, + 58.6, + 63.9, + 63.5, + 56, + 60.1, + 53.2, + 52.8, + 55.3, + 49.9, + 50.4, + 54.2, + 49.5, + 50.1, + 48.3, + 43.7, + 35.5, + 37.6, + 38, + 41.1, + 48.5, + 47, + 52.3, + 57.5, + 52.5, + 49.5, + 45.8, + 41.2, + 45.5, + 49.6, + 47.5, + 52.5, + 54, + 52.7, + 52.9, + 52.7, + 50.6, + 53.7, + 54.7, + 59.2, + 57.1, + 58.6, + 60.8, + 56.4, + 57, + 63, + 64.4, + 76.3, + 80.1, + 85.4, + 82.4, + 83.3, + 84, + 76.8, + 70, + 64.7, + 66.9, + 62.4, + 55.1, + 56.5, + 45.3, + 40.8, + 46.1, + 40.4, + 32, + 34, + 40.4, + 43.8, + 42.8, + 41.9, + 39.2, + 34.4, + 33.8, + 39.7, + 38.7, + 45.7, + 45.4, + 44, + 46.9, + 46.9, + 42.7, + 45.6, + 45.9, + 45.3, + 43.6, + 46.9, + 50, + 49.2, + 49.8, + 52.1, + 52, + 53, + 50.8, + 50.3, + 60.6, + 64.7, + 65, + 64, + 67.9, + 57.2, + 59.7, + 60.9, + 58.8, + 63.6, + 68.9, + 71.2, + 72.7, + 73.4, + 71.6, + 66.4, + 66.1, + 67.3, + 73, + 68.8, + 71.6, + 71.1, + 69.9, + 66.3, + 66.6, + 62.2, + 65, + 60.1, + 55.4, + 59.2, + 61.7, + 54.2, + 54.1, + 50.1, + 44, + 41, + 40.2, + 46.4, + 43.2, + 41.7, + 44.6, + 44.7, + 42.9, + 38.3, + 46.1, + 44.2, + 39.3, + 39.2, + 40.7, + 47, + 44.7, + 44.3, + 41.3, + 39.9, + 47.3, + 53.3, + 53.2, + 49.3, + 47.5, + 48.6, + 49.1, + 51.7, + 54.7, + 53, + 46.8, + 40.8, + 45.3, + 43.5, + 48.4, + 53.7, + 47.5, + 38.9, + 37.5, + 39.7, + 38, + 47.2, + 44.9, + 40.9, + 41.1, + 36.9, + 33.4, + 44.4, + 41.3, + 50.4, + 48.6, + 50.2, + 47.7, + 49.5, + 49.6, + 50.7, + 49.4, + 52.4, + 53.9, + 56, + 50.4, + 45.6, + 50.8, + 52.6, + 58, + 55.9, + 56.9, + 56, + 60.4, + 60.7, + 54.8, + 60.6, + 60.3, + 62.9, + 63.4, + 65.5, + 61.1, + 62.6, + 63.7, + 54.9, + 57.4, + 57.1, + 47.5, + 46.7, + 46.6, + 52.5, + 53.1, + 53.6, + 45.1, + 40.1, + 37.6, + 40.9, + 38.9, + 38.7, + 36.7, + 44.3, + 46.3, + 42.2, + 44.1, + 41, + 35.7, + 38.1, + 37.9, + 32.1, + 30.5, + 27.3, + 21.4, + 29, + 28.3, + 24.7, + 31, + 30.7, + 29.1, + 27.2, + 26.3, + 33.1, + 30.5, + 27.9, + 22.6, + 20.9, + 17.7, + 28.9, + 35.6, + 40.9, + 45, + 40.2, + 40.1, + 32.7, + 35, + 42.6, + 47, + 51.6, + 46.9, + 40.8, + 37.9, + 41.9, + 37.9, + 36.2, + 36.3, + 46.1, + 41.3, + 42.9, + 47.8, + 45.1, + 47.8, + 44.3, + 43.9, + 40.8, + 44.5, + 38.3, + 36.4, + 32.5, + 43.7, + 48.1, + 51, + 47.7, + 45.9, + 47.6, + 45.4, + 50.5, + 46.9, + 50.4, + 56.9, + 49.7, + 50.2, + 50.9, + 52.2, + 55.1, + 51.3, + 54.4, + 54.9, + 57.2, + 63.7, + 62.3, + 60.3, + 58.1, + 57.7, + 55.6, + 51.9, + 60, + 52.9, + 53.5, + 55.3, + 55.9, + 51, + 51.4, + 48.9, + 51.6, + 47.8, + 45.2, + 44.5, + 42.2, + 32.9, + 40.9, + 40.4, + 30.9, + 29.9, + 30.2, + 23.1, + 20.6, + 17.8, + 23.3, + 31.5, + 29.3, + 28, + 30.7, + 29.1, + 28.1, + 27.4, + 24.4, + 38.4, + 49.7, + 58.5, + 52.9, + 48.6, + 53.3, + 53.1, + 54.9, + 53.2, + 49.1, + 44.7, + 41.5, + 37.8, + 37.3, + 38.3, + 41.7, + 40.9, + 36.7, + 45.6, + 51.4, + 54.6, + 55.2, + 55.3, + 47.4, + 46.1, + 43.5, + 36.1, + 44.8, + 36.3, + 35.1, + 32.4, + 31.3, + 36.6, + 35.3, + 34.6, + 40.2, + 36.2, + 32.6, + 31.4, + 38.6, + 42.3, + 44.2, + 47.5, + 48.9, + 50.9, + 49.7, + 49.6, + 42.7, + 44.8, + 40.2, + 35, + 26, + 22.5, + 42.3, + 36.4, + 40.4, + 40.9, + 40.5, + 38.1, + 36.9, + 37.2, + 51.3, + 50, + 48, + 52.5, + 54.2, + 51.8, + 45.4, + 47.1, + 45.9, + 47.7, + 41.7, + 38.1, + 45.4, + 48.5, + 46.5, + 48.3, + 51.4, + 49.1, + 51.9, + 53.9, + 55.5, + 55.1, + 53.6, + 57.6, + 59.3, + 53.3, + 55.1, + 56.4, + 57.6, + 62, + 57.4, + 59, + 57.9, + 60.9, + 62.4, + 57.2, + 55.1, + 55.3, + 56.2, + 53.4, + 54.7, + 53.1, + 57.4, + 58.7, + 54.6, + 59.4, + 60.5, + 61.2, + 56.2, + 54.5, + 53, + 56, + 56.7, + 53.2, + 56.9, + 51, + 46.3, + 50.8, + 49.5, + 50.4, + 51.2, + 59.2, + 53.4, + 53.6, + 52.1, + 53.3, + 46.3, + 37.1, + 40.8, + 39.2, + 42, + 46.5, + 51.7, + 45.5, + 35.7, + 39.3, + 45, + 40.7, + 34.2, + 30.3, + 35.4, + 33.3, + 31.7, + 23.3, + 35.5, + 32.5, + 34.2, + 30.3, + 31.5, + 41.4, + 39, + 44.2, + 43.8, + 51.5, + 52.3, + 51.2, + 52, + 47.3, + 46, + 43.7, + 49.5, + 55.8, + 61.2, + 65.1, + 65.7, + 59.8, + 65.2, + 67.1, + 62.2, + 65, + 67.1, + 67.4, + 64, + 64.2, + 62, + 59.9, + 54.4, + 56.9, + 57.1, + 57.8, + 57, + 61.7, + 63.9, + 71.2, + 71.9, + 70.9, + 72.1, + 63.5, + 61.6, + 64.9, + 66.3, + 68.7, + 68.5, + 71.7, + 73.7, + 64.6, + 64.3, + 57.7, + 58.5, + 59.8, + 58.2, + 54, + 53, + 51.3, + 58.9, + 63, + 56.8, + 51.1, + 49.6, + 45.8, + 44.9, + 46.5, + 42.5, + 38.1, + 35.5, + 37.1, + 53.6, + 55.1, + 55.9, + 62, + 50.3, + 50.5, + 55.1, + 51.1, + 50.3, + 53.4, + 58.3, + 54.8, + 51.2, + 47, + 53.1, + 54, + 58.7, + 59, + 58, + 60.9, + 60.4, + 56.3, + 56.4, + 66, + 59.3, + 56, + 55.9, + 52.9, + 56.1, + 56.6, + 62.8, + 65.5, + 67, + 74.2, + 71.6, + 67.3, + 68.9, + 70.3, + 59.4, + 63, + 63.1, + 66.6, + 64.8, + 70.1, + 60.3, + 59.3, + 52.5, + 56.1, + 57.9, + 55.5, + 55.8, + 58.7, + 61.2, + 65.1, + 57, + 57.5, + 59.1, + 62.7, + 69.7, + 63.6, + 56.4, + 60.4, + 55.2, + 55, + 52.6, + 53.2, + 49.3, + 52.2, + 52.3, + 48.8, + 48.5, + 49.9, + 47.2, + 47.2, + 52.2, + 51.1, + 51.1, + 49.9, + 56.9, + 51.7, + 56.2, + 60, + 57.7, + 62.6, + 64.1, + 61, + 64.4, + 57.2, + 58.1, + 54.7, + 51.5, + 51.3, + 54.5, + 48.4, + 46.5, + 45.6, + 50.3, + 46.4, + 47.5, + 42, + 46.5, + 46, + 46.7, + 43.1, + 41.9, + 46, + 35.6, + 44.4, + 52.1, + 58.3, + 58.7, + 54.9, + 59.4, + 55.9, + 61.5, + 68, + 63.2, + 52.5, + 50.1, + 43.9, + 47, + 44.6, + 45.3, + 46.5, + 42.1, + 43.7, + 46.2, + 48.5, + 46.2, + 52.1, + 59.8, + 51.3, + 48.4, + 41.9, + 37.4, + 43.9, + 43.4, + 40.7, + 38.7, + 29.7, + 32.8, + 32.3, + 31.4, + 29.6, + 23.5, + 29.2, + 42.3, + 43.3, + 44.9, + 39.8, + 43.1, + 41.6, + 44.4, + 48, + 52.5, + 49.1, + 48.9, + 51.9, + 52.8, + 47.7, + 47.2, + 43.7, + 43.6, + 46, + 51.1, + 61.9, + 55.3, + 52.3, + 58.1, + 57.7, + 58, + 60, + 55.2, + 54.5, + 54.4, + 57, + 55.9, + 60, + 54.4, + 54.4, + 47.5, + 47.1, + 45.2, + 49.2, + 54.7, + 55.8, + 58.6, + 65.2, + 66.7, + 68.6, + 63.7, + 64.2, + 57.6, + 59.2, + 63, + 58.3, + 67.2, + 70.2, + 70.9, + 72, + 61.9, + 60, + 62.6, + 60.1, + 56.5, + 55, + 56.2, + 53.5, + 53.7, + 51.6, + 50.4, + 47.9, + 56.6, + 58.2, + 50.8, + 49.3, + 46.6, + 46.6, + 49.1, + 40.9, + 40.8, + 39.4, + 43.4, + 39.9, + 38.5, + 42.3, + 43.7, + 43.2, + 39.2, + 34.8, + 32.2, + 31.6, + 23, + 20.7, + 35.9, + 38.8, + 37.6, + 39.1, + 44.8, + 49.7, + 44.6, + 38.2, + 42.6, + 51.1, + 54.2, + 53.1, + 50.3, + 53.8, + 50.4, + 50.2, + 43.5, + 43.5, + 44.4, + 45, + 40.5, + 47.3, + 45.2, + 45.5, + 52.7, + 53.4, + 52.5, + 54.4, + 59.6, + 56.5, + 51.5, + 52.5, + 57.5, + 59.5, + 62.5, + 65.7, + 68.2, + 58.9, + 60.4, + 56.7, + 55.2, + 54.7, + 53.4, + 61.3, + 50, + 46.4, + 51.6, + 56.9, + 55.8, + 58.6, + 55.1, + 57.8, + 63.6, + 61.3, + 51.6, + 53.5, + 51.2, + 47.3, + 37.6, + 40.9, + 56.5, + 49.9, + 37.3, + 33.2, + 38.3, + 38.6, + 36.1, + 34.8, + 45.3, + 40, + 39.5, + 39.1, + 33.6, + 33, + 32.1, + 34.3, + 30.3, + 37.7, + 37.5, + 35.3, + 34.1, + 33.5, + 40, + 42.9, + 48.6, + 52.5, + 51.4, + 48.2, + 51.4, + 54.6, + 50.3, + 55, + 57.6, + 65.3, + 61.3, + 58.9, + 55.8, + 57.5, + 55.6, + 47.1, + 40.8, + 42.4, + 37.1, + 35.5, + 43.9, + 46.1, + 40.6, + 45.4, + 49.1, + 48.1, + 49.2, + 49.5, + 52.6, + 53.4, + 49.2, + 52, + 52.7, + 50.1, + 46.5, + 47.1, + 48.8, + 42.4, + 42.2, + 47, + 46.2, + 43.7, + 41.1, + 49.9, + 47.8, + 51.3, + 53.8, + 55.3, + 54, + 53.3, + 47.9, + 45.3, + 42.6, + 40.2, + 46, + 50.9, + 48.7, + 52.2, + 49.6, + 52.2, + 52.9, + 54.4, + 52.3, + 55.6, + 52.3, + 57.5, + 64.4, + 63.6, + 61.8, + 63.2, + 64.2, + 66.5, + 67.1, + 64.9, + 58.4, + 61.8, + 58.1, + 60.8, + 56, + 57.1, + 56.8, + 47.8, + 43.2, + 47.4, + 52.2, + 52.1, + 47.9, + 52.3, + 56.2, + 61.4, + 65.4, + 67, + 63.3, + 69.6, + 68.2, + 61.9, + 58.6, + 60.2, + 60.3, + 52.9, + 51.3, + 46, + 56, + 56.5, + 59.7, + 67.1, + 50.5, + 53.6, + 55.4, + 43.6, + 41.1, + 38.8, + 31.3, + 35.2, + 31.9, + 28.2, + 34.4, + 34.8, + 32.2, + 26.8, + 22.7, + 21.2, + 29.6, + 28.4, + 27.6, + 26.7, + 24.2, + 32.4, + 37.3, + 43.8, + 43.4, + 40.6, + 46.1, + 44.2, + 42.3, + 33.3, + 38.1, + 39.2, + 38.2, + 40, + 35.8, + 40.4, + 36.7, + 36, + 31.3, + 28.1, + 34.8, + 44.1, + 50.6, + 49.7, + 44.8, + 46.2, + 43.3, + 36, + 44.7, + 47.6, + 49.3, + 43.8, + 44.2, + 42.4, + 45.7, + 44.1, + 48.1, + 44.6, + 40.6, + 40.9, + 38.7, + 35.1, + 43.8, + 40.4, + 39.2, + 42.9, + 45.2, + 48.1, + 49.6, + 46.4, + 52.6, + 47.3, + 47.6, + 44, + 43.7, + 38, + 40.4, + 38.8, + 43.3, + 45.5, + 34.4, + 31.8, + 30.5, + 35.7, + 39.4, + 42.7, + 39.9, + 42.5, + 38.3, + 46.7, + 49.1, + 50.4, + 45.5, + 45.5, + 44.2, + 36.5, + 36.4, + 33, + 40.5, + 42.2, + 35.4, + 32.8, + 30.5, + 35.7, + 36.3, + 31.5, + 46.2, + 42, + 46.9, + 44.4, + 47.6, + 44.3, + 43.8, + 46.9, + 54.1, + 54, + 50.8, + 47.7, + 45.2, + 37.4, + 38.6, + 37.7, + 38.8, + 38.3, + 38.6, + 44.3, + 41.9, + 42.6, + 39.3, + 35.5, + 32.8, + 37.4, + 33.4, + 32.8, + 45.3, + 45.4, + 46, + 51.9, + 48, + 46.7, + 47.4, + 55.8, + 51.7, + 46.7, + 51, + 48.5, + 53.3, + 57.7, + 60.8, + 54.9, + 56.7, + 56.1, + 51.2, + 50.4, + 49.3, + 49, + 58.1, + 59.7, + 50.8, + 52.3, + 44.7, + 44.3, + 47.7, + 54, + 44.5, + 41.4, + 39.7, + 37.4, + 35.5, + 36.8, + 34.7, + 42.9, + 50.9, + 49.2, + 46.8, + 46.3, + 46.1, + 47.4, + 44.3, + 47.5, + 49.7, + 49.1, + 59.2, + 65.1, + 67.6, + 70.6, + 64.8, + 66.3, + 68.1, + 72.1, + 68.8, + 66.8, + 63.8, + 64.7, + 66.2, + 69.9, + 73.4, + 70.6, + 72.1, + 73.4, + 77.4, + 74.7, + 77.3, + 75.1, + 75.9, + 76.9, + 66.5, + 58.1, + 56.8, + 54.8, + 53.1, + 54.4, + 51.7, + 42.2, + 41.7, + 51, + 50.8, + 53.4, + 53.9, + 53.5, + 55.9, + 51.3, + 48.8, + 51.1, + 43.8, + 51.7, + 53.3, + 54.4, + 62.9, + 51.7, + 47.5, + 51, + 48.6, + 47.6, + 44.9, + 42.3, + 34, + 32.6, + 33.3, + 31.6, + 29.9, + 34, + 43.6, + 44.8, + 38.7, + 43.3, + 39.4, + 39.6, + 41.3, + 40.7, + 43.4, + 44.6, + 38.7, + 41.7, + 45.1, + 45, + 46.5, + 52.5, + 49.3, + 48.1, + 44.9, + 44.6, + 35.9, + 30.8, + 28.1, + 27.3, + 33.7, + 29.3, + 26.7, + 27.5, + 24.5, + 24.7, + 20.6, + 19.7, + 18, + 24.3, + 19.8, + 19.6, + 30, + 30.9, + 33.8, + 36.1, + 32.8, + 32.6, + 33.9, + 40.6, + 40.2, + 52.6, + 57.3, + 57.8, + 54.7, + 59.7, + 58.9, + 54.5, + 58.3, + 64.4, + 53.6, + 50.4, + 50.2, + 42.4, + 37.6, + 46.2, + 42.1, + 43.3, + 42.2, + 47.8, + 50.2, + 46.5, + 50.9, + 52.7, + 56, + 57.7, + 54.9, + 59.4, + 55.1, + 56.5, + 55.5, + 57.6, + 52.5, + 54.5, + 57.1, + 55.7, + 52.7, + 58, + 63.3, + 64.1, + 58.8, + 57.4, + 45, + 40.1, + 38.3, + 31.6, + 34.5, + 41.1, + 42.8, + 42.3, + 35.1, + 35.4, + 29.8, + 28.9, + 28.4, + 37.4, + 37.2, + 39, + 37.9, + 33.3, + 32.5, + 37.3, + 30.8, + 31.7, + 37.4, + 41.9, + 44.4, + 43.3, + 43.2, + 47.2, + 48, + 51.3, + 53, + 51.3, + 53.8, + 58.9, + 54.5, + 52.2, + 55.7, + 51.3, + 53.8, + 49.7, + 52.3, + 59.3, + 60.5, + 63.9, + 66.2, + 69.6, + 70.6, + 66.9, + 73.5, + 67.7, + 70.8, + 68.4, + 62.4, + 64.2, + 66.9, + 68.1, + 67.3, + 64.4, + 69.6, + 55.9, + 54.7, + 58.1, + 56, + 51.2, + 55.9, + 53.1, + 51.4, + 54.4, + 60.9, + 58.9, + 59.2, + 59.6, + 59.6, + 56, + 58.6, + 60.7, + 57.7, + 56.1, + 54.2, + 52.6, + 51.3, + 60.8, + 59.4, + 53.1, + 47.6, + 49.7, + 53, + 51.9, + 52.1, + 52.3, + 56.3, + 57.9, + 64.2, + 73.9, + 68.2, + 62.9, + 57.7, + 49.9, + 53.5, + 54.5, + 53, + 62.2, + 64, + 67, + 72.2, + 63.5, + 65.1, + 58.8, + 61.1, + 58, + 58.6, + 61.3, + 52.6, + 52, + 47.5, + 46.7, + 49.4, + 44.9, + 41.5, + 46.2, + 50.4, + 46.7, + 50.7, + 50.2, + 51.4, + 56.2, + 56.1, + 58.1, + 60.7, + 64, + 61.9, + 62.1, + 59.2, + 59.9, + 64.8, + 64.1, + 56.6, + 54.9, + 59.2, + 50, + 54.5, + 51, + 42.3, + 49.8, + 41.3, + 43.7, + 42.7, + 43.5, + 47.3, + 47.1, + 47, + 42.8, + 33.6, + 26.1, + 25.5, + 36, + 40, + 41.5, + 41.2, + 41.5, + 36.9, + 43.4, + 55.9, + 68, + 61.9, + 59.1, + 61.3, + 62.4, + 58.1, + 55.7, + 56, + 57.3, + 64.2, + 64.4, + 67.3, + 51.7, + 53.9, + 56.9, + 51.4, + 55.3, + 56.7, + 60.7, + 67.1, + 67.8, + 66.7, + 68.4, + 69.6, + 62.5, + 62.8, + 64.9, + 66.3, + 64.1, + 66.2, + 69.6, + 68, + 66.5, + 68.8, + 74.6, + 68.8, + 71, + 73.2, + 75.4, + 79.4, + 80.4, + 80.1, + 74.4, + 65.6, + 66.9, + 66.6, + 65.6, + 69.5, + 69.2, + 71.9, + 73.9, + 69.5, + 71.2, + 68.2, + 67.9, + 69.8, + 68, + 72.4, + 70.4, + 71.5, + 66.4, + 60.8, + 61.9, + 56.9, + 59.3, + 55.2, + 52.8, + 52.7, + 58.7, + 55.4, + 58.8, + 61.1, + 62.6, + 57, + 59.9, + 60, + 60.6, + 55.5, + 58.5, + 59.6, + 58, + 53.7, + 58.5, + 53.9, + 56.5, + 50.5, + 50, + 44.8, + 54.4, + 61.3, + 55.7, + 50, + 48.7, + 53.9, + 53.2, + 54, + 53.2, + 54.5, + 55.8, + 51.2, + 48.7, + 48.4, + 50.3, + 48.5, + 51.2, + 54, + 48.1, + 46, + 53.7, + 49.9, + 49, + 53, + 51.1, + 49.4, + 48, + 44.2, + 40, + 47.1, + 50.2, + 41.7, + 38.2, + 37.7, + 33, + 34, + 38, + 29.6, + 24.7, + 21.7, + 29.1, + 28, + 37.4, + 32.7, + 38.1, + 43.1, + 41.3, + 43.3, + 35.9, + 36.8, + 43.5, + 44.7, + 42.2, + 41.3, + 38.5, + 38.4, + 31.8, + 33.5, + 42.8, + 46.4, + 42, + 43.3, + 50.7, + 50.9, + 56.5, + 61, + 59.7, + 58.8, + 55, + 52.2, + 55.9, + 56.3, + 53.8, + 51.6, + 55.1, + 56.1, + 51.8, + 51, + 53.6, + 51.2, + 60.2, + 59.5, + 60.2, + 59.8, + 56.9, + 51.9, + 50.3, + 46.6, + 47.8, + 50, + 61, + 63.5, + 69.1, + 65.1, + 55.3, + 52.7, + 54, + 56.2, + 56.3, + 60.3, + 52.1, + 49.9, + 47.3, + 45.3, + 43.7, + 48.6, + 48.4, + 45.4, + 41.2, + 33.8, + 39.9, + 38.4, + 40.3, + 37.2, + 45.9, + 47.2, + 42, + 43.7, + 45.3, + 44, + 41, + 39.8, + 45.8, + 51.1, + 50.1, + 49.7, + 47.3, + 55.7, + 49.9, + 44.4, + 46.9, + 53, + 54.4, + 58.6, + 55.8, + 53.5, + 51.7, + 56.2, + 58.3, + 61.7, + 61, + 54.7, + 60.6, + 56.9, + 54.1, + 53, + 52.5, + 57.2, + 57.2, + 63.4, + 64.8, + 64.9, + 63.8, + 54.3, + 64.3, + 49.9, + 49.2, + 43.5, + 37, + 39.3, + 35.7, + 36.3, + 44.5, + 48.5, + 50.9, + 55.1, + 52.4, + 45.8, + 47.4, + 47.9, + 41.4, + 44.1, + 42.6, + 38.1, + 35.1, + 31.2, + 31.2, + 31.7, + 27.9, + 25.9, + 33.3, + 38.7, + 34.6, + 43.6, + 45.4, + 41.2, + 37.1, + 43.1, + 42.3, + 49.9, + 52.3, + 49, + 48.1, + 49.8, + 48.2, + 53.3, + 57, + 52.7, + 58.2, + 51.2, + 48.4, + 47.1, + 38.7, + 39.7, + 39.3, + 34.4, + 31.4, + 30.8, + 29.1, + 27.3, + 27.2, + 21.3, + 27.5, + 25.4, + 36.9, + 33.9, + 32.6, + 26.7, + 35.2, + 36.4, + 34.9, + 33.4, + 37.7, + 38.5, + 35.1, + 37.1, + 40.6, + 48.5, + 51.2, + 45.9, + 45.5, + 48.1, + 43.1, + 32, + 36.6, + 52.2, + 56.6, + 52.3, + 52.9, + 49.2, + 50.3, + 48.6, + 42.5, + 47.4, + 51.9, + 50.1, + 51.1, + 48.9, + 50.4, + 52.1, + 45.2, + 51.7, + 49.7, + 50.3, + 54.5, + 53.4, + 55.6, + 57.2, + 57.8, + 57.5, + 48.9, + 50.9, + 51.9, + 49.1, + 53.1, + 54.3, + 50.9, + 47.9, + 46.5, + 46.3, + 47.9, + 49.5, + 49, + 49.1, + 46.7, + 47.9, + 45.9, + 48.2, + 54.3, + 49.9, + 51.5, + 53.2, + 62.8, + 62.9, + 67.9, + 61, + 58.7, + 48.8, + 45.8, + 53.2, + 54.9, + 54, + 57.3, + 54.6, + 56.3, + 59.9, + 61.1, + 53.8, + 53.5, + 49.7, + 46.1, + 48.3, + 53, + 44.9, + 35.5, + 34.5, + 32.9, + 38, + 43.2, + 47.3, + 48.9, + 49.6, + 45, + 48.1, + 49.5, + 45.2, + 55.2, + 58.6, + 55.8, + 53.5, + 61.7, + 61.8, + 63, + 66.5, + 66.4, + 55.7, + 60.7, + 60.1, + 59.1, + 55, + 54.7, + 58.2, + 57.4, + 52.7, + 54.6, + 54.7, + 54.1, + 55.5, + 56.6, + 68.5, + 61.7, + 62.6, + 56.6, + 53.8, + 56.5, + 58.6, + 61.9, + 59.7, + 63.9, + 62.9, + 61.3, + 64.9, + 68.1, + 64.6, + 71.7, + 67.1, + 60.5, + 59.5, + 60.3, + 54.6, + 58.3, + 59.5, + 55.6, + 58.1, + 55.2, + 52.6, + 47.4, + 50.7, + 46.6, + 43.8, + 49, + 52, + 53.2, + 49.8, + 46.1, + 43.7, + 45.1, + 49.3, + 46.2, + 52.7, + 49.4, + 51.8, + 50.7, + 50.6, + 40.8, + 34.8, + 37.2, + 33.6, + 32.8, + 41.1, + 40.7, + 40, + 43.7, + 43.3, + 39.9, + 31.8, + 26.4, + 24.3, + 23.1, + 23, + 25, + 27, + 22.8, + 19.5, + 25.4, + 21.3, + 17.9, + 17, + 20.8, + 22.8, + 23.9, + 20.9, + 19.7, + 19.1, + 30.8, + 32.2, + 31.9, + 29.1, + 35.5, + 35, + 30.7, + 33.6, + 29.2, + 22, + 22.6, + 22.8, + 39.7, + 38.6, + 39.8, + 36.9, + 40.2, + 36.7, + 33.4, + 45.5, + 42.6, + 37.3, + 37.6, + 37.9, + 37.8, + 33.2, + 40, + 38.9, + 39.4, + 30, + 26.5, + 26.3, + 22.5, + 19.9, + 18.3, + 32.9, + 31.1, + 27.2, + 33.2, + 28.8, + 34.7, + 38, + 37.7, + 33.2, + 33.7, + 30.7, + 30.4, + 38.7, + 47.4, + 47.1, + 50.6, + 53.1, + 63.6, + 60.3, + 55.4, + 58.2, + 60.4, + 55.7, + 55.9, + 48.2, + 48.5, + 51.8, + 46.1, + 44.2, + 48.2, + 41.2, + 42.8, + 41.1, + 39.1, + 42.6, + 46.2, + 50.7, + 53.7, + 49.6, + 52.8, + 51.7, + 47.9, + 55.3, + 53.6, + 55.2, + 52.9, + 52.6, + 52, + 59.3, + 51.8, + 51.2, + 49.1, + 49.4, + 52, + 55.1, + 59.5, + 52.7, + 52.4, + 55.6, + 53.7, + 53.1, + 56, + 48.2, + 46.3, + 47.9, + 49.8, + 53.9, + 58.1, + 58, + 63.7, + 62.1, + 54.5, + 52.2, + 47.1, + 42.4, + 47, + 50, + 45.9, + 45, + 48.5, + 45.6, + 42.2, + 44.3, + 44.6, + 39.9, + 33.6, + 33, + 32.5, + 38.8, + 35.9, + 28, + 22.9, + 32.7, + 39.8, + 39.7, + 42.6, + 39.3, + 36.8, + 43.9, + 37.5, + 37.2, + 47.7, + 49.9, + 51.3, + 50.7, + 51.5, + 46.5, + 49, + 51, + 53.9, + 56.3, + 56.2, + 60.8, + 57, + 59.7, + 58.7, + 59.6, + 57.1, + 62.7, + 67.7, + 63.7, + 65.9, + 60.5, + 60.6, + 57.4, + 59.2, + 57.6, + 56.3, + 60.3, + 53.6, + 57, + 53.4, + 58.7, + 58.7, + 61.4, + 57.2, + 62.8, + 63.8, + 68.2, + 65.3, + 66.4, + 71.2, + 69.5, + 61.6, + 64.6, + 61.5, + 52.9, + 53.3, + 54.3, + 50.3, + 48.4, + 45.4, + 48.9, + 47.6, + 48.7, + 50.2, + 41.4, + 44.1, + 47.2, + 39.6, + 35.4, + 36.7, + 28.2, + 32, + 39.8, + 40.7, + 46.3, + 48.1, + 50.3, + 60.4, + 53.7, + 57.5, + 55.3, + 56.9, + 57.9, + 59.6, + 59.5, + 58.4, + 56.9, + 54.4, + 57.8, + 52.1, + 51.7, + 54.4, + 57.9, + 56.3, + 56, + 54.9, + 61.2, + 57, + 59.9, + 59.1, + 55.6, + 58.1, + 56.6, + 57.4, + 61.5, + 63, + 60.6, + 61.3, + 62.7, + 54.8, + 56.8, + 59.4, + 61.5, + 74.1, + 69.9, + 77.8, + 70.7, + 63.6, + 59.3, + 62.7, + 64.3, + 60.9, + 57.4, + 59.8, + 65.1, + 65.2, + 56, + 56.7, + 51.4, + 48.1, + 43.4, + 50.3, + 51.4, + 53.3, + 49, + 54.4, + 48.8, + 50.1, + 42.7, + 46.7, + 49, + 49.1, + 47.5, + 49, + 53.3, + 46.5, + 50.3, + 53.4, + 57.6, + 55.4, + 50.4, + 56, + 58.4, + 54.3, + 55.7, + 52.3, + 52.8, + 50.4, + 40.5, + 45.1, + 43.3, + 46.2, + 49.6, + 53.8, + 50.8, + 55.6, + 56, + 54.3, + 54.3, + 51.5, + 54.6, + 57.5, + 57.2, + 61.2, + 53.6, + 54.3, + 60.5, + 57.5, + 54.1, + 56.7, + 56.5, + 61.2, + 62.9, + 53.7, + 50.4, + 49.3, + 47.4, + 47.4, + 43.3, + 45.7, + 41.8, + 46.8, + 38.1, + 47.7, + 53.7, + 50.9, + 50.5, + 51.2, + 48.2, + 49.7, + 51.9, + 61.2, + 73.7, + 69.9, + 64.5, + 69, + 67.6, + 67.1, + 62.9, + 65.1, + 56.9, + 49.5, + 45.4, + 48.2, + 51.7, + 50.6, + 49, + 51.2, + 59.4, + 56.4, + 55.6, + 51.4, + 57.5, + 56.8, + 59.5, + 61.3, + 67.4, + 65.1, + 70.7, + 67.7, + 64.5, + 67.1, + 63.3, + 64.4, + 60.3, + 60.9, + 58.8, + 63.7, + 70.7, + 64.2, + 57.4, + 60.7, + 55.9, + 56.5, + 53.1, + 55.4, + 51.6, + 50.3, + 50.3, + 49.7, + 49.9, + 44.3, + 44.5, + 47.1, + 45.2, + 45.5, + 45.2, + 42.7, + 45.1, + 41.4, + 41, + 33.7, + 31.5, + 27.9, + 24.6, + 28, + 35.6, + 31.8, + 36.5, + 30.1, + 40, + 39.5, + 38.9, + 44.5, + 43.6, + 43.6, + 45.1, + 42.1, + 45, + 46.3, + 40.8, + 42.8, + 41.7, + 44.4, + 43.2, + 40.5, + 46, + 40.4, + 53.2, + 48, + 47.8, + 47.2, + 47.9, + 49.5, + 46.1, + 41.6, + 43, + 50.1, + 53.2, + 51.4, + 44.8, + 42, + 41.6, + 37.9, + 39.8, + 33.5, + 33.3, + 42, + 38.7, + 29.5, + 32.9, + 31.4, + 29.9, + 28.5, + 25.4, + 20.4, + 32, + 37.6, + 34.4, + 37.1, + 43.4, + 44.9, + 50, + 47.8, + 50.5, + 53.7, + 50.8, + 50.7, + 48, + 49.5, + 46.6, + 45, + 53, + 55.3, + 52.7, + 49.6, + 48.3, + 49, + 49.8, + 49.5, + 43.1, + 51.9, + 47.4, + 43.7, + 42.5, + 40.5, + 39.9 + ] + }, + { + "marker": { + "color": "#00F6FF", + "line": { + "color": "DarkSlateGrey", + "width": 1 + }, + "size": 12, + "symbol": "circle" + }, + "mode": "markers", + "name": "entries", + "type": "scatter", + "x": [ + "2024-03-13T16:35:00.000", + "2024-03-13T16:40:00.000", + "2024-03-13T16:45:00.000", + "2024-03-13T16:50:00.000", + "2024-03-13T16:55:00.000", + "2024-03-13T17:00:00.000", + "2024-03-13T17:05:00.000", + "2024-03-13T17:10:00.000", + "2024-03-13T17:15:00.000", + "2024-03-13T17:20:00.000", + "2024-03-13T17:25:00.000", + "2024-03-13T17:30:00.000", + "2024-03-13T17:35:00.000", + "2024-03-13T17:40:00.000", + "2024-03-13T17:45:00.000", + "2024-03-13T17:50:00.000", + "2024-03-13T17:55:00.000", + "2024-03-13T18:00:00.000", + "2024-03-13T18:05:00.000", + "2024-03-13T18:10:00.000", + "2024-03-13T18:15:00.000", + "2024-03-13T18:20:00.000", + "2024-03-13T18:25:00.000", + "2024-03-13T18:30:00.000", + "2024-03-13T18:35:00.000", + "2024-03-13T18:40:00.000", + "2024-03-13T18:45:00.000", + "2024-03-13T18:50:00.000", + "2024-03-13T18:55:00.000", + "2024-03-13T19:00:00.000", + "2024-03-13T19:05:00.000", + "2024-03-13T19:10:00.000", + "2024-03-13T19:15:00.000", + "2024-03-13T19:20:00.000", + "2024-03-13T19:25:00.000", + "2024-03-13T19:30:00.000", + "2024-03-13T19:35:00.000", + "2024-03-13T19:40:00.000", + "2024-03-13T19:45:00.000", + "2024-03-13T19:50:00.000", + "2024-03-13T19:55:00.000", + "2024-03-13T20:00:00.000", + "2024-03-13T20:05:00.000", + "2024-03-13T20:10:00.000", + "2024-03-13T20:15:00.000", + "2024-03-13T20:20:00.000", + "2024-03-13T20:25:00.000", + "2024-03-13T20:30:00.000", + "2024-03-13T20:35:00.000", + "2024-03-13T20:40:00.000", + "2024-03-13T20:45:00.000", + "2024-03-13T20:50:00.000", + "2024-03-13T20:55:00.000", + "2024-03-13T21:00:00.000", + "2024-03-13T21:05:00.000", + "2024-03-13T21:10:00.000", + "2024-03-13T21:15:00.000", + "2024-03-13T21:20:00.000", + "2024-03-13T21:25:00.000", + "2024-03-13T21:30:00.000", + "2024-03-13T21:35:00.000", + "2024-03-13T21:40:00.000", + "2024-03-13T21:45:00.000", + "2024-03-13T21:50:00.000", + "2024-03-13T21:55:00.000", + "2024-03-13T22:00:00.000", + "2024-03-13T22:05:00.000", + "2024-03-13T22:10:00.000", + "2024-03-13T22:15:00.000", + "2024-03-13T22:20:00.000", + "2024-03-13T22:25:00.000", + "2024-03-13T22:30:00.000", + "2024-03-13T22:35:00.000", + "2024-03-13T22:40:00.000", + "2024-03-13T22:45:00.000", + "2024-03-13T22:50:00.000", + "2024-03-13T22:55:00.000", + "2024-03-13T23:00:00.000", + "2024-03-13T23:05:00.000", + "2024-03-13T23:10:00.000", + "2024-03-13T23:15:00.000", + "2024-03-13T23:20:00.000", + "2024-03-13T23:25:00.000", + "2024-03-13T23:30:00.000", + "2024-03-13T23:35:00.000", + "2024-03-13T23:40:00.000", + "2024-03-13T23:45:00.000", + "2024-03-13T23:50:00.000", + "2024-03-13T23:55:00.000", + "2024-03-14T00:00:00.000", + "2024-03-14T00:05:00.000", + "2024-03-14T00:10:00.000", + "2024-03-14T00:15:00.000", + "2024-03-14T00:20:00.000", + "2024-03-14T00:25:00.000", + "2024-03-14T00:30:00.000", + "2024-03-14T00:35:00.000", + "2024-03-14T00:40:00.000", + "2024-03-14T00:45:00.000", + "2024-03-14T00:50:00.000", + "2024-03-14T00:55:00.000", + "2024-03-14T01:00:00.000", + "2024-03-14T01:05:00.000", + "2024-03-14T01:10:00.000", + "2024-03-14T01:15:00.000", + "2024-03-14T01:20:00.000", + "2024-03-14T01:25:00.000", + "2024-03-14T01:30:00.000", + "2024-03-14T01:35:00.000", + "2024-03-14T01:40:00.000", + "2024-03-14T01:45:00.000", + "2024-03-14T01:50:00.000", + "2024-03-14T01:55:00.000", + "2024-03-14T02:00:00.000", + "2024-03-14T02:05:00.000", + "2024-03-14T02:10:00.000", + "2024-03-14T02:15:00.000", + "2024-03-14T02:20:00.000", + "2024-03-14T02:25:00.000", + "2024-03-14T02:30:00.000", + "2024-03-14T02:35:00.000", + "2024-03-14T02:40:00.000", + "2024-03-14T02:45:00.000", + "2024-03-14T02:50:00.000", + "2024-03-14T02:55:00.000", + "2024-03-14T03:00:00.000", + "2024-03-14T03:05:00.000", + "2024-03-14T03:10:00.000", + "2024-03-14T03:15:00.000", + "2024-03-14T03:20:00.000", + "2024-03-14T03:25:00.000", + "2024-03-14T03:30:00.000", + "2024-03-14T03:35:00.000", + "2024-03-14T03:40:00.000", + "2024-03-14T03:45:00.000", + "2024-03-14T03:50:00.000", + "2024-03-14T03:55:00.000", + "2024-03-14T04:00:00.000", + "2024-03-14T04:05:00.000", + "2024-03-14T04:10:00.000", + "2024-03-14T04:15:00.000", + "2024-03-14T04:20:00.000", + "2024-03-14T04:25:00.000", + "2024-03-14T04:30:00.000", + "2024-03-14T04:35:00.000", + "2024-03-14T04:40:00.000", + "2024-03-14T04:45:00.000", + "2024-03-14T04:50:00.000", + "2024-03-14T04:55:00.000", + "2024-03-14T05:00:00.000", + "2024-03-14T05:05:00.000", + "2024-03-14T05:10:00.000", + "2024-03-14T05:15:00.000", + "2024-03-14T05:20:00.000", + "2024-03-14T05:25:00.000", + "2024-03-14T05:30:00.000", + "2024-03-14T05:35:00.000", + "2024-03-14T05:40:00.000", + "2024-03-14T05:45:00.000", + "2024-03-14T05:50:00.000", + "2024-03-14T05:55:00.000", + "2024-03-14T06:00:00.000", + "2024-03-14T06:05:00.000", + "2024-03-14T06:10:00.000", + "2024-03-14T06:15:00.000", + "2024-03-14T06:20:00.000", + "2024-03-14T06:25:00.000", + "2024-03-14T06:30:00.000", + "2024-03-14T06:35:00.000", + "2024-03-14T06:40:00.000", + "2024-03-14T06:45:00.000", + "2024-03-14T06:50:00.000", + "2024-03-14T06:55:00.000", + "2024-03-14T07:00:00.000", + "2024-03-14T07:05:00.000", + "2024-03-14T07:10:00.000", + "2024-03-14T07:15:00.000", + "2024-03-14T07:20:00.000", + "2024-03-14T07:25:00.000", + "2024-03-14T07:30:00.000", + "2024-03-14T07:35:00.000", + "2024-03-14T07:40:00.000", + "2024-03-14T07:45:00.000", + "2024-03-14T07:50:00.000", + "2024-03-14T07:55:00.000", + "2024-03-14T08:00:00.000", + "2024-03-14T08:05:00.000", + "2024-03-14T08:10:00.000", + "2024-03-14T08:15:00.000", + "2024-03-14T08:20:00.000", + "2024-03-14T08:25:00.000", + "2024-03-14T08:30:00.000", + "2024-03-14T08:35:00.000", + "2024-03-14T08:40:00.000", + "2024-03-14T08:45:00.000", + "2024-03-14T08:50:00.000", + "2024-03-14T08:55:00.000", + "2024-03-14T09:00:00.000", + "2024-03-14T09:05:00.000", + "2024-03-14T09:10:00.000", + "2024-03-14T09:15:00.000", + "2024-03-14T09:20:00.000", + "2024-03-14T09:25:00.000", + "2024-03-14T09:30:00.000", + "2024-03-14T09:35:00.000", + "2024-03-14T09:40:00.000", + "2024-03-14T09:45:00.000", + "2024-03-14T09:50:00.000", + "2024-03-14T09:55:00.000", + "2024-03-14T10:00:00.000", + "2024-03-14T10:05:00.000", + "2024-03-14T10:10:00.000", + "2024-03-14T10:15:00.000", + "2024-03-14T10:20:00.000", + "2024-03-14T10:25:00.000", + "2024-03-14T10:30:00.000", + "2024-03-14T10:35:00.000", + "2024-03-14T10:40:00.000", + "2024-03-14T10:45:00.000", + "2024-03-14T10:50:00.000", + "2024-03-14T10:55:00.000", + "2024-03-14T11:00:00.000", + "2024-03-14T11:05:00.000", + "2024-03-14T11:10:00.000", + "2024-03-14T11:15:00.000", + "2024-03-14T11:20:00.000", + "2024-03-14T11:25:00.000", + "2024-03-14T11:30:00.000", + "2024-03-14T11:35:00.000", + "2024-03-14T11:40:00.000", + "2024-03-14T11:45:00.000", + "2024-03-14T11:50:00.000", + "2024-03-14T11:55:00.000", + "2024-03-14T12:00:00.000", + "2024-03-14T12:05:00.000", + "2024-03-14T12:10:00.000", + "2024-03-14T12:15:00.000", + "2024-03-14T12:20:00.000", + "2024-03-14T12:25:00.000", + "2024-03-14T12:30:00.000", + "2024-03-14T12:35:00.000", + "2024-03-14T12:40:00.000", + "2024-03-14T12:45:00.000", + "2024-03-14T12:50:00.000", + "2024-03-14T12:55:00.000", + "2024-03-14T13:00:00.000", + "2024-03-14T13:05:00.000", + "2024-03-14T13:10:00.000", + "2024-03-14T13:15:00.000", + "2024-03-14T13:20:00.000", + "2024-03-14T13:25:00.000", + "2024-03-14T13:30:00.000", + "2024-03-14T13:35:00.000", + "2024-03-14T13:40:00.000", + "2024-03-14T13:45:00.000", + "2024-03-14T13:50:00.000", + "2024-03-14T13:55:00.000", + "2024-03-14T14:00:00.000", + "2024-03-14T14:05:00.000", + "2024-03-14T14:10:00.000", + "2024-03-14T14:15:00.000", + "2024-03-14T14:20:00.000", + "2024-03-14T14:25:00.000", + "2024-03-14T14:30:00.000", + "2024-03-14T14:35:00.000", + "2024-03-14T14:40:00.000", + "2024-03-14T14:45:00.000", + "2024-03-14T14:50:00.000", + "2024-03-14T14:55:00.000", + "2024-03-14T15:00:00.000", + "2024-03-14T15:05:00.000", + "2024-03-14T15:10:00.000", + "2024-03-14T15:15:00.000", + "2024-03-14T15:20:00.000", + "2024-03-14T15:25:00.000", + "2024-03-14T15:30:00.000", + "2024-03-14T15:35:00.000", + "2024-03-14T15:40:00.000", + "2024-03-14T15:45:00.000", + "2024-03-14T15:50:00.000", + "2024-03-14T15:55:00.000", + "2024-03-14T16:00:00.000", + "2024-03-14T16:05:00.000", + "2024-03-14T16:10:00.000", + "2024-03-14T16:15:00.000", + "2024-03-14T16:20:00.000", + "2024-03-14T16:25:00.000", + "2024-03-14T16:30:00.000", + "2024-03-14T16:35:00.000", + "2024-03-14T16:40:00.000", + "2024-03-14T16:45:00.000", + "2024-03-14T16:50:00.000", + "2024-03-14T16:55:00.000", + "2024-03-14T17:00:00.000", + "2024-03-14T17:05:00.000", + "2024-03-14T17:10:00.000", + "2024-03-14T17:15:00.000", + "2024-03-14T17:20:00.000", + "2024-03-14T17:25:00.000", + "2024-03-14T17:30:00.000", + "2024-03-14T17:35:00.000", + "2024-03-14T17:40:00.000", + "2024-03-14T17:45:00.000", + "2024-03-14T17:50:00.000", + "2024-03-14T17:55:00.000", + "2024-03-14T18:00:00.000", + "2024-03-14T18:05:00.000", + "2024-03-14T18:10:00.000", + "2024-03-14T18:15:00.000", + "2024-03-14T18:20:00.000", + "2024-03-14T18:25:00.000", + "2024-03-14T18:30:00.000", + "2024-03-14T18:35:00.000", + "2024-03-14T18:40:00.000", + "2024-03-14T18:45:00.000", + "2024-03-14T18:50:00.000", + "2024-03-14T18:55:00.000", + "2024-03-14T19:00:00.000", + "2024-03-14T19:05:00.000", + "2024-03-14T19:10:00.000", + "2024-03-14T19:15:00.000", + "2024-03-14T19:20:00.000", + "2024-03-14T19:25:00.000", + "2024-03-14T19:30:00.000", + "2024-03-14T19:35:00.000", + "2024-03-14T19:40:00.000", + "2024-03-14T19:45:00.000", + "2024-03-14T19:50:00.000", + "2024-03-14T19:55:00.000", + "2024-03-14T20:00:00.000", + "2024-03-14T20:05:00.000", + "2024-03-14T20:10:00.000", + "2024-03-14T20:15:00.000", + "2024-03-14T20:20:00.000", + "2024-03-14T20:25:00.000", + "2024-03-14T20:30:00.000", + "2024-03-14T20:35:00.000", + "2024-03-14T20:40:00.000", + "2024-03-14T20:45:00.000", + "2024-03-14T20:50:00.000", + "2024-03-14T20:55:00.000", + "2024-03-14T21:00:00.000", + "2024-03-14T21:05:00.000", + "2024-03-14T21:10:00.000", + "2024-03-14T21:15:00.000", + "2024-03-14T21:20:00.000", + "2024-03-14T21:25:00.000", + "2024-03-14T21:30:00.000", + "2024-03-14T21:35:00.000", + "2024-03-14T21:40:00.000", + "2024-03-14T21:45:00.000", + "2024-03-14T21:50:00.000", + "2024-03-14T21:55:00.000", + "2024-03-14T22:00:00.000", + "2024-03-14T22:05:00.000", + "2024-03-14T22:10:00.000", + "2024-03-14T22:15:00.000", + "2024-03-14T22:20:00.000", + "2024-03-14T22:25:00.000", + "2024-03-14T22:30:00.000", + "2024-03-14T22:35:00.000", + "2024-03-14T22:40:00.000", + "2024-03-14T22:45:00.000", + "2024-03-14T22:50:00.000", + "2024-03-14T22:55:00.000", + "2024-03-14T23:00:00.000", + "2024-03-14T23:05:00.000", + "2024-03-14T23:10:00.000", + "2024-03-14T23:15:00.000", + "2024-03-14T23:20:00.000", + "2024-03-14T23:25:00.000", + "2024-03-14T23:30:00.000", + "2024-03-14T23:35:00.000", + "2024-03-14T23:40:00.000", + "2024-03-14T23:45:00.000", + "2024-03-14T23:50:00.000", + "2024-03-14T23:55:00.000", + "2024-03-15T00:00:00.000", + "2024-03-15T00:05:00.000", + "2024-03-15T00:10:00.000", + "2024-03-15T00:15:00.000", + "2024-03-15T00:20:00.000", + "2024-03-15T00:25:00.000", + "2024-03-15T00:30:00.000", + "2024-03-15T00:35:00.000", + "2024-03-15T00:40:00.000", + "2024-03-15T00:45:00.000", + "2024-03-15T00:50:00.000", + "2024-03-15T00:55:00.000", + "2024-03-15T01:00:00.000", + "2024-03-15T01:05:00.000", + "2024-03-15T01:10:00.000", + "2024-03-15T01:15:00.000", + "2024-03-15T01:20:00.000", + "2024-03-15T01:25:00.000", + "2024-03-15T01:30:00.000", + "2024-03-15T01:35:00.000", + "2024-03-15T01:40:00.000", + "2024-03-15T01:45:00.000", + "2024-03-15T01:50:00.000", + "2024-03-15T01:55:00.000", + "2024-03-15T02:00:00.000", + "2024-03-15T02:05:00.000", + "2024-03-15T02:10:00.000", + "2024-03-15T02:15:00.000", + "2024-03-15T02:20:00.000", + "2024-03-15T02:25:00.000", + "2024-03-15T02:30:00.000", + "2024-03-15T02:35:00.000", + "2024-03-15T02:40:00.000", + "2024-03-15T02:45:00.000", + "2024-03-15T02:50:00.000", + "2024-03-15T02:55:00.000", + "2024-03-15T03:00:00.000", + "2024-03-15T03:05:00.000", + "2024-03-15T03:10:00.000", + "2024-03-15T03:15:00.000", + "2024-03-15T03:20:00.000", + "2024-03-15T03:25:00.000", + "2024-03-15T03:30:00.000", + "2024-03-15T03:35:00.000", + "2024-03-15T03:40:00.000", + "2024-03-15T03:45:00.000", + "2024-03-15T03:50:00.000", + "2024-03-15T03:55:00.000", + "2024-03-15T04:00:00.000", + "2024-03-15T04:05:00.000", + "2024-03-15T04:10:00.000", + "2024-03-15T04:15:00.000", + "2024-03-15T04:20:00.000", + "2024-03-15T04:25:00.000", + "2024-03-15T04:30:00.000", + "2024-03-15T04:35:00.000", + "2024-03-15T04:40:00.000", + "2024-03-15T04:45:00.000", + "2024-03-15T04:50:00.000", + "2024-03-15T04:55:00.000", + "2024-03-15T05:00:00.000", + "2024-03-15T05:05:00.000", + "2024-03-15T05:10:00.000", + "2024-03-15T05:15:00.000", + "2024-03-15T05:20:00.000", + "2024-03-15T05:25:00.000", + "2024-03-15T05:30:00.000", + "2024-03-15T05:35:00.000", + "2024-03-15T05:40:00.000", + "2024-03-15T05:45:00.000", + "2024-03-15T05:50:00.000", + "2024-03-15T05:55:00.000", + "2024-03-15T06:00:00.000", + "2024-03-15T06:05:00.000", + "2024-03-15T06:10:00.000", + "2024-03-15T06:15:00.000", + "2024-03-15T06:20:00.000", + "2024-03-15T06:25:00.000", + "2024-03-15T06:30:00.000", + "2024-03-15T06:35:00.000", + "2024-03-15T06:40:00.000", + "2024-03-15T06:45:00.000", + "2024-03-15T06:50:00.000", + "2024-03-15T06:55:00.000", + "2024-03-15T07:00:00.000", + "2024-03-15T07:05:00.000", + "2024-03-15T07:10:00.000", + "2024-03-15T07:15:00.000", + "2024-03-15T07:20:00.000", + "2024-03-15T07:25:00.000", + "2024-03-15T07:30:00.000", + "2024-03-15T07:35:00.000", + "2024-03-15T07:40:00.000", + "2024-03-15T07:45:00.000", + "2024-03-15T07:50:00.000", + "2024-03-15T07:55:00.000", + "2024-03-15T08:00:00.000", + "2024-03-15T08:05:00.000", + "2024-03-15T08:10:00.000", + "2024-03-15T08:15:00.000", + "2024-03-15T08:20:00.000", + "2024-03-15T08:25:00.000", + "2024-03-15T08:30:00.000", + "2024-03-15T08:35:00.000", + "2024-03-15T08:40:00.000", + "2024-03-15T08:45:00.000", + "2024-03-15T08:50:00.000", + "2024-03-15T08:55:00.000", + "2024-03-15T09:00:00.000", + "2024-03-15T09:05:00.000", + "2024-03-15T09:10:00.000", + "2024-03-15T09:15:00.000", + "2024-03-15T09:20:00.000", + "2024-03-15T09:25:00.000", + "2024-03-15T09:30:00.000", + "2024-03-15T09:35:00.000", + "2024-03-15T09:40:00.000", + "2024-03-15T09:45:00.000", + "2024-03-15T09:50:00.000", + "2024-03-15T09:55:00.000", + "2024-03-15T10:00:00.000", + "2024-03-15T10:05:00.000", + "2024-03-15T10:10:00.000", + "2024-03-15T10:15:00.000", + "2024-03-15T10:20:00.000", + "2024-03-15T10:25:00.000", + "2024-03-15T10:30:00.000", + "2024-03-15T10:35:00.000", + "2024-03-15T10:40:00.000", + "2024-03-15T10:45:00.000", + "2024-03-15T10:50:00.000", + "2024-03-15T10:55:00.000", + "2024-03-15T11:00:00.000", + "2024-03-15T11:05:00.000", + "2024-03-15T11:10:00.000", + "2024-03-15T11:15:00.000", + "2024-03-15T11:20:00.000", + "2024-03-15T11:25:00.000", + "2024-03-15T11:30:00.000", + "2024-03-15T11:35:00.000", + "2024-03-15T11:40:00.000", + "2024-03-15T11:45:00.000", + "2024-03-15T11:50:00.000", + "2024-03-15T11:55:00.000", + "2024-03-15T12:00:00.000", + "2024-03-15T12:05:00.000", + "2024-03-15T12:10:00.000", + "2024-03-15T12:15:00.000", + "2024-03-15T12:20:00.000", + "2024-03-15T12:25:00.000", + "2024-03-15T12:30:00.000", + "2024-03-15T12:35:00.000", + "2024-03-15T12:40:00.000", + "2024-03-15T12:45:00.000", + "2024-03-15T12:50:00.000", + "2024-03-15T12:55:00.000", + "2024-03-15T13:00:00.000", + "2024-03-15T13:05:00.000", + "2024-03-15T13:10:00.000", + "2024-03-15T13:15:00.000", + "2024-03-15T13:20:00.000", + "2024-03-15T13:25:00.000", + "2024-03-15T13:30:00.000", + "2024-03-15T13:35:00.000", + "2024-03-15T13:40:00.000", + "2024-03-15T13:45:00.000", + "2024-03-15T13:50:00.000", + "2024-03-15T13:55:00.000", + "2024-03-15T14:00:00.000", + "2024-03-15T14:05:00.000", + "2024-03-15T14:10:00.000", + "2024-03-15T14:15:00.000", + "2024-03-15T14:20:00.000", + "2024-03-15T14:25:00.000", + "2024-03-15T14:30:00.000", + "2024-03-15T14:35:00.000", + "2024-03-15T14:40:00.000", + "2024-03-15T14:45:00.000", + "2024-03-15T14:50:00.000", + "2024-03-15T14:55:00.000", + "2024-03-15T15:00:00.000", + "2024-03-15T15:05:00.000", + "2024-03-15T15:10:00.000", + "2024-03-15T15:15:00.000", + "2024-03-15T15:20:00.000", + "2024-03-15T15:25:00.000", + "2024-03-15T15:30:00.000", + "2024-03-15T15:35:00.000", + "2024-03-15T15:40:00.000", + "2024-03-15T15:45:00.000", + "2024-03-15T15:50:00.000", + "2024-03-15T15:55:00.000", + "2024-03-15T16:00:00.000", + "2024-03-15T16:05:00.000", + "2024-03-15T16:10:00.000", + "2024-03-15T16:15:00.000", + "2024-03-15T16:20:00.000", + "2024-03-15T16:25:00.000", + "2024-03-15T16:30:00.000", + "2024-03-15T16:35:00.000", + "2024-03-15T16:40:00.000", + "2024-03-15T16:45:00.000", + "2024-03-15T16:50:00.000", + "2024-03-15T16:55:00.000", + "2024-03-15T17:00:00.000", + "2024-03-15T17:05:00.000", + "2024-03-15T17:10:00.000", + "2024-03-15T17:15:00.000", + "2024-03-15T17:20:00.000", + "2024-03-15T17:25:00.000", + "2024-03-15T17:30:00.000", + "2024-03-15T17:35:00.000", + "2024-03-15T17:40:00.000", + "2024-03-15T17:45:00.000", + "2024-03-15T17:50:00.000", + "2024-03-15T17:55:00.000", + "2024-03-15T18:00:00.000", + "2024-03-15T18:05:00.000", + "2024-03-15T18:10:00.000", + "2024-03-15T18:15:00.000", + "2024-03-15T18:20:00.000", + "2024-03-15T18:25:00.000", + "2024-03-15T18:30:00.000", + "2024-03-15T18:35:00.000", + "2024-03-15T18:40:00.000", + "2024-03-15T18:45:00.000", + "2024-03-15T18:50:00.000", + "2024-03-15T18:55:00.000", + "2024-03-15T19:00:00.000", + "2024-03-15T19:05:00.000", + "2024-03-15T19:10:00.000", + "2024-03-15T19:15:00.000", + "2024-03-15T19:20:00.000", + "2024-03-15T19:25:00.000", + "2024-03-15T19:30:00.000", + "2024-03-15T19:35:00.000", + "2024-03-15T19:40:00.000", + "2024-03-15T19:45:00.000", + "2024-03-15T19:50:00.000", + "2024-03-15T19:55:00.000", + "2024-03-15T20:00:00.000", + "2024-03-15T20:05:00.000", + "2024-03-15T20:10:00.000", + "2024-03-15T20:15:00.000", + "2024-03-15T20:20:00.000", + "2024-03-15T20:25:00.000", + "2024-03-15T20:30:00.000", + "2024-03-15T20:35:00.000", + "2024-03-15T20:40:00.000", + "2024-03-15T20:45:00.000", + "2024-03-15T20:50:00.000", + "2024-03-15T20:55:00.000", + "2024-03-15T21:00:00.000", + "2024-03-15T21:05:00.000", + "2024-03-15T21:10:00.000", + "2024-03-15T21:15:00.000", + "2024-03-15T21:20:00.000", + "2024-03-15T21:25:00.000", + "2024-03-15T21:30:00.000", + "2024-03-15T21:35:00.000", + "2024-03-15T21:40:00.000", + "2024-03-15T21:45:00.000", + "2024-03-15T21:50:00.000", + "2024-03-15T21:55:00.000", + "2024-03-15T22:00:00.000", + "2024-03-15T22:05:00.000", + "2024-03-15T22:10:00.000", + "2024-03-15T22:15:00.000", + "2024-03-15T22:20:00.000", + "2024-03-15T22:25:00.000", + "2024-03-15T22:30:00.000", + "2024-03-15T22:35:00.000", + "2024-03-15T22:40:00.000", + "2024-03-15T22:45:00.000", + "2024-03-15T22:50:00.000", + "2024-03-15T22:55:00.000", + "2024-03-15T23:00:00.000", + "2024-03-15T23:05:00.000", + "2024-03-15T23:10:00.000", + "2024-03-15T23:15:00.000", + "2024-03-15T23:20:00.000", + "2024-03-15T23:25:00.000", + "2024-03-15T23:30:00.000", + "2024-03-15T23:35:00.000", + "2024-03-15T23:40:00.000", + "2024-03-15T23:45:00.000", + "2024-03-15T23:50:00.000", + "2024-03-15T23:55:00.000", + "2024-03-16T00:00:00.000", + "2024-03-16T00:05:00.000", + "2024-03-16T00:10:00.000", + "2024-03-16T00:15:00.000", + "2024-03-16T00:20:00.000", + "2024-03-16T00:25:00.000", + "2024-03-16T00:30:00.000", + "2024-03-16T00:35:00.000", + "2024-03-16T00:40:00.000", + "2024-03-16T00:45:00.000", + "2024-03-16T00:50:00.000", + "2024-03-16T00:55:00.000", + "2024-03-16T01:00:00.000", + "2024-03-16T01:05:00.000", + "2024-03-16T01:10:00.000", + "2024-03-16T01:15:00.000", + "2024-03-16T01:20:00.000", + "2024-03-16T01:25:00.000", + "2024-03-16T01:30:00.000", + "2024-03-16T01:35:00.000", + "2024-03-16T01:40:00.000", + "2024-03-16T01:45:00.000", + "2024-03-16T01:50:00.000", + "2024-03-16T01:55:00.000", + "2024-03-16T02:00:00.000", + "2024-03-16T02:05:00.000", + "2024-03-16T02:10:00.000", + "2024-03-16T02:15:00.000", + "2024-03-16T02:20:00.000", + "2024-03-16T02:25:00.000", + "2024-03-16T02:30:00.000", + "2024-03-16T02:35:00.000", + "2024-03-16T02:40:00.000", + "2024-03-16T02:45:00.000", + "2024-03-16T02:50:00.000", + "2024-03-16T02:55:00.000", + "2024-03-16T03:00:00.000", + "2024-03-16T03:05:00.000", + "2024-03-16T03:10:00.000", + "2024-03-16T03:15:00.000", + "2024-03-16T03:20:00.000", + "2024-03-16T03:25:00.000", + "2024-03-16T03:30:00.000", + "2024-03-16T03:35:00.000", + "2024-03-16T03:40:00.000", + "2024-03-16T03:45:00.000", + "2024-03-16T03:50:00.000", + "2024-03-16T03:55:00.000", + "2024-03-16T04:00:00.000", + "2024-03-16T04:05:00.000", + "2024-03-16T04:10:00.000", + "2024-03-16T04:15:00.000", + "2024-03-16T04:20:00.000", + "2024-03-16T04:25:00.000", + "2024-03-16T04:30:00.000", + "2024-03-16T04:35:00.000", + "2024-03-16T04:40:00.000", + "2024-03-16T04:45:00.000", + "2024-03-16T04:50:00.000", + "2024-03-16T04:55:00.000", + "2024-03-16T05:00:00.000", + "2024-03-16T05:05:00.000", + "2024-03-16T05:10:00.000", + "2024-03-16T05:15:00.000", + "2024-03-16T05:20:00.000", + "2024-03-16T05:25:00.000", + "2024-03-16T05:30:00.000", + "2024-03-16T05:35:00.000", + "2024-03-16T05:40:00.000", + "2024-03-16T05:45:00.000", + "2024-03-16T05:50:00.000", + "2024-03-16T05:55:00.000", + "2024-03-16T06:00:00.000", + "2024-03-16T06:05:00.000", + "2024-03-16T06:10:00.000", + "2024-03-16T06:15:00.000", + "2024-03-16T06:20:00.000", + "2024-03-16T06:25:00.000", + "2024-03-16T06:30:00.000", + "2024-03-16T06:35:00.000", + "2024-03-16T06:40:00.000", + "2024-03-16T06:45:00.000", + "2024-03-16T06:50:00.000", + "2024-03-16T06:55:00.000", + "2024-03-16T07:00:00.000", + "2024-03-16T07:05:00.000", + "2024-03-16T07:10:00.000", + "2024-03-16T07:15:00.000", + "2024-03-16T07:20:00.000", + "2024-03-16T07:25:00.000", + "2024-03-16T07:30:00.000", + "2024-03-16T07:35:00.000", + "2024-03-16T07:40:00.000", + "2024-03-16T07:45:00.000", + "2024-03-16T07:50:00.000", + "2024-03-16T07:55:00.000", + "2024-03-16T08:00:00.000", + "2024-03-16T08:05:00.000", + "2024-03-16T08:10:00.000", + "2024-03-16T08:15:00.000", + "2024-03-16T08:20:00.000", + "2024-03-16T08:25:00.000", + "2024-03-16T08:30:00.000", + "2024-03-16T08:35:00.000", + "2024-03-16T08:40:00.000", + "2024-03-16T08:45:00.000", + "2024-03-16T08:50:00.000", + "2024-03-16T08:55:00.000", + "2024-03-16T09:00:00.000", + "2024-03-16T09:05:00.000", + "2024-03-16T09:10:00.000", + "2024-03-16T09:15:00.000", + "2024-03-16T09:20:00.000", + "2024-03-16T09:25:00.000", + "2024-03-16T09:30:00.000", + "2024-03-16T09:35:00.000", + "2024-03-16T09:40:00.000", + "2024-03-16T09:45:00.000", + "2024-03-16T09:50:00.000", + "2024-03-16T09:55:00.000", + "2024-03-16T10:00:00.000", + "2024-03-16T10:05:00.000", + "2024-03-16T10:10:00.000", + "2024-03-16T10:15:00.000", + "2024-03-16T10:20:00.000", + "2024-03-16T10:25:00.000", + "2024-03-16T10:30:00.000", + "2024-03-16T10:35:00.000", + "2024-03-16T10:40:00.000", + "2024-03-16T10:45:00.000", + "2024-03-16T10:50:00.000", + "2024-03-16T10:55:00.000", + "2024-03-16T11:00:00.000", + "2024-03-16T11:05:00.000", + "2024-03-16T11:10:00.000", + "2024-03-16T11:15:00.000", + "2024-03-16T11:20:00.000", + "2024-03-16T11:25:00.000", + "2024-03-16T11:30:00.000", + "2024-03-16T11:35:00.000", + "2024-03-16T11:40:00.000", + "2024-03-16T11:45:00.000", + "2024-03-16T11:50:00.000", + "2024-03-16T11:55:00.000", + "2024-03-16T12:00:00.000", + "2024-03-16T12:05:00.000", + "2024-03-16T12:10:00.000", + "2024-03-16T12:15:00.000", + "2024-03-16T12:20:00.000", + "2024-03-16T12:25:00.000", + "2024-03-16T12:30:00.000", + "2024-03-16T12:35:00.000", + "2024-03-16T12:40:00.000", + "2024-03-16T12:45:00.000", + "2024-03-16T12:50:00.000", + "2024-03-16T12:55:00.000", + "2024-03-16T13:00:00.000", + "2024-03-16T13:05:00.000", + "2024-03-16T13:10:00.000", + "2024-03-16T13:15:00.000", + "2024-03-16T13:20:00.000", + "2024-03-16T13:25:00.000", + "2024-03-16T13:30:00.000", + "2024-03-16T13:35:00.000", + "2024-03-16T13:40:00.000", + "2024-03-16T13:45:00.000", + "2024-03-16T13:50:00.000", + "2024-03-16T13:55:00.000", + "2024-03-16T14:00:00.000", + "2024-03-16T14:05:00.000", + "2024-03-16T14:10:00.000", + "2024-03-16T14:15:00.000", + "2024-03-16T14:20:00.000", + "2024-03-16T14:25:00.000", + "2024-03-16T14:30:00.000", + "2024-03-16T14:35:00.000", + "2024-03-16T14:40:00.000", + "2024-03-16T14:45:00.000", + "2024-03-16T14:50:00.000", + "2024-03-16T14:55:00.000", + "2024-03-16T15:00:00.000", + "2024-03-16T15:05:00.000", + "2024-03-16T15:10:00.000", + "2024-03-16T15:15:00.000", + "2024-03-16T15:20:00.000", + "2024-03-16T15:25:00.000", + "2024-03-16T15:30:00.000", + "2024-03-16T15:35:00.000", + "2024-03-16T15:40:00.000", + "2024-03-16T15:45:00.000", + "2024-03-16T15:50:00.000", + "2024-03-16T15:55:00.000", + "2024-03-16T16:00:00.000", + "2024-03-16T16:05:00.000", + "2024-03-16T16:10:00.000", + "2024-03-16T16:15:00.000", + "2024-03-16T16:20:00.000", + "2024-03-16T16:25:00.000", + "2024-03-16T16:30:00.000", + "2024-03-16T16:35:00.000", + "2024-03-16T16:40:00.000", + "2024-03-16T16:45:00.000", + "2024-03-16T16:50:00.000", + "2024-03-16T16:55:00.000", + "2024-03-16T17:00:00.000", + "2024-03-16T17:05:00.000", + "2024-03-16T17:10:00.000", + "2024-03-16T17:15:00.000", + "2024-03-16T17:20:00.000", + "2024-03-16T17:25:00.000", + "2024-03-16T17:30:00.000", + "2024-03-16T17:35:00.000", + "2024-03-16T17:40:00.000", + "2024-03-16T17:45:00.000", + "2024-03-16T17:50:00.000", + "2024-03-16T17:55:00.000", + "2024-03-16T18:00:00.000", + "2024-03-16T18:05:00.000", + "2024-03-16T18:10:00.000", + "2024-03-16T18:15:00.000", + "2024-03-16T18:20:00.000", + "2024-03-16T18:25:00.000", + "2024-03-16T18:30:00.000", + "2024-03-16T18:35:00.000", + "2024-03-16T18:40:00.000", + "2024-03-16T18:45:00.000", + "2024-03-16T18:50:00.000", + "2024-03-16T18:55:00.000", + "2024-03-16T19:00:00.000", + "2024-03-16T19:05:00.000", + "2024-03-16T19:10:00.000", + "2024-03-16T19:15:00.000", + "2024-03-16T19:20:00.000", + "2024-03-16T19:25:00.000", + "2024-03-16T19:30:00.000", + "2024-03-16T19:35:00.000", + "2024-03-16T19:40:00.000", + "2024-03-16T19:45:00.000", + "2024-03-16T19:50:00.000", + "2024-03-16T19:55:00.000", + "2024-03-16T20:00:00.000", + "2024-03-16T20:05:00.000", + "2024-03-16T20:10:00.000", + "2024-03-16T20:15:00.000", + "2024-03-16T20:20:00.000", + "2024-03-16T20:25:00.000", + "2024-03-16T20:30:00.000", + "2024-03-16T20:35:00.000", + "2024-03-16T20:40:00.000", + "2024-03-16T20:45:00.000", + "2024-03-16T20:50:00.000", + "2024-03-16T20:55:00.000", + "2024-03-16T21:00:00.000", + "2024-03-16T21:05:00.000", + "2024-03-16T21:10:00.000", + "2024-03-16T21:15:00.000", + "2024-03-16T21:20:00.000", + "2024-03-16T21:25:00.000", + "2024-03-16T21:30:00.000", + "2024-03-16T21:35:00.000", + "2024-03-16T21:40:00.000", + "2024-03-16T21:45:00.000", + "2024-03-16T21:50:00.000", + "2024-03-16T21:55:00.000", + "2024-03-16T22:00:00.000", + "2024-03-16T22:05:00.000", + "2024-03-16T22:10:00.000", + "2024-03-16T22:15:00.000", + "2024-03-16T22:20:00.000", + "2024-03-16T22:25:00.000", + "2024-03-16T22:30:00.000", + "2024-03-16T22:35:00.000", + "2024-03-16T22:40:00.000", + "2024-03-16T22:45:00.000", + "2024-03-16T22:50:00.000", + "2024-03-16T22:55:00.000", + "2024-03-16T23:00:00.000", + "2024-03-16T23:05:00.000", + "2024-03-16T23:10:00.000", + "2024-03-16T23:15:00.000", + "2024-03-16T23:20:00.000", + "2024-03-16T23:25:00.000", + "2024-03-16T23:30:00.000", + "2024-03-16T23:35:00.000", + "2024-03-16T23:40:00.000", + "2024-03-16T23:45:00.000", + "2024-03-16T23:50:00.000", + "2024-03-16T23:55:00.000", + "2024-03-17T00:00:00.000", + "2024-03-17T00:05:00.000", + "2024-03-17T00:10:00.000", + "2024-03-17T00:15:00.000", + "2024-03-17T00:20:00.000", + "2024-03-17T00:25:00.000", + "2024-03-17T00:30:00.000", + "2024-03-17T00:35:00.000", + "2024-03-17T00:40:00.000", + "2024-03-17T00:45:00.000", + "2024-03-17T00:50:00.000", + "2024-03-17T00:55:00.000", + "2024-03-17T01:00:00.000", + "2024-03-17T01:05:00.000", + "2024-03-17T01:10:00.000", + "2024-03-17T01:15:00.000", + "2024-03-17T01:20:00.000", + "2024-03-17T01:25:00.000", + "2024-03-17T01:30:00.000", + "2024-03-17T01:35:00.000", + "2024-03-17T01:40:00.000", + "2024-03-17T01:45:00.000", + "2024-03-17T01:50:00.000", + "2024-03-17T01:55:00.000", + "2024-03-17T02:00:00.000", + "2024-03-17T02:05:00.000", + "2024-03-17T02:10:00.000", + "2024-03-17T02:15:00.000", + "2024-03-17T02:20:00.000", + "2024-03-17T02:25:00.000", + "2024-03-17T02:30:00.000", + "2024-03-17T02:35:00.000", + "2024-03-17T02:40:00.000", + "2024-03-17T02:45:00.000", + "2024-03-17T02:50:00.000", + "2024-03-17T02:55:00.000", + "2024-03-17T03:00:00.000", + "2024-03-17T03:05:00.000", + "2024-03-17T03:10:00.000", + "2024-03-17T03:15:00.000", + "2024-03-17T03:20:00.000", + "2024-03-17T03:25:00.000", + "2024-03-17T03:30:00.000", + "2024-03-17T03:35:00.000", + "2024-03-17T03:40:00.000", + "2024-03-17T03:45:00.000", + "2024-03-17T03:50:00.000", + "2024-03-17T03:55:00.000", + "2024-03-17T04:00:00.000", + "2024-03-17T04:05:00.000", + "2024-03-17T04:10:00.000", + "2024-03-17T04:15:00.000", + "2024-03-17T04:20:00.000", + "2024-03-17T04:25:00.000", + "2024-03-17T04:30:00.000", + "2024-03-17T04:35:00.000", + "2024-03-17T04:40:00.000", + "2024-03-17T04:45:00.000", + "2024-03-17T04:50:00.000", + "2024-03-17T04:55:00.000", + "2024-03-17T05:00:00.000", + "2024-03-17T05:05:00.000", + "2024-03-17T05:10:00.000", + "2024-03-17T05:15:00.000", + "2024-03-17T05:20:00.000", + "2024-03-17T05:25:00.000", + "2024-03-17T05:30:00.000", + "2024-03-17T05:35:00.000", + "2024-03-17T05:40:00.000", + "2024-03-17T05:45:00.000", + "2024-03-17T05:50:00.000", + "2024-03-17T05:55:00.000", + "2024-03-17T06:00:00.000", + "2024-03-17T06:05:00.000", + "2024-03-17T06:10:00.000", + "2024-03-17T06:15:00.000", + "2024-03-17T06:20:00.000", + "2024-03-17T06:25:00.000", + "2024-03-17T06:30:00.000", + "2024-03-17T06:35:00.000", + "2024-03-17T06:40:00.000", + "2024-03-17T06:45:00.000", + "2024-03-17T06:50:00.000", + "2024-03-17T06:55:00.000", + "2024-03-17T07:00:00.000", + "2024-03-17T07:05:00.000", + "2024-03-17T07:10:00.000", + "2024-03-17T07:15:00.000", + "2024-03-17T07:20:00.000", + "2024-03-17T07:25:00.000", + "2024-03-17T07:30:00.000", + "2024-03-17T07:35:00.000", + "2024-03-17T07:40:00.000", + "2024-03-17T07:45:00.000", + "2024-03-17T07:50:00.000", + "2024-03-17T07:55:00.000", + "2024-03-17T08:00:00.000", + "2024-03-17T08:05:00.000", + "2024-03-17T08:10:00.000", + "2024-03-17T08:15:00.000", + "2024-03-17T08:20:00.000", + "2024-03-17T08:25:00.000", + "2024-03-17T08:30:00.000", + "2024-03-17T08:35:00.000", + "2024-03-17T08:40:00.000", + "2024-03-17T08:45:00.000", + "2024-03-17T08:50:00.000", + "2024-03-17T08:55:00.000", + "2024-03-17T09:00:00.000", + "2024-03-17T09:05:00.000", + "2024-03-17T09:10:00.000", + "2024-03-17T09:15:00.000", + "2024-03-17T09:20:00.000", + "2024-03-17T09:25:00.000", + "2024-03-17T09:30:00.000", + "2024-03-17T09:35:00.000", + "2024-03-17T09:40:00.000", + "2024-03-17T09:45:00.000", + "2024-03-17T09:50:00.000", + "2024-03-17T09:55:00.000", + "2024-03-17T10:00:00.000", + "2024-03-17T10:05:00.000", + "2024-03-17T10:10:00.000", + "2024-03-17T10:15:00.000", + "2024-03-17T10:20:00.000", + "2024-03-17T10:25:00.000", + "2024-03-17T10:30:00.000", + "2024-03-17T10:35:00.000", + "2024-03-17T10:40:00.000", + "2024-03-17T10:45:00.000", + "2024-03-17T10:50:00.000", + "2024-03-17T10:55:00.000", + "2024-03-17T11:00:00.000", + "2024-03-17T11:05:00.000", + "2024-03-17T11:10:00.000", + "2024-03-17T11:15:00.000", + "2024-03-17T11:20:00.000", + "2024-03-17T11:25:00.000", + "2024-03-17T11:30:00.000", + "2024-03-17T11:35:00.000", + "2024-03-17T11:40:00.000", + "2024-03-17T11:45:00.000", + "2024-03-17T11:50:00.000", + "2024-03-17T11:55:00.000", + "2024-03-17T12:00:00.000", + "2024-03-17T12:05:00.000", + "2024-03-17T12:10:00.000", + "2024-03-17T12:15:00.000", + "2024-03-17T12:20:00.000", + "2024-03-17T12:25:00.000", + "2024-03-17T12:30:00.000", + "2024-03-17T12:35:00.000", + "2024-03-17T12:40:00.000", + "2024-03-17T12:45:00.000", + "2024-03-17T12:50:00.000", + "2024-03-17T12:55:00.000", + "2024-03-17T13:00:00.000", + "2024-03-17T13:05:00.000", + "2024-03-17T13:10:00.000", + "2024-03-17T13:15:00.000", + "2024-03-17T13:20:00.000", + "2024-03-17T13:25:00.000", + "2024-03-17T13:30:00.000", + "2024-03-17T13:35:00.000", + "2024-03-17T13:40:00.000", + "2024-03-17T13:45:00.000", + "2024-03-17T13:50:00.000", + "2024-03-17T13:55:00.000", + "2024-03-17T14:00:00.000", + "2024-03-17T14:05:00.000", + "2024-03-17T14:10:00.000", + "2024-03-17T14:15:00.000", + "2024-03-17T14:20:00.000", + "2024-03-17T14:25:00.000", + "2024-03-17T14:30:00.000", + "2024-03-17T14:35:00.000", + "2024-03-17T14:40:00.000", + "2024-03-17T14:45:00.000", + "2024-03-17T14:50:00.000", + "2024-03-17T14:55:00.000", + "2024-03-17T15:00:00.000", + "2024-03-17T15:05:00.000", + "2024-03-17T15:10:00.000", + "2024-03-17T15:15:00.000", + "2024-03-17T15:20:00.000", + "2024-03-17T15:25:00.000", + "2024-03-17T15:30:00.000", + "2024-03-17T15:35:00.000", + "2024-03-17T15:40:00.000", + "2024-03-17T15:45:00.000", + "2024-03-17T15:50:00.000", + "2024-03-17T15:55:00.000", + "2024-03-17T16:00:00.000", + "2024-03-17T16:05:00.000", + "2024-03-17T16:10:00.000", + "2024-03-17T16:15:00.000", + "2024-03-17T16:20:00.000", + "2024-03-17T16:25:00.000", + "2024-03-17T16:30:00.000", + "2024-03-17T16:35:00.000", + "2024-03-17T16:40:00.000", + "2024-03-17T16:45:00.000", + "2024-03-17T16:50:00.000", + "2024-03-17T16:55:00.000", + "2024-03-17T17:00:00.000", + "2024-03-17T17:05:00.000", + "2024-03-17T17:10:00.000", + "2024-03-17T17:15:00.000", + "2024-03-17T17:20:00.000", + "2024-03-17T17:25:00.000", + "2024-03-17T17:30:00.000", + "2024-03-17T17:35:00.000", + "2024-03-17T17:40:00.000", + "2024-03-17T17:45:00.000", + "2024-03-17T17:50:00.000", + "2024-03-17T17:55:00.000", + "2024-03-17T18:00:00.000", + "2024-03-17T18:05:00.000", + "2024-03-17T18:10:00.000", + "2024-03-17T18:15:00.000", + "2024-03-17T18:20:00.000", + "2024-03-17T18:25:00.000", + "2024-03-17T18:30:00.000", + "2024-03-17T18:35:00.000", + "2024-03-17T18:40:00.000", + "2024-03-17T18:45:00.000", + "2024-03-17T18:50:00.000", + "2024-03-17T18:55:00.000", + "2024-03-17T19:00:00.000", + "2024-03-17T19:05:00.000", + "2024-03-17T19:10:00.000", + "2024-03-17T19:15:00.000", + "2024-03-17T19:20:00.000", + "2024-03-17T19:25:00.000", + "2024-03-17T19:30:00.000", + "2024-03-17T19:35:00.000", + "2024-03-17T19:40:00.000", + "2024-03-17T19:45:00.000", + "2024-03-17T19:50:00.000", + "2024-03-17T19:55:00.000", + "2024-03-17T20:00:00.000", + "2024-03-17T20:05:00.000", + "2024-03-17T20:10:00.000", + "2024-03-17T20:15:00.000", + "2024-03-17T20:20:00.000", + "2024-03-17T20:25:00.000", + "2024-03-17T20:30:00.000", + "2024-03-17T20:35:00.000", + "2024-03-17T20:40:00.000", + "2024-03-17T20:45:00.000", + "2024-03-17T20:50:00.000", + "2024-03-17T20:55:00.000", + "2024-03-17T21:00:00.000", + "2024-03-17T21:05:00.000", + "2024-03-17T21:10:00.000", + "2024-03-17T21:15:00.000", + "2024-03-17T21:20:00.000", + "2024-03-17T21:25:00.000", + "2024-03-17T21:30:00.000", + "2024-03-17T21:35:00.000", + "2024-03-17T21:40:00.000", + "2024-03-17T21:45:00.000", + "2024-03-17T21:50:00.000", + "2024-03-17T21:55:00.000", + "2024-03-17T22:00:00.000", + "2024-03-17T22:05:00.000", + "2024-03-17T22:10:00.000", + "2024-03-17T22:15:00.000", + "2024-03-17T22:20:00.000", + "2024-03-17T22:25:00.000", + "2024-03-17T22:30:00.000", + "2024-03-17T22:35:00.000", + "2024-03-17T22:40:00.000", + "2024-03-17T22:45:00.000", + "2024-03-17T22:50:00.000", + "2024-03-17T22:55:00.000", + "2024-03-17T23:00:00.000", + "2024-03-17T23:05:00.000", + "2024-03-17T23:10:00.000", + "2024-03-17T23:15:00.000", + "2024-03-17T23:20:00.000", + "2024-03-17T23:25:00.000", + "2024-03-17T23:30:00.000", + "2024-03-17T23:35:00.000", + "2024-03-17T23:40:00.000", + "2024-03-17T23:45:00.000", + "2024-03-17T23:50:00.000", + "2024-03-17T23:55:00.000", + "2024-03-18T00:00:00.000", + "2024-03-18T00:05:00.000", + "2024-03-18T00:10:00.000", + "2024-03-18T00:15:00.000", + "2024-03-18T00:20:00.000", + "2024-03-18T00:25:00.000", + "2024-03-18T00:30:00.000", + "2024-03-18T00:35:00.000", + "2024-03-18T00:40:00.000", + "2024-03-18T00:45:00.000", + "2024-03-18T00:50:00.000", + "2024-03-18T00:55:00.000", + "2024-03-18T01:00:00.000", + "2024-03-18T01:05:00.000", + "2024-03-18T01:10:00.000", + "2024-03-18T01:15:00.000", + "2024-03-18T01:20:00.000", + "2024-03-18T01:25:00.000", + "2024-03-18T01:30:00.000", + "2024-03-18T01:35:00.000", + "2024-03-18T01:40:00.000", + "2024-03-18T01:45:00.000", + "2024-03-18T01:50:00.000", + "2024-03-18T01:55:00.000", + "2024-03-18T02:00:00.000", + "2024-03-18T02:05:00.000", + "2024-03-18T02:10:00.000", + "2024-03-18T02:15:00.000", + "2024-03-18T02:20:00.000", + "2024-03-18T02:25:00.000", + "2024-03-18T02:30:00.000", + "2024-03-18T02:35:00.000", + "2024-03-18T02:40:00.000", + "2024-03-18T02:45:00.000", + "2024-03-18T02:50:00.000", + "2024-03-18T02:55:00.000", + "2024-03-18T03:00:00.000", + "2024-03-18T03:05:00.000", + "2024-03-18T03:10:00.000", + "2024-03-18T03:15:00.000", + "2024-03-18T03:20:00.000", + "2024-03-18T03:25:00.000", + "2024-03-18T03:30:00.000", + "2024-03-18T03:35:00.000", + "2024-03-18T03:40:00.000", + "2024-03-18T03:45:00.000", + "2024-03-18T03:50:00.000", + "2024-03-18T03:55:00.000", + "2024-03-18T04:00:00.000", + "2024-03-18T04:05:00.000", + "2024-03-18T04:10:00.000", + "2024-03-18T04:15:00.000", + "2024-03-18T04:20:00.000", + "2024-03-18T04:25:00.000", + "2024-03-18T04:30:00.000", + "2024-03-18T04:35:00.000", + "2024-03-18T04:40:00.000", + "2024-03-18T04:45:00.000", + "2024-03-18T04:50:00.000", + "2024-03-18T04:55:00.000", + "2024-03-18T05:00:00.000", + "2024-03-18T05:05:00.000", + "2024-03-18T05:10:00.000", + "2024-03-18T05:15:00.000", + "2024-03-18T05:20:00.000", + "2024-03-18T05:25:00.000", + "2024-03-18T05:30:00.000", + "2024-03-18T05:35:00.000", + "2024-03-18T05:40:00.000", + "2024-03-18T05:45:00.000", + "2024-03-18T05:50:00.000", + "2024-03-18T05:55:00.000", + "2024-03-18T06:00:00.000", + "2024-03-18T06:05:00.000", + "2024-03-18T06:10:00.000", + "2024-03-18T06:15:00.000", + "2024-03-18T06:20:00.000", + "2024-03-18T06:25:00.000", + "2024-03-18T06:30:00.000", + "2024-03-18T06:35:00.000", + "2024-03-18T06:40:00.000", + "2024-03-18T06:45:00.000", + "2024-03-18T06:50:00.000", + "2024-03-18T06:55:00.000", + "2024-03-18T07:00:00.000", + "2024-03-18T07:05:00.000", + "2024-03-18T07:10:00.000", + "2024-03-18T07:15:00.000", + "2024-03-18T07:20:00.000", + "2024-03-18T07:25:00.000", + "2024-03-18T07:30:00.000", + "2024-03-18T07:35:00.000", + "2024-03-18T07:40:00.000", + "2024-03-18T07:45:00.000", + "2024-03-18T07:50:00.000", + "2024-03-18T07:55:00.000", + "2024-03-18T08:00:00.000", + "2024-03-18T08:05:00.000", + "2024-03-18T08:10:00.000", + "2024-03-18T08:15:00.000", + "2024-03-18T08:20:00.000", + "2024-03-18T08:25:00.000", + "2024-03-18T08:30:00.000", + "2024-03-18T08:35:00.000", + "2024-03-18T08:40:00.000", + "2024-03-18T08:45:00.000", + "2024-03-18T08:50:00.000", + "2024-03-18T08:55:00.000", + "2024-03-18T09:00:00.000", + "2024-03-18T09:05:00.000", + "2024-03-18T09:10:00.000", + "2024-03-18T09:15:00.000", + "2024-03-18T09:20:00.000", + "2024-03-18T09:25:00.000", + "2024-03-18T09:30:00.000", + "2024-03-18T09:35:00.000", + "2024-03-18T09:40:00.000", + "2024-03-18T09:45:00.000", + "2024-03-18T09:50:00.000", + "2024-03-18T09:55:00.000", + "2024-03-18T10:00:00.000", + "2024-03-18T10:05:00.000", + "2024-03-18T10:10:00.000", + "2024-03-18T10:15:00.000", + "2024-03-18T10:20:00.000", + "2024-03-18T10:25:00.000", + "2024-03-18T10:30:00.000", + "2024-03-18T10:35:00.000", + "2024-03-18T10:40:00.000", + "2024-03-18T10:45:00.000", + "2024-03-18T10:50:00.000", + "2024-03-18T10:55:00.000", + "2024-03-18T11:00:00.000", + "2024-03-18T11:05:00.000", + "2024-03-18T11:10:00.000", + "2024-03-18T11:15:00.000", + "2024-03-18T11:20:00.000", + "2024-03-18T11:25:00.000", + "2024-03-18T11:30:00.000", + "2024-03-18T11:35:00.000", + "2024-03-18T11:40:00.000", + "2024-03-18T11:45:00.000", + "2024-03-18T11:50:00.000", + "2024-03-18T11:55:00.000", + "2024-03-18T12:00:00.000", + "2024-03-18T12:05:00.000", + "2024-03-18T12:10:00.000", + "2024-03-18T12:15:00.000", + "2024-03-18T12:20:00.000", + "2024-03-18T12:25:00.000", + "2024-03-18T12:30:00.000", + "2024-03-18T12:35:00.000", + "2024-03-18T12:40:00.000", + "2024-03-18T12:45:00.000", + "2024-03-18T12:50:00.000", + "2024-03-18T12:55:00.000", + "2024-03-18T13:00:00.000", + "2024-03-18T13:05:00.000", + "2024-03-18T13:10:00.000", + "2024-03-18T13:15:00.000", + "2024-03-18T13:20:00.000", + "2024-03-18T13:25:00.000", + "2024-03-18T13:30:00.000", + "2024-03-18T13:35:00.000", + "2024-03-18T13:40:00.000", + "2024-03-18T13:45:00.000", + "2024-03-18T13:50:00.000", + "2024-03-18T13:55:00.000", + "2024-03-18T14:00:00.000", + "2024-03-18T14:05:00.000", + "2024-03-18T14:10:00.000", + "2024-03-18T14:15:00.000", + "2024-03-18T14:20:00.000", + "2024-03-18T14:25:00.000", + "2024-03-18T14:30:00.000", + "2024-03-18T14:35:00.000", + "2024-03-18T14:40:00.000", + "2024-03-18T14:45:00.000", + "2024-03-18T14:50:00.000", + "2024-03-18T14:55:00.000", + "2024-03-18T15:00:00.000", + "2024-03-18T15:05:00.000", + "2024-03-18T15:10:00.000", + "2024-03-18T15:15:00.000", + "2024-03-18T15:20:00.000", + "2024-03-18T15:25:00.000", + "2024-03-18T15:30:00.000", + "2024-03-18T15:35:00.000", + "2024-03-18T15:40:00.000", + "2024-03-18T15:45:00.000", + "2024-03-18T15:50:00.000", + "2024-03-18T15:55:00.000", + "2024-03-18T16:00:00.000", + "2024-03-18T16:05:00.000", + "2024-03-18T16:10:00.000", + "2024-03-18T16:15:00.000", + "2024-03-18T16:20:00.000", + "2024-03-18T16:25:00.000", + "2024-03-18T16:30:00.000", + "2024-03-18T16:35:00.000", + "2024-03-18T16:40:00.000", + "2024-03-18T16:45:00.000", + "2024-03-18T16:50:00.000", + "2024-03-18T16:55:00.000", + "2024-03-18T17:00:00.000", + "2024-03-18T17:05:00.000", + "2024-03-18T17:10:00.000", + "2024-03-18T17:15:00.000", + "2024-03-18T17:20:00.000", + "2024-03-18T17:25:00.000", + "2024-03-18T17:30:00.000", + "2024-03-18T17:35:00.000", + "2024-03-18T17:40:00.000", + "2024-03-18T17:45:00.000", + "2024-03-18T17:50:00.000", + "2024-03-18T17:55:00.000", + "2024-03-18T18:00:00.000", + "2024-03-18T18:05:00.000", + "2024-03-18T18:10:00.000", + "2024-03-18T18:15:00.000", + "2024-03-18T18:20:00.000", + "2024-03-18T18:25:00.000", + "2024-03-18T18:30:00.000", + "2024-03-18T18:35:00.000", + "2024-03-18T18:40:00.000", + "2024-03-18T18:45:00.000", + "2024-03-18T18:50:00.000", + "2024-03-18T18:55:00.000", + "2024-03-18T19:00:00.000", + "2024-03-18T19:05:00.000", + "2024-03-18T19:10:00.000", + "2024-03-18T19:15:00.000", + "2024-03-18T19:20:00.000", + "2024-03-18T19:25:00.000", + "2024-03-18T19:30:00.000", + "2024-03-18T19:35:00.000", + "2024-03-18T19:40:00.000", + "2024-03-18T19:45:00.000", + "2024-03-18T19:50:00.000", + "2024-03-18T19:55:00.000", + "2024-03-18T20:00:00.000", + "2024-03-18T20:05:00.000", + "2024-03-18T20:10:00.000", + "2024-03-18T20:15:00.000", + "2024-03-18T20:20:00.000", + "2024-03-18T20:25:00.000", + "2024-03-18T20:30:00.000", + "2024-03-18T20:35:00.000", + "2024-03-18T20:40:00.000", + "2024-03-18T20:45:00.000", + "2024-03-18T20:50:00.000", + "2024-03-18T20:55:00.000", + "2024-03-18T21:00:00.000", + "2024-03-18T21:05:00.000", + "2024-03-18T21:10:00.000", + "2024-03-18T21:15:00.000", + "2024-03-18T21:20:00.000", + "2024-03-18T21:25:00.000", + "2024-03-18T21:30:00.000", + "2024-03-18T21:35:00.000", + "2024-03-18T21:40:00.000", + "2024-03-18T21:45:00.000", + "2024-03-18T21:50:00.000", + "2024-03-18T21:55:00.000", + "2024-03-18T22:00:00.000", + "2024-03-18T22:05:00.000", + "2024-03-18T22:10:00.000", + "2024-03-18T22:15:00.000", + "2024-03-18T22:20:00.000", + "2024-03-18T22:25:00.000", + "2024-03-18T22:30:00.000", + "2024-03-18T22:35:00.000", + "2024-03-18T22:40:00.000", + "2024-03-18T22:45:00.000", + "2024-03-18T22:50:00.000", + "2024-03-18T22:55:00.000", + "2024-03-18T23:00:00.000", + "2024-03-18T23:05:00.000", + "2024-03-18T23:10:00.000", + "2024-03-18T23:15:00.000", + "2024-03-18T23:20:00.000", + "2024-03-18T23:25:00.000", + "2024-03-18T23:30:00.000", + "2024-03-18T23:35:00.000", + "2024-03-18T23:40:00.000", + "2024-03-18T23:45:00.000", + "2024-03-18T23:50:00.000", + "2024-03-18T23:55:00.000", + "2024-03-19T00:00:00.000", + "2024-03-19T00:05:00.000", + "2024-03-19T00:10:00.000", + "2024-03-19T00:15:00.000", + "2024-03-19T00:20:00.000", + "2024-03-19T00:25:00.000", + "2024-03-19T00:30:00.000", + "2024-03-19T00:35:00.000", + "2024-03-19T00:40:00.000", + "2024-03-19T00:45:00.000", + "2024-03-19T00:50:00.000", + "2024-03-19T00:55:00.000", + "2024-03-19T01:00:00.000", + "2024-03-19T01:05:00.000", + "2024-03-19T01:10:00.000", + "2024-03-19T01:15:00.000", + "2024-03-19T01:20:00.000", + "2024-03-19T01:25:00.000", + "2024-03-19T01:30:00.000", + "2024-03-19T01:35:00.000", + "2024-03-19T01:40:00.000", + "2024-03-19T01:45:00.000", + "2024-03-19T01:50:00.000", + "2024-03-19T01:55:00.000", + "2024-03-19T02:00:00.000", + "2024-03-19T02:05:00.000", + "2024-03-19T02:10:00.000", + "2024-03-19T02:15:00.000", + "2024-03-19T02:20:00.000", + "2024-03-19T02:25:00.000", + "2024-03-19T02:30:00.000", + "2024-03-19T02:35:00.000", + "2024-03-19T02:40:00.000", + "2024-03-19T02:45:00.000", + "2024-03-19T02:50:00.000", + "2024-03-19T02:55:00.000", + "2024-03-19T03:00:00.000", + "2024-03-19T03:05:00.000", + "2024-03-19T03:10:00.000", + "2024-03-19T03:15:00.000", + "2024-03-19T03:20:00.000", + "2024-03-19T03:25:00.000", + "2024-03-19T03:30:00.000", + "2024-03-19T03:35:00.000", + "2024-03-19T03:40:00.000", + "2024-03-19T03:45:00.000", + "2024-03-19T03:50:00.000", + "2024-03-19T03:55:00.000", + "2024-03-19T04:00:00.000", + "2024-03-19T04:05:00.000", + "2024-03-19T04:10:00.000", + "2024-03-19T04:15:00.000", + "2024-03-19T04:20:00.000", + "2024-03-19T04:25:00.000", + "2024-03-19T04:30:00.000", + "2024-03-19T04:35:00.000", + "2024-03-19T04:40:00.000", + "2024-03-19T04:45:00.000", + "2024-03-19T04:50:00.000", + "2024-03-19T04:55:00.000", + "2024-03-19T05:00:00.000", + "2024-03-19T05:05:00.000", + "2024-03-19T05:10:00.000", + "2024-03-19T05:15:00.000", + "2024-03-19T05:20:00.000", + "2024-03-19T05:25:00.000", + "2024-03-19T05:30:00.000", + "2024-03-19T05:35:00.000", + "2024-03-19T05:40:00.000", + "2024-03-19T05:45:00.000", + "2024-03-19T05:50:00.000", + "2024-03-19T05:55:00.000", + "2024-03-19T06:00:00.000", + "2024-03-19T06:05:00.000", + "2024-03-19T06:10:00.000", + "2024-03-19T06:15:00.000", + "2024-03-19T06:20:00.000", + "2024-03-19T06:25:00.000", + "2024-03-19T06:30:00.000", + "2024-03-19T06:35:00.000", + "2024-03-19T06:40:00.000", + "2024-03-19T06:45:00.000", + "2024-03-19T06:50:00.000", + "2024-03-19T06:55:00.000", + "2024-03-19T07:00:00.000", + "2024-03-19T07:05:00.000", + "2024-03-19T07:10:00.000", + "2024-03-19T07:15:00.000", + "2024-03-19T07:20:00.000", + "2024-03-19T07:25:00.000", + "2024-03-19T07:30:00.000", + "2024-03-19T07:35:00.000", + "2024-03-19T07:40:00.000", + "2024-03-19T07:45:00.000", + "2024-03-19T07:50:00.000", + "2024-03-19T07:55:00.000", + "2024-03-19T08:00:00.000", + "2024-03-19T08:05:00.000", + "2024-03-19T08:10:00.000", + "2024-03-19T08:15:00.000", + "2024-03-19T08:20:00.000", + "2024-03-19T08:25:00.000", + "2024-03-19T08:30:00.000", + "2024-03-19T08:35:00.000", + "2024-03-19T08:40:00.000", + "2024-03-19T08:45:00.000", + "2024-03-19T08:50:00.000", + "2024-03-19T08:55:00.000", + "2024-03-19T09:00:00.000", + "2024-03-19T09:05:00.000", + "2024-03-19T09:10:00.000", + "2024-03-19T09:15:00.000", + "2024-03-19T09:20:00.000", + "2024-03-19T09:25:00.000", + "2024-03-19T09:30:00.000", + "2024-03-19T09:35:00.000", + "2024-03-19T09:40:00.000", + "2024-03-19T09:45:00.000", + "2024-03-19T09:50:00.000", + "2024-03-19T09:55:00.000", + "2024-03-19T10:00:00.000", + "2024-03-19T10:05:00.000", + "2024-03-19T10:10:00.000", + "2024-03-19T10:15:00.000", + "2024-03-19T10:20:00.000", + "2024-03-19T10:25:00.000", + "2024-03-19T10:30:00.000", + "2024-03-19T10:35:00.000", + "2024-03-19T10:40:00.000", + "2024-03-19T10:45:00.000", + "2024-03-19T10:50:00.000", + "2024-03-19T10:55:00.000", + "2024-03-19T11:00:00.000", + "2024-03-19T11:05:00.000", + "2024-03-19T11:10:00.000", + "2024-03-19T11:15:00.000", + "2024-03-19T11:20:00.000", + "2024-03-19T11:25:00.000", + "2024-03-19T11:30:00.000", + "2024-03-19T11:35:00.000", + "2024-03-19T11:40:00.000", + "2024-03-19T11:45:00.000", + "2024-03-19T11:50:00.000", + "2024-03-19T11:55:00.000", + "2024-03-19T12:00:00.000", + "2024-03-19T12:05:00.000", + "2024-03-19T12:10:00.000", + "2024-03-19T12:15:00.000", + "2024-03-19T12:20:00.000", + "2024-03-19T12:25:00.000", + "2024-03-19T12:30:00.000", + "2024-03-19T12:35:00.000", + "2024-03-19T12:40:00.000", + "2024-03-19T12:45:00.000", + "2024-03-19T12:50:00.000", + "2024-03-19T12:55:00.000", + "2024-03-19T13:00:00.000", + "2024-03-19T13:05:00.000", + "2024-03-19T13:10:00.000", + "2024-03-19T13:15:00.000", + "2024-03-19T13:20:00.000", + "2024-03-19T13:25:00.000", + "2024-03-19T13:30:00.000", + "2024-03-19T13:35:00.000", + "2024-03-19T13:40:00.000", + "2024-03-19T13:45:00.000", + "2024-03-19T13:50:00.000", + "2024-03-19T13:55:00.000", + "2024-03-19T14:00:00.000", + "2024-03-19T14:05:00.000", + "2024-03-19T14:10:00.000", + "2024-03-19T14:15:00.000", + "2024-03-19T14:20:00.000", + "2024-03-19T14:25:00.000", + "2024-03-19T14:30:00.000", + "2024-03-19T14:35:00.000", + "2024-03-19T14:40:00.000", + "2024-03-19T14:45:00.000", + "2024-03-19T14:50:00.000", + "2024-03-19T14:55:00.000", + "2024-03-19T15:00:00.000", + "2024-03-19T15:05:00.000", + "2024-03-19T15:10:00.000", + "2024-03-19T15:15:00.000", + "2024-03-19T15:20:00.000", + "2024-03-19T15:25:00.000", + "2024-03-19T15:30:00.000", + "2024-03-19T15:35:00.000", + "2024-03-19T15:40:00.000", + "2024-03-19T15:45:00.000", + "2024-03-19T15:50:00.000", + "2024-03-19T15:55:00.000", + "2024-03-19T16:00:00.000", + "2024-03-19T16:05:00.000", + "2024-03-19T16:10:00.000", + "2024-03-19T16:15:00.000", + "2024-03-19T16:20:00.000", + "2024-03-19T16:25:00.000", + "2024-03-19T16:30:00.000", + "2024-03-19T16:35:00.000", + "2024-03-19T16:40:00.000", + "2024-03-19T16:45:00.000", + "2024-03-19T16:50:00.000", + "2024-03-19T16:55:00.000", + "2024-03-19T17:00:00.000", + "2024-03-19T17:05:00.000", + "2024-03-19T17:10:00.000", + "2024-03-19T17:15:00.000", + "2024-03-19T17:20:00.000", + "2024-03-19T17:25:00.000", + "2024-03-19T17:30:00.000", + "2024-03-19T17:35:00.000", + "2024-03-19T17:40:00.000", + "2024-03-19T17:45:00.000", + "2024-03-19T17:50:00.000", + "2024-03-19T17:55:00.000", + "2024-03-19T18:00:00.000", + "2024-03-19T18:05:00.000", + "2024-03-19T18:10:00.000", + "2024-03-19T18:15:00.000", + "2024-03-19T18:20:00.000", + "2024-03-19T18:25:00.000", + "2024-03-19T18:30:00.000", + "2024-03-19T18:35:00.000", + "2024-03-19T18:40:00.000", + "2024-03-19T18:45:00.000", + "2024-03-19T18:50:00.000", + "2024-03-19T18:55:00.000", + "2024-03-19T19:00:00.000", + "2024-03-19T19:05:00.000", + "2024-03-19T19:10:00.000", + "2024-03-19T19:15:00.000", + "2024-03-19T19:20:00.000", + "2024-03-19T19:25:00.000", + "2024-03-19T19:30:00.000", + "2024-03-19T19:35:00.000", + "2024-03-19T19:40:00.000", + "2024-03-19T19:45:00.000", + "2024-03-19T19:50:00.000", + "2024-03-19T19:55:00.000", + "2024-03-19T20:00:00.000", + "2024-03-19T20:05:00.000", + "2024-03-19T20:10:00.000", + "2024-03-19T20:15:00.000", + "2024-03-19T20:20:00.000", + "2024-03-19T20:25:00.000", + "2024-03-19T20:30:00.000", + "2024-03-19T20:35:00.000", + "2024-03-19T20:40:00.000", + "2024-03-19T20:45:00.000", + "2024-03-19T20:50:00.000", + "2024-03-19T20:55:00.000", + "2024-03-19T21:00:00.000", + "2024-03-19T21:05:00.000", + "2024-03-19T21:10:00.000", + "2024-03-19T21:15:00.000", + "2024-03-19T21:20:00.000", + "2024-03-19T21:25:00.000", + "2024-03-19T21:30:00.000", + "2024-03-19T21:35:00.000", + "2024-03-19T21:40:00.000", + "2024-03-19T21:45:00.000", + "2024-03-19T21:50:00.000", + "2024-03-19T21:55:00.000", + "2024-03-19T22:00:00.000", + "2024-03-19T22:05:00.000", + "2024-03-19T22:10:00.000", + "2024-03-19T22:15:00.000", + "2024-03-19T22:20:00.000", + "2024-03-19T22:25:00.000", + "2024-03-19T22:30:00.000", + "2024-03-19T22:35:00.000", + "2024-03-19T22:40:00.000", + "2024-03-19T22:45:00.000", + "2024-03-19T22:50:00.000", + "2024-03-19T22:55:00.000", + "2024-03-19T23:00:00.000", + "2024-03-19T23:05:00.000", + "2024-03-19T23:10:00.000", + "2024-03-19T23:15:00.000", + "2024-03-19T23:20:00.000", + "2024-03-19T23:25:00.000", + "2024-03-19T23:30:00.000", + "2024-03-19T23:35:00.000", + "2024-03-19T23:40:00.000", + "2024-03-19T23:45:00.000", + "2024-03-19T23:50:00.000", + "2024-03-19T23:55:00.000", + "2024-03-20T00:00:00.000", + "2024-03-20T00:05:00.000", + "2024-03-20T00:10:00.000", + "2024-03-20T00:15:00.000", + "2024-03-20T00:20:00.000", + "2024-03-20T00:25:00.000", + "2024-03-20T00:30:00.000", + "2024-03-20T00:35:00.000", + "2024-03-20T00:40:00.000", + "2024-03-20T00:45:00.000", + "2024-03-20T00:50:00.000", + "2024-03-20T00:55:00.000", + "2024-03-20T01:00:00.000", + "2024-03-20T01:05:00.000", + "2024-03-20T01:10:00.000", + "2024-03-20T01:15:00.000", + "2024-03-20T01:20:00.000", + "2024-03-20T01:25:00.000", + "2024-03-20T01:30:00.000", + "2024-03-20T01:35:00.000", + "2024-03-20T01:40:00.000", + "2024-03-20T01:45:00.000", + "2024-03-20T01:50:00.000", + "2024-03-20T01:55:00.000", + "2024-03-20T02:00:00.000", + "2024-03-20T02:05:00.000", + "2024-03-20T02:10:00.000", + "2024-03-20T02:15:00.000", + "2024-03-20T02:20:00.000", + "2024-03-20T02:25:00.000", + "2024-03-20T02:30:00.000", + "2024-03-20T02:35:00.000", + "2024-03-20T02:40:00.000", + "2024-03-20T02:45:00.000", + "2024-03-20T02:50:00.000", + "2024-03-20T02:55:00.000", + "2024-03-20T03:00:00.000", + "2024-03-20T03:05:00.000", + "2024-03-20T03:10:00.000", + "2024-03-20T03:15:00.000", + "2024-03-20T03:20:00.000", + "2024-03-20T03:25:00.000", + "2024-03-20T03:30:00.000", + "2024-03-20T03:35:00.000", + "2024-03-20T03:40:00.000", + "2024-03-20T03:45:00.000", + "2024-03-20T03:50:00.000", + "2024-03-20T03:55:00.000", + "2024-03-20T04:00:00.000", + "2024-03-20T04:05:00.000", + "2024-03-20T04:10:00.000", + "2024-03-20T04:15:00.000", + "2024-03-20T04:20:00.000", + "2024-03-20T04:25:00.000", + "2024-03-20T04:30:00.000", + "2024-03-20T04:35:00.000", + "2024-03-20T04:40:00.000", + "2024-03-20T04:45:00.000", + "2024-03-20T04:50:00.000", + "2024-03-20T04:55:00.000", + "2024-03-20T05:00:00.000", + "2024-03-20T05:05:00.000", + "2024-03-20T05:10:00.000", + "2024-03-20T05:15:00.000", + "2024-03-20T05:20:00.000", + "2024-03-20T05:25:00.000", + "2024-03-20T05:30:00.000", + "2024-03-20T05:35:00.000", + "2024-03-20T05:40:00.000", + "2024-03-20T05:45:00.000", + "2024-03-20T05:50:00.000", + "2024-03-20T05:55:00.000", + "2024-03-20T06:00:00.000", + "2024-03-20T06:05:00.000", + "2024-03-20T06:10:00.000", + "2024-03-20T06:15:00.000", + "2024-03-20T06:20:00.000", + "2024-03-20T06:25:00.000", + "2024-03-20T06:30:00.000", + "2024-03-20T06:35:00.000", + "2024-03-20T06:40:00.000", + "2024-03-20T06:45:00.000", + "2024-03-20T06:50:00.000", + "2024-03-20T06:55:00.000", + "2024-03-20T07:00:00.000", + "2024-03-20T07:05:00.000", + "2024-03-20T07:10:00.000", + "2024-03-20T07:15:00.000", + "2024-03-20T07:20:00.000", + "2024-03-20T07:25:00.000", + "2024-03-20T07:30:00.000", + "2024-03-20T07:35:00.000", + "2024-03-20T07:40:00.000", + "2024-03-20T07:45:00.000", + "2024-03-20T07:50:00.000", + "2024-03-20T07:55:00.000", + "2024-03-20T08:00:00.000", + "2024-03-20T08:05:00.000", + "2024-03-20T08:10:00.000", + "2024-03-20T08:15:00.000", + "2024-03-20T08:20:00.000", + "2024-03-20T08:25:00.000", + "2024-03-20T08:30:00.000", + "2024-03-20T08:35:00.000", + "2024-03-20T08:40:00.000", + "2024-03-20T08:45:00.000", + "2024-03-20T08:50:00.000", + "2024-03-20T08:55:00.000", + "2024-03-20T09:00:00.000", + "2024-03-20T09:05:00.000", + "2024-03-20T09:10:00.000", + "2024-03-20T09:15:00.000", + "2024-03-20T09:20:00.000", + "2024-03-20T09:25:00.000", + "2024-03-20T09:30:00.000", + "2024-03-20T09:35:00.000", + "2024-03-20T09:40:00.000", + "2024-03-20T09:45:00.000", + "2024-03-20T09:50:00.000", + "2024-03-20T09:55:00.000", + "2024-03-20T10:00:00.000", + "2024-03-20T10:05:00.000", + "2024-03-20T10:10:00.000", + "2024-03-20T10:15:00.000", + "2024-03-20T10:20:00.000", + "2024-03-20T10:25:00.000", + "2024-03-20T10:30:00.000", + "2024-03-20T10:35:00.000", + "2024-03-20T10:40:00.000", + "2024-03-20T10:45:00.000", + "2024-03-20T10:50:00.000", + "2024-03-20T10:55:00.000", + "2024-03-20T11:00:00.000", + "2024-03-20T11:05:00.000", + "2024-03-20T11:10:00.000", + "2024-03-20T11:15:00.000", + "2024-03-20T11:20:00.000", + "2024-03-20T11:25:00.000", + "2024-03-20T11:30:00.000", + "2024-03-20T11:35:00.000", + "2024-03-20T11:40:00.000", + "2024-03-20T11:45:00.000", + "2024-03-20T11:50:00.000", + "2024-03-20T11:55:00.000", + "2024-03-20T12:00:00.000", + "2024-03-20T12:05:00.000", + "2024-03-20T12:10:00.000", + "2024-03-20T12:15:00.000", + "2024-03-20T12:20:00.000", + "2024-03-20T12:25:00.000", + "2024-03-20T12:30:00.000", + "2024-03-20T12:35:00.000", + "2024-03-20T12:40:00.000", + "2024-03-20T12:45:00.000", + "2024-03-20T12:50:00.000", + "2024-03-20T12:55:00.000", + "2024-03-20T13:00:00.000", + "2024-03-20T13:05:00.000", + "2024-03-20T13:10:00.000", + "2024-03-20T13:15:00.000", + "2024-03-20T13:20:00.000", + "2024-03-20T13:25:00.000", + "2024-03-20T13:30:00.000", + "2024-03-20T13:35:00.000", + "2024-03-20T13:40:00.000", + "2024-03-20T13:45:00.000", + "2024-03-20T13:50:00.000", + "2024-03-20T13:55:00.000", + "2024-03-20T14:00:00.000", + "2024-03-20T14:05:00.000", + "2024-03-20T14:10:00.000", + "2024-03-20T14:15:00.000", + "2024-03-20T14:20:00.000", + "2024-03-20T14:25:00.000", + "2024-03-20T14:30:00.000", + "2024-03-20T14:35:00.000", + "2024-03-20T14:40:00.000", + "2024-03-20T14:45:00.000", + "2024-03-20T14:50:00.000", + "2024-03-20T14:55:00.000", + "2024-03-20T15:00:00.000", + "2024-03-20T15:05:00.000", + "2024-03-20T15:10:00.000", + "2024-03-20T15:15:00.000", + "2024-03-20T15:20:00.000", + "2024-03-20T15:25:00.000", + "2024-03-20T15:30:00.000", + "2024-03-20T15:35:00.000", + "2024-03-20T15:40:00.000", + "2024-03-20T15:45:00.000", + "2024-03-20T15:50:00.000", + "2024-03-20T15:55:00.000", + "2024-03-20T16:00:00.000", + "2024-03-20T16:05:00.000", + "2024-03-20T16:10:00.000", + "2024-03-20T16:15:00.000", + "2024-03-20T16:20:00.000", + "2024-03-20T16:25:00.000", + "2024-03-20T16:30:00.000", + "2024-03-20T16:35:00.000", + "2024-03-20T16:40:00.000", + "2024-03-20T16:45:00.000", + "2024-03-20T16:50:00.000", + "2024-03-20T16:55:00.000", + "2024-03-20T17:00:00.000", + "2024-03-20T17:05:00.000", + "2024-03-20T17:10:00.000", + "2024-03-20T17:15:00.000", + "2024-03-20T17:20:00.000", + "2024-03-20T17:25:00.000", + "2024-03-20T17:30:00.000", + "2024-03-20T17:35:00.000", + "2024-03-20T17:40:00.000", + "2024-03-20T17:45:00.000", + "2024-03-20T17:50:00.000", + "2024-03-20T17:55:00.000", + "2024-03-20T18:00:00.000", + "2024-03-20T18:05:00.000", + "2024-03-20T18:10:00.000", + "2024-03-20T18:15:00.000", + "2024-03-20T18:20:00.000", + "2024-03-20T18:25:00.000", + "2024-03-20T18:30:00.000", + "2024-03-20T18:35:00.000", + "2024-03-20T18:40:00.000", + "2024-03-20T18:45:00.000", + "2024-03-20T18:50:00.000", + "2024-03-20T18:55:00.000", + "2024-03-20T19:00:00.000", + "2024-03-20T19:05:00.000", + "2024-03-20T19:10:00.000", + "2024-03-20T19:15:00.000", + "2024-03-20T19:20:00.000", + "2024-03-20T19:25:00.000", + "2024-03-20T19:30:00.000", + "2024-03-20T19:35:00.000", + "2024-03-20T19:40:00.000", + "2024-03-20T19:45:00.000", + "2024-03-20T19:50:00.000", + "2024-03-20T19:55:00.000", + "2024-03-20T20:00:00.000", + "2024-03-20T20:05:00.000", + "2024-03-20T20:10:00.000", + "2024-03-20T20:15:00.000", + "2024-03-20T20:20:00.000", + "2024-03-20T20:25:00.000", + "2024-03-20T20:30:00.000", + "2024-03-20T20:35:00.000", + "2024-03-20T20:40:00.000", + "2024-03-20T20:45:00.000", + "2024-03-20T20:50:00.000", + "2024-03-20T20:55:00.000", + "2024-03-20T21:00:00.000", + "2024-03-20T21:05:00.000", + "2024-03-20T21:10:00.000", + "2024-03-20T21:15:00.000", + "2024-03-20T21:20:00.000", + "2024-03-20T21:25:00.000", + "2024-03-20T21:30:00.000", + "2024-03-20T21:35:00.000", + "2024-03-20T21:40:00.000", + "2024-03-20T21:45:00.000", + "2024-03-20T21:50:00.000", + "2024-03-20T21:55:00.000", + "2024-03-20T22:00:00.000", + "2024-03-20T22:05:00.000", + "2024-03-20T22:10:00.000", + "2024-03-20T22:15:00.000", + "2024-03-20T22:20:00.000", + "2024-03-20T22:25:00.000", + "2024-03-20T22:30:00.000", + "2024-03-20T22:35:00.000", + "2024-03-20T22:40:00.000", + "2024-03-20T22:45:00.000", + "2024-03-20T22:50:00.000", + "2024-03-20T22:55:00.000", + "2024-03-20T23:00:00.000", + "2024-03-20T23:05:00.000", + "2024-03-20T23:10:00.000", + "2024-03-20T23:15:00.000", + "2024-03-20T23:20:00.000", + "2024-03-20T23:25:00.000", + "2024-03-20T23:30:00.000", + "2024-03-20T23:35:00.000", + "2024-03-20T23:40:00.000", + "2024-03-20T23:45:00.000", + "2024-03-20T23:50:00.000", + "2024-03-20T23:55:00.000", + "2024-03-21T00:00:00.000", + "2024-03-21T00:05:00.000", + "2024-03-21T00:10:00.000", + "2024-03-21T00:15:00.000", + "2024-03-21T00:20:00.000", + "2024-03-21T00:25:00.000", + "2024-03-21T00:30:00.000", + "2024-03-21T00:35:00.000", + "2024-03-21T00:40:00.000", + "2024-03-21T00:45:00.000", + "2024-03-21T00:50:00.000", + "2024-03-21T00:55:00.000", + "2024-03-21T01:00:00.000", + "2024-03-21T01:05:00.000", + "2024-03-21T01:10:00.000", + "2024-03-21T01:15:00.000", + "2024-03-21T01:20:00.000", + "2024-03-21T01:25:00.000", + "2024-03-21T01:30:00.000", + "2024-03-21T01:35:00.000", + "2024-03-21T01:40:00.000", + "2024-03-21T01:45:00.000", + "2024-03-21T01:50:00.000", + "2024-03-21T01:55:00.000", + "2024-03-21T02:00:00.000", + "2024-03-21T02:05:00.000", + "2024-03-21T02:10:00.000", + "2024-03-21T02:15:00.000", + "2024-03-21T02:20:00.000", + "2024-03-21T02:25:00.000", + "2024-03-21T02:30:00.000", + "2024-03-21T02:35:00.000", + "2024-03-21T02:40:00.000", + "2024-03-21T02:45:00.000", + "2024-03-21T02:50:00.000", + "2024-03-21T02:55:00.000", + "2024-03-21T03:00:00.000", + "2024-03-21T03:05:00.000", + "2024-03-21T03:10:00.000", + "2024-03-21T03:15:00.000", + "2024-03-21T03:20:00.000", + "2024-03-21T03:25:00.000", + "2024-03-21T03:30:00.000", + "2024-03-21T03:35:00.000", + "2024-03-21T03:40:00.000", + "2024-03-21T03:45:00.000", + "2024-03-21T03:50:00.000", + "2024-03-21T03:55:00.000", + "2024-03-21T04:00:00.000", + "2024-03-21T04:05:00.000", + "2024-03-21T04:10:00.000", + "2024-03-21T04:15:00.000", + "2024-03-21T04:20:00.000", + "2024-03-21T04:25:00.000", + "2024-03-21T04:30:00.000", + "2024-03-21T04:35:00.000", + "2024-03-21T04:40:00.000", + "2024-03-21T04:45:00.000", + "2024-03-21T04:50:00.000", + "2024-03-21T04:55:00.000", + "2024-03-21T05:00:00.000", + "2024-03-21T05:05:00.000", + "2024-03-21T05:10:00.000", + "2024-03-21T05:15:00.000", + "2024-03-21T05:20:00.000", + "2024-03-21T05:25:00.000", + "2024-03-21T05:30:00.000", + "2024-03-21T05:35:00.000", + "2024-03-21T05:40:00.000", + "2024-03-21T05:45:00.000", + "2024-03-21T05:50:00.000", + "2024-03-21T05:55:00.000", + "2024-03-21T06:00:00.000", + "2024-03-21T06:05:00.000", + "2024-03-21T06:10:00.000", + "2024-03-21T06:15:00.000", + "2024-03-21T06:20:00.000", + "2024-03-21T06:25:00.000", + "2024-03-21T06:30:00.000", + "2024-03-21T06:35:00.000", + "2024-03-21T06:40:00.000", + "2024-03-21T06:45:00.000", + "2024-03-21T06:50:00.000", + "2024-03-21T06:55:00.000", + "2024-03-21T07:00:00.000", + "2024-03-21T07:05:00.000", + "2024-03-21T07:10:00.000", + "2024-03-21T07:15:00.000", + "2024-03-21T07:20:00.000", + "2024-03-21T07:25:00.000", + "2024-03-21T07:30:00.000", + "2024-03-21T07:35:00.000", + "2024-03-21T07:40:00.000", + "2024-03-21T07:45:00.000", + "2024-03-21T07:50:00.000", + "2024-03-21T07:55:00.000", + "2024-03-21T08:00:00.000", + "2024-03-21T08:05:00.000", + "2024-03-21T08:10:00.000", + "2024-03-21T08:15:00.000", + "2024-03-21T08:20:00.000", + "2024-03-21T08:25:00.000", + "2024-03-21T08:30:00.000", + "2024-03-21T08:35:00.000", + "2024-03-21T08:40:00.000", + "2024-03-21T08:45:00.000", + "2024-03-21T08:50:00.000", + "2024-03-21T08:55:00.000", + "2024-03-21T09:00:00.000", + "2024-03-21T09:05:00.000", + "2024-03-21T09:10:00.000", + "2024-03-21T09:15:00.000", + "2024-03-21T09:20:00.000", + "2024-03-21T09:25:00.000", + "2024-03-21T09:30:00.000", + "2024-03-21T09:35:00.000", + "2024-03-21T09:40:00.000", + "2024-03-21T09:45:00.000", + "2024-03-21T09:50:00.000", + "2024-03-21T09:55:00.000", + "2024-03-21T10:00:00.000", + "2024-03-21T10:05:00.000", + "2024-03-21T10:10:00.000", + "2024-03-21T10:15:00.000", + "2024-03-21T10:20:00.000", + "2024-03-21T10:25:00.000", + "2024-03-21T10:30:00.000", + "2024-03-21T10:35:00.000", + "2024-03-21T10:40:00.000", + "2024-03-21T10:45:00.000", + "2024-03-21T10:50:00.000", + "2024-03-21T10:55:00.000", + "2024-03-21T11:00:00.000", + "2024-03-21T11:05:00.000", + "2024-03-21T11:10:00.000", + "2024-03-21T11:15:00.000", + "2024-03-21T11:20:00.000", + "2024-03-21T11:25:00.000", + "2024-03-21T11:30:00.000", + "2024-03-21T11:35:00.000", + "2024-03-21T11:40:00.000", + "2024-03-21T11:45:00.000", + "2024-03-21T11:50:00.000", + "2024-03-21T11:55:00.000", + "2024-03-21T12:00:00.000", + "2024-03-21T12:05:00.000", + "2024-03-21T12:10:00.000", + "2024-03-21T12:15:00.000", + "2024-03-21T12:20:00.000", + "2024-03-21T12:25:00.000", + "2024-03-21T12:30:00.000", + "2024-03-21T12:35:00.000", + "2024-03-21T12:40:00.000", + "2024-03-21T12:45:00.000", + "2024-03-21T12:50:00.000", + "2024-03-21T12:55:00.000", + "2024-03-21T13:00:00.000", + "2024-03-21T13:05:00.000", + "2024-03-21T13:10:00.000", + "2024-03-21T13:15:00.000", + "2024-03-21T13:20:00.000", + "2024-03-21T13:25:00.000", + "2024-03-21T13:30:00.000", + "2024-03-21T13:35:00.000", + "2024-03-21T13:40:00.000", + "2024-03-21T13:45:00.000", + "2024-03-21T13:50:00.000", + "2024-03-21T13:55:00.000", + "2024-03-21T14:00:00.000", + "2024-03-21T14:05:00.000", + "2024-03-21T14:10:00.000", + "2024-03-21T14:15:00.000", + "2024-03-21T14:20:00.000", + "2024-03-21T14:25:00.000", + "2024-03-21T14:30:00.000", + "2024-03-21T14:35:00.000", + "2024-03-21T14:40:00.000", + "2024-03-21T14:45:00.000", + "2024-03-21T14:50:00.000", + "2024-03-21T14:55:00.000", + "2024-03-21T15:00:00.000", + "2024-03-21T15:05:00.000", + "2024-03-21T15:10:00.000", + "2024-03-21T15:15:00.000", + "2024-03-21T15:20:00.000", + "2024-03-21T15:25:00.000", + "2024-03-21T15:30:00.000", + "2024-03-21T15:35:00.000", + "2024-03-21T15:40:00.000", + "2024-03-21T15:45:00.000", + "2024-03-21T15:50:00.000", + "2024-03-21T15:55:00.000", + "2024-03-21T16:00:00.000", + "2024-03-21T16:05:00.000", + "2024-03-21T16:10:00.000", + "2024-03-21T16:15:00.000", + "2024-03-21T16:20:00.000", + "2024-03-21T16:25:00.000", + "2024-03-21T16:30:00.000", + "2024-03-21T16:35:00.000", + "2024-03-21T16:40:00.000", + "2024-03-21T16:45:00.000", + "2024-03-21T16:50:00.000", + "2024-03-21T16:55:00.000", + "2024-03-21T17:00:00.000", + "2024-03-21T17:05:00.000", + "2024-03-21T17:10:00.000", + "2024-03-21T17:15:00.000", + "2024-03-21T17:20:00.000", + "2024-03-21T17:25:00.000", + "2024-03-21T17:30:00.000", + "2024-03-21T17:35:00.000", + "2024-03-21T17:40:00.000", + "2024-03-21T17:45:00.000", + "2024-03-21T17:50:00.000", + "2024-03-21T17:55:00.000", + "2024-03-21T18:00:00.000", + "2024-03-21T18:05:00.000", + "2024-03-21T18:10:00.000", + "2024-03-21T18:15:00.000", + "2024-03-21T18:20:00.000", + "2024-03-21T18:25:00.000", + "2024-03-21T18:30:00.000", + "2024-03-21T18:35:00.000", + "2024-03-21T18:40:00.000", + "2024-03-21T18:45:00.000", + "2024-03-21T18:50:00.000", + "2024-03-21T18:55:00.000", + "2024-03-21T19:00:00.000", + "2024-03-21T19:05:00.000", + "2024-03-21T19:10:00.000", + "2024-03-21T19:15:00.000", + "2024-03-21T19:20:00.000", + "2024-03-21T19:25:00.000", + "2024-03-21T19:30:00.000", + "2024-03-21T19:35:00.000", + "2024-03-21T19:40:00.000", + "2024-03-21T19:45:00.000", + "2024-03-21T19:50:00.000", + "2024-03-21T19:55:00.000", + "2024-03-21T20:00:00.000", + "2024-03-21T20:05:00.000", + "2024-03-21T20:10:00.000", + "2024-03-21T20:15:00.000", + "2024-03-21T20:20:00.000", + "2024-03-21T20:25:00.000", + "2024-03-21T20:30:00.000", + "2024-03-21T20:35:00.000", + "2024-03-21T20:40:00.000", + "2024-03-21T20:45:00.000", + "2024-03-21T20:50:00.000", + "2024-03-21T20:55:00.000", + "2024-03-21T21:00:00.000", + "2024-03-21T21:05:00.000", + "2024-03-21T21:10:00.000", + "2024-03-21T21:15:00.000", + "2024-03-21T21:20:00.000", + "2024-03-21T21:25:00.000", + "2024-03-21T21:30:00.000", + "2024-03-21T21:35:00.000", + "2024-03-21T21:40:00.000", + "2024-03-21T21:45:00.000", + "2024-03-21T21:50:00.000", + "2024-03-21T21:55:00.000", + "2024-03-21T22:00:00.000", + "2024-03-21T22:05:00.000", + "2024-03-21T22:10:00.000", + "2024-03-21T22:15:00.000", + "2024-03-21T22:20:00.000", + "2024-03-21T22:25:00.000", + "2024-03-21T22:30:00.000", + "2024-03-21T22:35:00.000", + "2024-03-21T22:40:00.000", + "2024-03-21T22:45:00.000", + "2024-03-21T22:50:00.000", + "2024-03-21T22:55:00.000", + "2024-03-21T23:00:00.000", + "2024-03-21T23:05:00.000", + "2024-03-21T23:10:00.000", + "2024-03-21T23:15:00.000", + "2024-03-21T23:20:00.000", + "2024-03-21T23:25:00.000", + "2024-03-21T23:30:00.000", + "2024-03-21T23:35:00.000", + "2024-03-21T23:40:00.000", + "2024-03-21T23:45:00.000", + "2024-03-21T23:50:00.000", + "2024-03-21T23:55:00.000", + "2024-03-22T00:00:00.000", + "2024-03-22T00:05:00.000", + "2024-03-22T00:10:00.000", + "2024-03-22T00:15:00.000", + "2024-03-22T00:20:00.000", + "2024-03-22T00:25:00.000", + "2024-03-22T00:30:00.000", + "2024-03-22T00:35:00.000", + "2024-03-22T00:40:00.000", + "2024-03-22T00:45:00.000", + "2024-03-22T00:50:00.000", + "2024-03-22T00:55:00.000", + "2024-03-22T01:00:00.000", + "2024-03-22T01:05:00.000", + "2024-03-22T01:10:00.000", + "2024-03-22T01:15:00.000", + "2024-03-22T01:20:00.000", + "2024-03-22T01:25:00.000", + "2024-03-22T01:30:00.000", + "2024-03-22T01:35:00.000", + "2024-03-22T01:40:00.000", + "2024-03-22T01:45:00.000", + "2024-03-22T01:50:00.000", + "2024-03-22T01:55:00.000", + "2024-03-22T02:00:00.000", + "2024-03-22T02:05:00.000", + "2024-03-22T02:10:00.000", + "2024-03-22T02:15:00.000", + "2024-03-22T02:20:00.000", + "2024-03-22T02:25:00.000", + "2024-03-22T02:30:00.000", + "2024-03-22T02:35:00.000", + "2024-03-22T02:40:00.000", + "2024-03-22T02:45:00.000", + "2024-03-22T02:50:00.000", + "2024-03-22T02:55:00.000", + "2024-03-22T03:00:00.000", + "2024-03-22T03:05:00.000", + "2024-03-22T03:10:00.000", + "2024-03-22T03:15:00.000", + "2024-03-22T03:20:00.000", + "2024-03-22T03:25:00.000", + "2024-03-22T03:30:00.000", + "2024-03-22T03:35:00.000", + "2024-03-22T03:40:00.000", + "2024-03-22T03:45:00.000", + "2024-03-22T03:50:00.000", + "2024-03-22T03:55:00.000", + "2024-03-22T04:00:00.000", + "2024-03-22T04:05:00.000", + "2024-03-22T04:10:00.000", + "2024-03-22T04:15:00.000", + "2024-03-22T04:20:00.000", + "2024-03-22T04:25:00.000", + "2024-03-22T04:30:00.000", + "2024-03-22T04:35:00.000", + "2024-03-22T04:40:00.000", + "2024-03-22T04:45:00.000", + "2024-03-22T04:50:00.000", + "2024-03-22T04:55:00.000", + "2024-03-22T05:00:00.000", + "2024-03-22T05:05:00.000", + "2024-03-22T05:10:00.000", + "2024-03-22T05:15:00.000", + "2024-03-22T05:20:00.000", + "2024-03-22T05:25:00.000", + "2024-03-22T05:30:00.000", + "2024-03-22T05:35:00.000", + "2024-03-22T05:40:00.000", + "2024-03-22T05:45:00.000", + "2024-03-22T05:50:00.000", + "2024-03-22T05:55:00.000", + "2024-03-22T06:00:00.000", + "2024-03-22T06:05:00.000", + "2024-03-22T06:10:00.000", + "2024-03-22T06:15:00.000", + "2024-03-22T06:20:00.000", + "2024-03-22T06:25:00.000", + "2024-03-22T06:30:00.000", + "2024-03-22T06:35:00.000", + "2024-03-22T06:40:00.000", + "2024-03-22T06:45:00.000", + "2024-03-22T06:50:00.000", + "2024-03-22T06:55:00.000", + "2024-03-22T07:00:00.000", + "2024-03-22T07:05:00.000", + "2024-03-22T07:10:00.000", + "2024-03-22T07:15:00.000", + "2024-03-22T07:20:00.000", + "2024-03-22T07:25:00.000", + "2024-03-22T07:30:00.000", + "2024-03-22T07:35:00.000", + "2024-03-22T07:40:00.000", + "2024-03-22T07:45:00.000", + "2024-03-22T07:50:00.000", + "2024-03-22T07:55:00.000", + "2024-03-22T08:00:00.000", + "2024-03-22T08:05:00.000", + "2024-03-22T08:10:00.000", + "2024-03-22T08:15:00.000", + "2024-03-22T08:20:00.000", + "2024-03-22T08:25:00.000", + "2024-03-22T08:30:00.000", + "2024-03-22T08:35:00.000", + "2024-03-22T08:40:00.000", + "2024-03-22T08:45:00.000", + "2024-03-22T08:50:00.000", + "2024-03-22T08:55:00.000", + "2024-03-22T09:00:00.000", + "2024-03-22T09:05:00.000", + "2024-03-22T09:10:00.000", + "2024-03-22T09:15:00.000", + "2024-03-22T09:20:00.000", + "2024-03-22T09:25:00.000", + "2024-03-22T09:30:00.000", + "2024-03-22T09:35:00.000", + "2024-03-22T09:40:00.000", + "2024-03-22T09:45:00.000", + "2024-03-22T09:50:00.000", + "2024-03-22T09:55:00.000", + "2024-03-22T10:00:00.000", + "2024-03-22T10:05:00.000", + "2024-03-22T10:10:00.000", + "2024-03-22T10:15:00.000", + "2024-03-22T10:20:00.000", + "2024-03-22T10:25:00.000", + "2024-03-22T10:30:00.000", + "2024-03-22T10:35:00.000", + "2024-03-22T10:40:00.000", + "2024-03-22T10:45:00.000", + "2024-03-22T10:50:00.000", + "2024-03-22T10:55:00.000", + "2024-03-22T11:00:00.000", + "2024-03-22T11:05:00.000", + "2024-03-22T11:10:00.000", + "2024-03-22T11:15:00.000", + "2024-03-22T11:20:00.000", + "2024-03-22T11:25:00.000", + "2024-03-22T11:30:00.000", + "2024-03-22T11:35:00.000", + "2024-03-22T11:40:00.000", + "2024-03-22T11:45:00.000", + "2024-03-22T11:50:00.000", + "2024-03-22T11:55:00.000", + "2024-03-22T12:00:00.000", + "2024-03-22T12:05:00.000", + "2024-03-22T12:10:00.000", + "2024-03-22T12:15:00.000", + "2024-03-22T12:20:00.000", + "2024-03-22T12:25:00.000", + "2024-03-22T12:30:00.000", + "2024-03-22T12:35:00.000", + "2024-03-22T12:40:00.000", + "2024-03-22T12:45:00.000", + "2024-03-22T12:50:00.000", + "2024-03-22T12:55:00.000", + "2024-03-22T13:00:00.000", + "2024-03-22T13:05:00.000", + "2024-03-22T13:10:00.000", + "2024-03-22T13:15:00.000", + "2024-03-22T13:20:00.000", + "2024-03-22T13:25:00.000", + "2024-03-22T13:30:00.000", + "2024-03-22T13:35:00.000", + "2024-03-22T13:40:00.000", + "2024-03-22T13:45:00.000", + "2024-03-22T13:50:00.000", + "2024-03-22T13:55:00.000", + "2024-03-22T14:00:00.000", + "2024-03-22T14:05:00.000", + "2024-03-22T14:10:00.000", + "2024-03-22T14:15:00.000", + "2024-03-22T14:20:00.000", + "2024-03-22T14:25:00.000", + "2024-03-22T14:30:00.000", + "2024-03-22T14:35:00.000", + "2024-03-22T14:40:00.000", + "2024-03-22T14:45:00.000", + "2024-03-22T14:50:00.000", + "2024-03-22T14:55:00.000", + "2024-03-22T15:00:00.000", + "2024-03-22T15:05:00.000", + "2024-03-22T15:10:00.000", + "2024-03-22T15:15:00.000", + "2024-03-22T15:20:00.000", + "2024-03-22T15:25:00.000", + "2024-03-22T15:30:00.000", + "2024-03-22T15:35:00.000", + "2024-03-22T15:40:00.000", + "2024-03-22T15:45:00.000", + "2024-03-22T15:50:00.000", + "2024-03-22T15:55:00.000", + "2024-03-22T16:00:00.000", + "2024-03-22T16:05:00.000", + "2024-03-22T16:10:00.000", + "2024-03-22T16:15:00.000", + "2024-03-22T16:20:00.000", + "2024-03-22T16:25:00.000", + "2024-03-22T16:30:00.000", + "2024-03-22T16:35:00.000", + "2024-03-22T16:40:00.000", + "2024-03-22T16:45:00.000", + "2024-03-22T16:50:00.000", + "2024-03-22T16:55:00.000", + "2024-03-22T17:00:00.000", + "2024-03-22T17:05:00.000", + "2024-03-22T17:10:00.000", + "2024-03-22T17:15:00.000", + "2024-03-22T17:20:00.000", + "2024-03-22T17:25:00.000", + "2024-03-22T17:30:00.000", + "2024-03-22T17:35:00.000", + "2024-03-22T17:40:00.000", + "2024-03-22T17:45:00.000", + "2024-03-22T17:50:00.000", + "2024-03-22T17:55:00.000", + "2024-03-22T18:00:00.000", + "2024-03-22T18:05:00.000", + "2024-03-22T18:10:00.000", + "2024-03-22T18:15:00.000", + "2024-03-22T18:20:00.000", + "2024-03-22T18:25:00.000", + "2024-03-22T18:30:00.000", + "2024-03-22T18:35:00.000", + "2024-03-22T18:40:00.000", + "2024-03-22T18:45:00.000", + "2024-03-22T18:50:00.000", + "2024-03-22T18:55:00.000", + "2024-03-22T19:00:00.000", + "2024-03-22T19:05:00.000", + "2024-03-22T19:10:00.000", + "2024-03-22T19:15:00.000", + "2024-03-22T19:20:00.000", + "2024-03-22T19:25:00.000", + "2024-03-22T19:30:00.000", + "2024-03-22T19:35:00.000", + "2024-03-22T19:40:00.000", + "2024-03-22T19:45:00.000", + "2024-03-22T19:50:00.000", + "2024-03-22T19:55:00.000", + "2024-03-22T20:00:00.000", + "2024-03-22T20:05:00.000", + "2024-03-22T20:10:00.000", + "2024-03-22T20:15:00.000", + "2024-03-22T20:20:00.000", + "2024-03-22T20:25:00.000", + "2024-03-22T20:30:00.000", + "2024-03-22T20:35:00.000", + "2024-03-22T20:40:00.000", + "2024-03-22T20:45:00.000", + "2024-03-22T20:50:00.000", + "2024-03-22T20:55:00.000", + "2024-03-22T21:00:00.000", + "2024-03-22T21:05:00.000", + "2024-03-22T21:10:00.000", + "2024-03-22T21:15:00.000", + "2024-03-22T21:20:00.000", + "2024-03-22T21:25:00.000", + "2024-03-22T21:30:00.000", + "2024-03-22T21:35:00.000", + "2024-03-22T21:40:00.000", + "2024-03-22T21:45:00.000", + "2024-03-22T21:50:00.000", + "2024-03-22T21:55:00.000", + "2024-03-22T22:00:00.000", + "2024-03-22T22:05:00.000", + "2024-03-22T22:10:00.000", + "2024-03-22T22:15:00.000", + "2024-03-22T22:20:00.000", + "2024-03-22T22:25:00.000", + "2024-03-22T22:30:00.000", + "2024-03-22T22:35:00.000", + "2024-03-22T22:40:00.000", + "2024-03-22T22:45:00.000", + "2024-03-22T22:50:00.000", + "2024-03-22T22:55:00.000", + "2024-03-22T23:00:00.000", + "2024-03-22T23:05:00.000", + "2024-03-22T23:10:00.000", + "2024-03-22T23:15:00.000", + "2024-03-22T23:20:00.000", + "2024-03-22T23:25:00.000", + "2024-03-22T23:30:00.000", + "2024-03-22T23:35:00.000", + "2024-03-22T23:40:00.000", + "2024-03-22T23:45:00.000", + "2024-03-22T23:50:00.000", + "2024-03-22T23:55:00.000", + "2024-03-23T00:00:00.000", + "2024-03-23T00:05:00.000", + "2024-03-23T00:10:00.000", + "2024-03-23T00:15:00.000", + "2024-03-23T00:20:00.000", + "2024-03-23T00:25:00.000", + "2024-03-23T00:30:00.000", + "2024-03-23T00:35:00.000", + "2024-03-23T00:40:00.000", + "2024-03-23T00:45:00.000", + "2024-03-23T00:50:00.000", + "2024-03-23T00:55:00.000", + "2024-03-23T01:00:00.000", + "2024-03-23T01:05:00.000", + "2024-03-23T01:10:00.000", + "2024-03-23T01:15:00.000", + "2024-03-23T01:20:00.000", + "2024-03-23T01:25:00.000", + "2024-03-23T01:30:00.000", + "2024-03-23T01:35:00.000", + "2024-03-23T01:40:00.000", + "2024-03-23T01:45:00.000", + "2024-03-23T01:50:00.000", + "2024-03-23T01:55:00.000", + "2024-03-23T02:00:00.000", + "2024-03-23T02:05:00.000", + "2024-03-23T02:10:00.000", + "2024-03-23T02:15:00.000", + "2024-03-23T02:20:00.000", + "2024-03-23T02:25:00.000", + "2024-03-23T02:30:00.000", + "2024-03-23T02:35:00.000", + "2024-03-23T02:40:00.000", + "2024-03-23T02:45:00.000", + "2024-03-23T02:50:00.000", + "2024-03-23T02:55:00.000", + "2024-03-23T03:00:00.000", + "2024-03-23T03:05:00.000", + "2024-03-23T03:10:00.000", + "2024-03-23T03:15:00.000", + "2024-03-23T03:20:00.000", + "2024-03-23T03:25:00.000", + "2024-03-23T03:30:00.000", + "2024-03-23T03:35:00.000", + "2024-03-23T03:40:00.000", + "2024-03-23T03:45:00.000", + "2024-03-23T03:50:00.000", + "2024-03-23T03:55:00.000", + "2024-03-23T04:00:00.000", + "2024-03-23T04:05:00.000", + "2024-03-23T04:10:00.000", + "2024-03-23T04:15:00.000", + "2024-03-23T04:20:00.000", + "2024-03-23T04:25:00.000", + "2024-03-23T04:30:00.000", + "2024-03-23T04:35:00.000", + "2024-03-23T04:40:00.000", + "2024-03-23T04:45:00.000", + "2024-03-23T04:50:00.000", + "2024-03-23T04:55:00.000", + "2024-03-23T05:00:00.000", + "2024-03-23T05:05:00.000", + "2024-03-23T05:10:00.000", + "2024-03-23T05:15:00.000", + "2024-03-23T05:20:00.000", + "2024-03-23T05:25:00.000", + "2024-03-23T05:30:00.000", + "2024-03-23T05:35:00.000", + "2024-03-23T05:40:00.000", + "2024-03-23T05:45:00.000", + "2024-03-23T05:50:00.000", + "2024-03-23T05:55:00.000", + "2024-03-23T06:00:00.000", + "2024-03-23T06:05:00.000", + "2024-03-23T06:10:00.000", + "2024-03-23T06:15:00.000", + "2024-03-23T06:20:00.000", + "2024-03-23T06:25:00.000", + "2024-03-23T06:30:00.000", + "2024-03-23T06:35:00.000", + "2024-03-23T06:40:00.000", + "2024-03-23T06:45:00.000", + "2024-03-23T06:50:00.000", + "2024-03-23T06:55:00.000", + "2024-03-23T07:00:00.000", + "2024-03-23T07:05:00.000", + "2024-03-23T07:10:00.000", + "2024-03-23T07:15:00.000", + "2024-03-23T07:20:00.000", + "2024-03-23T07:25:00.000", + "2024-03-23T07:30:00.000", + "2024-03-23T07:35:00.000", + "2024-03-23T07:40:00.000", + "2024-03-23T07:45:00.000", + "2024-03-23T07:50:00.000", + "2024-03-23T07:55:00.000", + "2024-03-23T08:00:00.000", + "2024-03-23T08:05:00.000", + "2024-03-23T08:10:00.000", + "2024-03-23T08:15:00.000", + "2024-03-23T08:20:00.000", + "2024-03-23T08:25:00.000", + "2024-03-23T08:30:00.000", + "2024-03-23T08:35:00.000", + "2024-03-23T08:40:00.000", + "2024-03-23T08:45:00.000", + "2024-03-23T08:50:00.000", + "2024-03-23T08:55:00.000", + "2024-03-23T09:00:00.000", + "2024-03-23T09:05:00.000", + "2024-03-23T09:10:00.000", + "2024-03-23T09:15:00.000", + "2024-03-23T09:20:00.000", + "2024-03-23T09:25:00.000", + "2024-03-23T09:30:00.000", + "2024-03-23T09:35:00.000", + "2024-03-23T09:40:00.000", + "2024-03-23T09:45:00.000", + "2024-03-23T09:50:00.000", + "2024-03-23T09:55:00.000", + "2024-03-23T10:00:00.000", + "2024-03-23T10:05:00.000", + "2024-03-23T10:10:00.000", + "2024-03-23T10:15:00.000", + "2024-03-23T10:20:00.000", + "2024-03-23T10:25:00.000", + "2024-03-23T10:30:00.000", + "2024-03-23T10:35:00.000", + "2024-03-23T10:40:00.000", + "2024-03-23T10:45:00.000", + "2024-03-23T10:50:00.000", + "2024-03-23T10:55:00.000", + "2024-03-23T11:00:00.000", + "2024-03-23T11:05:00.000", + "2024-03-23T11:10:00.000", + "2024-03-23T11:15:00.000", + "2024-03-23T11:20:00.000", + "2024-03-23T11:25:00.000", + "2024-03-23T11:30:00.000", + "2024-03-23T11:35:00.000", + "2024-03-23T11:40:00.000", + "2024-03-23T11:45:00.000", + "2024-03-23T11:50:00.000", + "2024-03-23T11:55:00.000", + "2024-03-23T12:00:00.000", + "2024-03-23T12:05:00.000", + "2024-03-23T12:10:00.000", + "2024-03-23T12:15:00.000", + "2024-03-23T12:20:00.000", + "2024-03-23T12:25:00.000", + "2024-03-23T12:30:00.000", + "2024-03-23T12:35:00.000", + "2024-03-23T12:40:00.000", + "2024-03-23T12:45:00.000", + "2024-03-23T12:50:00.000", + "2024-03-23T12:55:00.000", + "2024-03-23T13:00:00.000", + "2024-03-23T13:05:00.000", + "2024-03-23T13:10:00.000", + "2024-03-23T13:15:00.000", + "2024-03-23T13:20:00.000", + "2024-03-23T13:25:00.000", + "2024-03-23T13:30:00.000", + "2024-03-23T13:35:00.000", + "2024-03-23T13:40:00.000", + "2024-03-23T13:45:00.000", + "2024-03-23T13:50:00.000", + "2024-03-23T13:55:00.000", + "2024-03-23T14:00:00.000", + "2024-03-23T14:05:00.000", + "2024-03-23T14:10:00.000", + "2024-03-23T14:15:00.000", + "2024-03-23T14:20:00.000", + "2024-03-23T14:25:00.000", + "2024-03-23T14:30:00.000", + "2024-03-23T14:35:00.000", + "2024-03-23T14:40:00.000", + "2024-03-23T14:45:00.000", + "2024-03-23T14:50:00.000", + "2024-03-23T14:55:00.000", + "2024-03-23T15:00:00.000", + "2024-03-23T15:05:00.000", + "2024-03-23T15:10:00.000", + "2024-03-23T15:15:00.000", + "2024-03-23T15:20:00.000", + "2024-03-23T15:25:00.000", + "2024-03-23T15:30:00.000", + "2024-03-23T15:35:00.000", + "2024-03-23T15:40:00.000", + "2024-03-23T15:45:00.000", + "2024-03-23T15:50:00.000", + "2024-03-23T15:55:00.000", + "2024-03-23T16:00:00.000", + "2024-03-23T16:05:00.000", + "2024-03-23T16:10:00.000", + "2024-03-23T16:15:00.000", + "2024-03-23T16:20:00.000", + "2024-03-23T16:25:00.000", + "2024-03-23T16:30:00.000", + "2024-03-23T16:35:00.000", + "2024-03-23T16:40:00.000", + "2024-03-23T16:45:00.000", + "2024-03-23T16:50:00.000", + "2024-03-23T16:55:00.000", + "2024-03-23T17:00:00.000", + "2024-03-23T17:05:00.000", + "2024-03-23T17:10:00.000", + "2024-03-23T17:15:00.000", + "2024-03-23T17:20:00.000", + "2024-03-23T17:25:00.000", + "2024-03-23T17:30:00.000", + "2024-03-23T17:35:00.000", + "2024-03-23T17:40:00.000", + "2024-03-23T17:45:00.000", + "2024-03-23T17:50:00.000", + "2024-03-23T17:55:00.000", + "2024-03-23T18:00:00.000", + "2024-03-23T18:05:00.000", + "2024-03-23T18:10:00.000", + "2024-03-23T18:15:00.000", + "2024-03-23T18:20:00.000", + "2024-03-23T18:25:00.000", + "2024-03-23T18:30:00.000", + "2024-03-23T18:35:00.000", + "2024-03-23T18:40:00.000", + "2024-03-23T18:45:00.000", + "2024-03-23T18:50:00.000", + "2024-03-23T18:55:00.000", + "2024-03-23T19:00:00.000", + "2024-03-23T19:05:00.000", + "2024-03-23T19:10:00.000", + "2024-03-23T19:15:00.000", + "2024-03-23T19:20:00.000", + "2024-03-23T19:25:00.000", + "2024-03-23T19:30:00.000", + "2024-03-23T19:35:00.000", + "2024-03-23T19:40:00.000", + "2024-03-23T19:45:00.000", + "2024-03-23T19:50:00.000", + "2024-03-23T19:55:00.000", + "2024-03-23T20:00:00.000", + "2024-03-23T20:05:00.000", + "2024-03-23T20:10:00.000", + "2024-03-23T20:15:00.000", + "2024-03-23T20:20:00.000", + "2024-03-23T20:25:00.000", + "2024-03-23T20:30:00.000", + "2024-03-23T20:35:00.000", + "2024-03-23T20:40:00.000", + "2024-03-23T20:45:00.000", + "2024-03-23T20:50:00.000", + "2024-03-23T20:55:00.000", + "2024-03-23T21:00:00.000", + "2024-03-23T21:05:00.000", + "2024-03-23T21:10:00.000", + "2024-03-23T21:15:00.000", + "2024-03-23T21:20:00.000", + "2024-03-23T21:25:00.000", + "2024-03-23T21:30:00.000", + "2024-03-23T21:35:00.000", + "2024-03-23T21:40:00.000", + "2024-03-23T21:45:00.000", + "2024-03-23T21:50:00.000", + "2024-03-23T21:55:00.000", + "2024-03-23T22:00:00.000", + "2024-03-23T22:05:00.000", + "2024-03-23T22:10:00.000", + "2024-03-23T22:15:00.000", + "2024-03-23T22:20:00.000", + "2024-03-23T22:25:00.000", + "2024-03-23T22:30:00.000", + "2024-03-23T22:35:00.000", + "2024-03-23T22:40:00.000", + "2024-03-23T22:45:00.000", + "2024-03-23T22:50:00.000", + "2024-03-23T22:55:00.000", + "2024-03-23T23:00:00.000", + "2024-03-23T23:05:00.000", + "2024-03-23T23:10:00.000", + "2024-03-23T23:15:00.000", + "2024-03-23T23:20:00.000", + "2024-03-23T23:25:00.000", + "2024-03-23T23:30:00.000", + "2024-03-23T23:35:00.000", + "2024-03-23T23:40:00.000", + "2024-03-23T23:45:00.000", + "2024-03-23T23:50:00.000", + "2024-03-23T23:55:00.000", + "2024-03-24T00:00:00.000", + "2024-03-24T00:05:00.000", + "2024-03-24T00:10:00.000", + "2024-03-24T00:15:00.000", + "2024-03-24T00:20:00.000", + "2024-03-24T00:25:00.000", + "2024-03-24T00:30:00.000", + "2024-03-24T00:35:00.000", + "2024-03-24T00:40:00.000", + "2024-03-24T00:45:00.000", + "2024-03-24T00:50:00.000", + "2024-03-24T00:55:00.000", + "2024-03-24T01:00:00.000", + "2024-03-24T01:05:00.000", + "2024-03-24T01:10:00.000", + "2024-03-24T01:15:00.000", + "2024-03-24T01:20:00.000", + "2024-03-24T01:25:00.000", + "2024-03-24T01:30:00.000", + "2024-03-24T01:35:00.000", + "2024-03-24T01:40:00.000", + "2024-03-24T01:45:00.000", + "2024-03-24T01:50:00.000", + "2024-03-24T01:55:00.000", + "2024-03-24T02:00:00.000", + "2024-03-24T02:05:00.000", + "2024-03-24T02:10:00.000", + "2024-03-24T02:15:00.000", + "2024-03-24T02:20:00.000", + "2024-03-24T02:25:00.000", + "2024-03-24T02:30:00.000" + ], + "y": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39.8, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 35.7, + null, + null, + null, + 37.8, + null, + 38.4, + null, + null, + 34.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 33.5, + null, + null, + 36.4, + null, + null, + null, + null, + null, + null, + null, + null, + 38.5, + null, + 33, + null, + null, + null, + null, + null, + null, + null, + 36.8, + null, + null, + null, + null, + null, + null, + null, + null, + 37.3, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 28.1, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 22.9, + null, + null, + 29.2, + null, + null, + null, + 29.8, + null, + null, + null, + null, + null, + null, + 34.9, + null, + null, + null, + null, + null, + null, + null, + 37.5, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 38.1, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 33.1, + null, + 34.5, + null, + null, + 39.4, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 37.6, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 34, + null, + null, + null, + null, + null, + null, + null, + 39.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 38.1, + null, + null, + null, + null, + null, + 29, + null, + null, + 31, + null, + null, + null, + null, + 33.1, + null, + null, + null, + null, + null, + 28.9, + null, + null, + null, + null, + null, + null, + 35, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 36.3, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 30.2, + null, + null, + null, + 23.3, + null, + null, + null, + 30.7, + null, + null, + null, + null, + 38.4, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 38.3, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 36.6, + null, + null, + null, + null, + null, + null, + 38.6, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 37.2, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39.3, + null, + null, + null, + null, + 35.4, + null, + null, + null, + 35.5, + null, + 34.2, + null, + 31.5, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 37.1, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 32.8, + null, + null, + null, + null, + 29.2, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 35.9, + null, + null, + 39.1, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 38.3, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 34.3, + null, + 37.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 35.2, + null, + null, + 34.4, + null, + null, + null, + null, + null, + 29.6, + null, + null, + null, + null, + 32.4, + null, + null, + null, + null, + null, + null, + null, + null, + 38.1, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 34.8, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 35.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 35.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 38.6, + null, + 38.8, + null, + 38.6, + null, + null, + null, + null, + null, + null, + 37.4, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 36.8, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 33.3, + null, + null, + 34, + null, + null, + null, + null, + null, + 39.6, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 33.7, + null, + null, + 27.5, + null, + 24.7, + null, + null, + null, + 24.3, + null, + null, + 30, + null, + null, + null, + null, + null, + 33.9, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 34.5, + null, + null, + null, + null, + 35.4, + null, + null, + null, + 37.4, + null, + 39, + null, + null, + null, + 37.3, + null, + 31.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 36, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 34, + null, + null, + null, + null, + 29.1, + null, + 37.4, + null, + 38.1, + null, + null, + null, + null, + 36.8, + null, + null, + null, + null, + null, + null, + null, + 33.5, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39.9, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39.3, + null, + 36.3, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 33.3, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39.7, + null, + null, + null, + null, + null, + null, + null, + null, + 27.5, + null, + 36.9, + null, + null, + null, + 35.2, + null, + null, + null, + 37.7, + null, + null, + 37.1, + null, + null, + null, + null, + null, + null, + null, + null, + 36.6, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 38, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 37.2, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 25, + null, + null, + null, + 25.4, + null, + null, + null, + 20.8, + null, + null, + null, + null, + null, + 30.8, + null, + null, + null, + 35.5, + null, + null, + 33.6, + null, + null, + 22.6, + null, + null, + null, + 39.8, + null, + null, + null, + null, + null, + null, + null, + 37.6, + null, + null, + null, + null, + null, + 39.4, + null, + null, + null, + null, + null, + null, + 32.9, + null, + null, + 33.2, + null, + 34.7, + null, + null, + null, + 33.7, + null, + null, + 38.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 38.8, + null, + null, + null, + 32.7, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 36.7, + null, + 32, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 28, + null, + null, + 36.5, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 39.8, + null, + null, + null, + null, + null, + 32.9, + null, + null, + null, + null, + null, + 32, + null, + null, + 37.1, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ], + "layout": { + "height": 500, + "shapes": [ + { + "line": { + "color": "red" + }, + "opacity": 0.3, + "type": "line", + "x0": 0, + "x1": 1, + "xref": "x domain", + "y0": 40, + "y1": 40, + "yref": "y" + } + ], + "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": "#222" + } + }, + "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": "#222" + } + }, + "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, + "font": { + "color": "#fff" + } + }, + "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, + "#375a7f" + ], + [ + 0.1, + "#4f5e7d" + ], + [ + 0.2, + "#66627b" + ], + [ + 0.30000000000000004, + "#7e677a" + ], + [ + 0.4, + "#956b78" + ], + [ + 0.5, + "#ad6f76" + ], + [ + 0.6000000000000001, + "#c47374" + ], + [ + 0.7000000000000001, + "#dc7872" + ], + [ + 0.8, + "#f47c71" + ], + [ + 0.9, + "#ff806f" + ], + [ + 1, + "#ff846d" + ] + ], + "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": [ + "#324c71", + "#b71e1d", + "#00bd8b", + "#ec9d0e", + "#6eaff5" + ], + "font": { + "color": "#fff", + "family": "Lato,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"" + }, + "geo": { + "bgcolor": "#222", + "lakecolor": "#222", + "landcolor": "#222", + "showlakes": true, + "showland": true, + "subunitcolor": "#506784" + }, + "hoverlabel": { + "align": "left", + "font": { + "family": "Lato,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"" + } + }, + "hovermode": "closest", + "mapbox": { + "style": "dark" + }, + "paper_bgcolor": "#222", + "piecolorway": [ + "#324c71", + "#b71e1d", + "#00bd8b", + "#ec9d0e", + "#6eaff5" + ], + "plot_bgcolor": "#222", + "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": "#343434", + "gridwidth": 0.5, + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#343434", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#343434", + "gridwidth": 0.5, + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#343434", + "zerolinewidth": 2 + } + } + }, + "title": { + "font": { + "size": 50 + }, + "text": "Long Signal", + "x": 0.5, + "xanchor": "center" + }, + "xaxis": { + "rangeslider": { + "visible": false + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "long_strat = RSIRisingFalling(\n", " long_short=\"long\",\n", " rsi_length=np.array([14]),\n", - " rsi_is_below=np.array([100]),\n", + " rsi_is_below=np.array([40, 60, 80]),\n", ")\n", "long_strat.set_entries_exits_array(\n", " candles=candles,\n", @@ -81,7 +12980,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -100,7 +12999,7 @@ " sl_strategy_type=StopLossStrategyType.SLBasedOnCandleBody,\n", " sl_to_be_bool=False,\n", " starting_bar=50,\n", - " starting_available_balance=1000.0,\n", + " starting_equity=1000.0,\n", " static_leverage=None,\n", " tp_fee_type=\"limit\",\n", " tp_strategy_type=TakeProfitStrategyType.RiskReward,\n", @@ -109,7 +13008,7 @@ ")\n", "\n", "dos_arrays = DynamicOrderSettingsArrays(\n", - " max_trades=np.array([0]),\n", + " max_trades=np.array([4]),\n", " account_pct_risk_per_trade=np.array([3]),\n", " risk_reward=np.array([2, 5]),\n", " sl_based_on_add_pct=np.array([0.1]),\n", @@ -125,9 +13024,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting the backtest now ... and also here are some stats for your backtest.\n", + "\n", + "Total indicator settings to test: 3\n", + "Total order settings to test: 8\n", + "Total combinations of settings to test: 24\n", + "Total candles: 3,000\n", + "Total candles to test: 72,000\n" + ] + } + ], "source": [ "backtest_results = run_df_backtest(\n", " backtest_settings=backtest_settings,\n", @@ -141,38 +13054,648 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "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", + "
ind_set_idxdos_indextotal_tradeswinslossesgains_pctwin_rateqf_scorefees_paidending_eqtotal_pnl
911112.02191-96.13218.750-0.664296.94938.682-961.318
810141.034107-95.64624.113-0.692362.39343.535-956.465
1012124.02599-94.93220.161-0.696354.46250.680-949.320
1113108.01989-96.16917.593-0.720308.23738.313-961.687
1214134.029105-95.92821.642-0.746341.55140.717-959.283
131583.01172-96.67213.253-0.750234.39033.281-966.719
232789.01277-95.29513.483-0.750240.41347.053-952.947
151792.01280-96.18313.043-0.751248.97138.170-961.830
2024114.02490-96.79621.053-0.751282.51032.045-967.955
212584.01173-96.89713.095-0.755231.60331.029-968.971
\n", + "
" + ], + "text/plain": [ + " ind_set_idx dos_index total_trades wins losses gains_pct win_rate \\\n", + "9 1 1 112.0 21 91 -96.132 18.750 \n", + "8 1 0 141.0 34 107 -95.646 24.113 \n", + "10 1 2 124.0 25 99 -94.932 20.161 \n", + "11 1 3 108.0 19 89 -96.169 17.593 \n", + "12 1 4 134.0 29 105 -95.928 21.642 \n", + "13 1 5 83.0 11 72 -96.672 13.253 \n", + "23 2 7 89.0 12 77 -95.295 13.483 \n", + "15 1 7 92.0 12 80 -96.183 13.043 \n", + "20 2 4 114.0 24 90 -96.796 21.053 \n", + "21 2 5 84.0 11 73 -96.897 13.095 \n", + "\n", + " qf_score fees_paid ending_eq total_pnl \n", + "9 -0.664 296.949 38.682 -961.318 \n", + "8 -0.692 362.393 43.535 -956.465 \n", + "10 -0.696 354.462 50.680 -949.320 \n", + "11 -0.720 308.237 38.313 -961.687 \n", + "12 -0.746 341.551 40.717 -959.283 \n", + "13 -0.750 234.390 33.281 -966.719 \n", + "23 -0.750 240.413 47.053 -952.947 \n", + "15 -0.751 248.971 38.170 -961.830 \n", + "20 -0.751 282.510 32.045 -967.955 \n", + "21 -0.755 231.603 31.029 -968.971 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "backtest_results.sort_values(by=[\"qf_score\"], ascending=False).head(10)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DynamicOrderSettings(\n", + " max_trades = 4,\n", + " account_pct_risk_per_trade = 0.03,\n", + " risk_reward = 2.0,\n", + " sl_based_on_add_pct = 0.001,\n", + " sl_based_on_lookback = 20,\n", + " sl_bcb_type = 3,\n", + " sl_to_be_cb_type = 6,\n", + " sl_to_be_when_pct = 0.0,\n", + " trail_sl_bcb_type = 3,\n", + " trail_sl_by_pct = 0.005,\n", + " trail_sl_when_pct = 0.01,\n", + ")\n", + "IndicatorSettingsArrays(\n", + " rsi_is_above = nan,\n", + " rsi_is_below = 80.0,\n", + " rsi_length = 14,\n", + ")\n" + ] + } + ], "source": [ "order_records_df = or_backtest(\n", " backtest_settings=backtest_settings,\n", " candles=candles,\n", " dos_arrays=dos_arrays,\n", - " exchange_settings=exchange_settings,\n", + " exchange_settings=mufex_main.exchange_settings,\n", " static_os=static_os,\n", " strategy=long_strat,\n", " ind_set_index=2,\n", - " dos_index=4,\n", - " plot_results=True,\n", - " logger_bool=False,\n", + " dos_index=0,\n", + " plot_results=False,\n", + " logger_bool=True,\n", ")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "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", + "
ind_set_idxor_set_idxbar_idxtimestampdatetimeorder_statusequityavailable_balancecash_borrowedcash_used...entry_size_usdentry_priceexit_priceposition_size_assetposition_size_usdrealized_pnlsl_pctsl_pricetp_pcttp_price
0205417103639000002024-03-13 21:05:00EntryFilled1000.000950.7813733.98949.219...3783.20873257.1NaN0.0523783.208NaN0.772763.81.774485.2
1205917103654000002024-03-13 21:30:00EntryFilled1000.000836.75813283.465163.242...5929.51073084.0NaN0.1339712.718NaN0.672787.01.374161.8
2206417103669000002024-03-13 21:55:00EntryFilled1000.000654.98531055.566345.015...8404.39873164.2NaN0.24818117.116NaN0.472902.91.173976.0
3206717103678000002024-03-13 22:10:00EntryFilled1000.000417.57754030.360582.423...5440.10173205.6NaN0.32223557.217NaN0.472902.91.173998.8
4207317103696000002024-03-13 22:40:00StopLossFilled880.263880.263NaNNaN...NaNNaN72902.9NaNNaN-119.737NaNNaNNaNNaN
..................................................................
57420296617112375000002024-03-23 23:45:00StopLossFilled51.90851.908NaNNaN...NaNNaN64352.8NaNNaN-0.915NaNNaNNaNNaN
57520297017112387000002024-03-24 00:05:00EntryFilled51.90850.357139.5991.551...141.15064213.2NaN0.002141.150NaN0.663835.11.565181.1
57620297317112396000002024-03-24 00:20:00EntryFilled51.90847.195404.0814.713...128.04564260.1NaN0.004269.195NaN0.663835.11.665240.8
57720297817112411000002024-03-24 00:45:00EntryFilled51.90842.935748.5818.973...84.27864546.9NaN0.005353.473NaN0.763835.11.865438.9
57820298317112426000002024-03-24 01:10:00EntryFilled51.90837.5771177.72514.331...90.00264532.1NaN0.006443.475NaN0.863835.11.965548.9
\n", + "

579 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " ind_set_idx or_set_idx bar_idx timestamp datetime \\\n", + "0 2 0 54 1710363900000 2024-03-13 21:05:00 \n", + "1 2 0 59 1710365400000 2024-03-13 21:30:00 \n", + "2 2 0 64 1710366900000 2024-03-13 21:55:00 \n", + "3 2 0 67 1710367800000 2024-03-13 22:10:00 \n", + "4 2 0 73 1710369600000 2024-03-13 22:40:00 \n", + ".. ... ... ... ... ... \n", + "574 2 0 2966 1711237500000 2024-03-23 23:45:00 \n", + "575 2 0 2970 1711238700000 2024-03-24 00:05:00 \n", + "576 2 0 2973 1711239600000 2024-03-24 00:20:00 \n", + "577 2 0 2978 1711241100000 2024-03-24 00:45:00 \n", + "578 2 0 2983 1711242600000 2024-03-24 01:10:00 \n", + "\n", + " order_status equity available_balance cash_borrowed cash_used \\\n", + "0 EntryFilled 1000.000 950.781 3733.989 49.219 \n", + "1 EntryFilled 1000.000 836.758 13283.465 163.242 \n", + "2 EntryFilled 1000.000 654.985 31055.566 345.015 \n", + "3 EntryFilled 1000.000 417.577 54030.360 582.423 \n", + "4 StopLossFilled 880.263 880.263 NaN NaN \n", + ".. ... ... ... ... ... \n", + "574 StopLossFilled 51.908 51.908 NaN NaN \n", + "575 EntryFilled 51.908 50.357 139.599 1.551 \n", + "576 EntryFilled 51.908 47.195 404.081 4.713 \n", + "577 EntryFilled 51.908 42.935 748.581 8.973 \n", + "578 EntryFilled 51.908 37.577 1177.725 14.331 \n", + "\n", + " ... entry_size_usd entry_price exit_price position_size_asset \\\n", + "0 ... 3783.208 73257.1 NaN 0.052 \n", + "1 ... 5929.510 73084.0 NaN 0.133 \n", + "2 ... 8404.398 73164.2 NaN 0.248 \n", + "3 ... 5440.101 73205.6 NaN 0.322 \n", + "4 ... NaN NaN 72902.9 NaN \n", + ".. ... ... ... ... ... \n", + "574 ... NaN NaN 64352.8 NaN \n", + "575 ... 141.150 64213.2 NaN 0.002 \n", + "576 ... 128.045 64260.1 NaN 0.004 \n", + "577 ... 84.278 64546.9 NaN 0.005 \n", + "578 ... 90.002 64532.1 NaN 0.006 \n", + "\n", + " position_size_usd realized_pnl sl_pct sl_price tp_pct tp_price \n", + "0 3783.208 NaN 0.7 72763.8 1.7 74485.2 \n", + "1 9712.718 NaN 0.6 72787.0 1.3 74161.8 \n", + "2 18117.116 NaN 0.4 72902.9 1.1 73976.0 \n", + "3 23557.217 NaN 0.4 72902.9 1.1 73998.8 \n", + "4 NaN -119.737 NaN NaN NaN NaN \n", + ".. ... ... ... ... ... ... \n", + "574 NaN -0.915 NaN NaN NaN NaN \n", + "575 141.150 NaN 0.6 63835.1 1.5 65181.1 \n", + "576 269.195 NaN 0.6 63835.1 1.6 65240.8 \n", + "577 353.473 NaN 0.7 63835.1 1.8 65438.9 \n", + "578 443.475 NaN 0.8 63835.1 1.9 65548.9 \n", + "\n", + "[579 rows x 27 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "order_records_df" ] diff --git a/tests/strategy/full_strat_short.ipynb b/tests/strategy/full_strat_short.ipynb index b1cd3cf7..85accdbb 100644 --- a/tests/strategy/full_strat_short.ipynb +++ b/tests/strategy/full_strat_short.ipynb @@ -13711,7 +13711,7 @@ "dos_arrays = DynamicOrderSettingsArrays(\n", " max_available_balance_risk_pct=np.array([12]),\n", " max_trades=np.array([0]),\n", - " risk_account_pct_size=np.array([3]),\n", + " account_pct_risk_per_trade=np.array([3]),\n", " risk_reward=np.array([2, 5]),\n", " sl_based_on_add_pct=np.array([0.1, 0.5]),\n", " sl_based_on_lookback=np.array([20, 50]),\n", @@ -13985,7 +13985,7 @@ "DynamicOrderSettings(\n", " max_available_balance_risk_pct = 0.12,\n", " max_trades = 0,\n", - " risk_account_pct_size = 0.03,\n", + " account_pct_risk_per_trade = 0.03,\n", " risk_reward = 2.0,\n", " sl_based_on_add_pct = 0.005,\n", " sl_based_on_lookback = 20,\n", diff --git a/tests/strategy/nb_strat_tester_long.ipynb b/tests/strategy/nb_strat_tester_long.ipynb index e9de251e..ba11f37c 100644 --- a/tests/strategy/nb_strat_tester_long.ipynb +++ b/tests/strategy/nb_strat_tester_long.ipynb @@ -81,7 +81,7 @@ "dos_arrays = DynamicOrderSettingsArrays(\n", " max_equity_risk_pct=np.array([12]),\n", " max_trades=np.array([5]),\n", - " risk_account_pct_size=np.array([3]),\n", + " account_pct_risk_per_trade=np.array([3]),\n", " risk_reward=np.array([2.5]),\n", " sl_based_on_add_pct=np.array([0.05, 0.1, 0.15]),\n", " sl_based_on_lookback=np.array([20]),\n", @@ -178,7 +178,7 @@ " cash_used=0.0,\n", " equity=static_os.starting_equity,\n", " fees_paid=0.0,\n", - " possible_loss=0.0,\n", + " total_possible_loss=0.0,\n", " realized_pnl=0.0,\n", " total_trades=0,\n", ")\n", @@ -379,9 +379,9 @@ "nb_increase_position.py - nb_long_rpa_slbcb() - Not in a position\n", "nb_increase_position.py - nb_rpa_slbcb_np() - Calculating\n", "nb_increase_position.py - nb_c_pl_ra_ps() - Inside\n", - "nb_increase_position.py - nb_c_pl_ra_ps() - possible_loss= -30\n", + "nb_increase_position.py - nb_c_pl_ra_ps() - total_possible_loss= -30\n", "nb_increase_position.py - nb_c_pl_ra_ps() - max_equity_risk= -120\n", - "nb_increase_position.py - nb_c_pl_ra_ps() - PL is fine possible_loss= -30 max risk= -120 total trades= 1\n", + "nb_increase_position.py - nb_c_pl_ra_ps() - PL is fine total_possible_loss= -30 max risk= -120 total trades= 1\n", "nb_increase_position.py - nb_rpa_slbcb_np() - entry_size_usd= 6072.340\n", "nb_increase_position.py - nb_c_too_b_s() - Entry size is fineentry_size_asset= 0.162\n", "nb_increase_position.py - nb_rpa_slbcb_np() - sl_pct= 0.300\n", @@ -392,7 +392,7 @@ "entry_size_usd= 6072.340\n", "position_size_asset= 0.162\n", "position_size_usd= 6072.340\n", - "possible_loss= -30.000\n", + "total_possible_loss= -30.000\n", "total_trades= 1.000\n", "sl_pct= 0.300\n" ] @@ -406,7 +406,7 @@ " entry_size_usd,\n", " position_size_asset,\n", " position_size_usd,\n", - " possible_loss,\n", + " total_possible_loss,\n", " total_trades,\n", " sl_pct,\n", ") = nb_inc_pos_calculator(\n", @@ -416,7 +416,7 @@ " market_fee_pct=market_fee_pct,\n", " max_asset_size=max_asset_size,\n", " min_asset_size=min_asset_size,\n", - " possible_loss=account_state.possible_loss,\n", + " total_possible_loss=account_state.total_possible_loss,\n", " price_tick_step=price_tick_step,\n", " total_trades=account_state.total_trades,\n", " ),\n", @@ -428,7 +428,7 @@ " max_trades=dynamic_order_settings.max_trades,\n", " position_size_asset=order_result.position_size_asset,\n", " position_size_usd=order_result.position_size_usd,\n", - " risk_account_pct_size=dynamic_order_settings.risk_account_pct_size,\n", + " account_pct_risk_per_trade=dynamic_order_settings.account_pct_risk_per_trade,\n", " sl_price=sl_price,\n", " ),\n", " logger=logger,\n", @@ -518,7 +518,7 @@ " market_fee_pct=market_fee_pct,\n", " nb_get_tp_price=nb_get_tp_price,\n", " position_size_usd=position_size_usd,\n", - " possible_loss=possible_loss,\n", + " total_possible_loss=total_possible_loss,\n", " price_tick_step=price_tick_step,\n", " risk_reward=dynamic_order_settings.risk_reward,\n", " stringer=stringer,\n", @@ -544,7 +544,7 @@ " cash_used=cash_used,\n", " equity=account_state.equity,\n", " fees_paid=0.0,\n", - " possible_loss=possible_loss,\n", + " total_possible_loss=total_possible_loss,\n", " realized_pnl=0.0,\n", " total_trades=total_trades,\n", ")\n", diff --git a/tests/strategy/nb_strat_tester_short.ipynb b/tests/strategy/nb_strat_tester_short.ipynb index 32ba2806..798b6ed7 100644 --- a/tests/strategy/nb_strat_tester_short.ipynb +++ b/tests/strategy/nb_strat_tester_short.ipynb @@ -80,7 +80,7 @@ "dos_arrays = DynamicOrderSettingsArrays(\n", " max_equity_risk_pct=np.array([12]),\n", " max_trades=np.array([5]),\n", - " risk_account_pct_size=np.array([3]),\n", + " account_pct_risk_per_trade=np.array([3]),\n", " risk_reward=np.array([2.5]),\n", " sl_based_on_add_pct=np.array([0.05, 0.1, 0.15]),\n", " sl_based_on_lookback=np.array([20]),\n", @@ -170,7 +170,7 @@ " cash_used=0.0,\n", " equity=static_os.starting_equity,\n", " fees_paid=0.0,\n", - " possible_loss=0.0,\n", + " total_possible_loss=0.0,\n", " realized_pnl=0.0,\n", " total_trades=0,\n", ")\n", @@ -399,7 +399,7 @@ " entry_size_usd,\n", " position_size_asset,\n", " position_size_usd,\n", - " possible_loss,\n", + " total_possible_loss,\n", " total_trades,\n", " sl_pct,\n", ") = nb_inc_pos_calculator(\n", @@ -409,7 +409,7 @@ " market_fee_pct=market_fee_pct,\n", " max_asset_size=max_asset_size,\n", " min_asset_size=min_asset_size,\n", - " possible_loss=account_state.possible_loss,\n", + " total_possible_loss=account_state.total_possible_loss,\n", " price_tick_step=price_tick_step,\n", " total_trades=account_state.total_trades,\n", " ),\n", @@ -421,7 +421,7 @@ " max_trades=dynamic_order_settings.max_trades,\n", " position_size_asset=order_result.position_size_asset,\n", " position_size_usd=order_result.position_size_usd,\n", - " risk_account_pct_size=dynamic_order_settings.risk_account_pct_size,\n", + " account_pct_risk_per_trade=dynamic_order_settings.account_pct_risk_per_trade,\n", " sl_price=sl_price,\n", " ),\n", " logger=logger,\n", @@ -494,7 +494,7 @@ " market_fee_pct=market_fee_pct,\n", " nb_get_tp_price=nb_get_tp_price,\n", " position_size_usd=position_size_usd,\n", - " possible_loss=possible_loss,\n", + " total_possible_loss=total_possible_loss,\n", " price_tick_step=price_tick_step,\n", " risk_reward=dynamic_order_settings.risk_reward,\n", " stringer=stringer,\n", @@ -520,7 +520,7 @@ " cash_used=cash_used,\n", " equity=account_state.equity,\n", " fees_paid=0.0,\n", - " possible_loss=possible_loss,\n", + " total_possible_loss=total_possible_loss,\n", " realized_pnl=0.0,\n", " total_trades=total_trades,\n", ")\n", diff --git a/tests/strategy/nb_video_strat.ipynb b/tests/strategy/nb_video_strat.ipynb index a0cb9b7f..0cccb525 100644 --- a/tests/strategy/nb_video_strat.ipynb +++ b/tests/strategy/nb_video_strat.ipynb @@ -248,7 +248,7 @@ "dos_arrays = DynamicOrderSettingsArrays(\n", " max_equity_risk_pct=np.array([2, 4, 6, 8]) * 3,\n", " max_trades=np.array([5]),\n", - " risk_account_pct_size=np.array([3]),\n", + " account_pct_risk_per_trade=np.array([3]),\n", " risk_reward=np.array([2, 4, 8, 10]),\n", " sl_based_on_add_pct=np.array([0.05, 0.1, 0.2]),\n", " sl_based_on_lookback=np.array([20, 40, 60]),\n", diff --git a/tests/strategy/video_template.ipynb b/tests/strategy/video_template.ipynb index 30b06f95..74db284c 100644 --- a/tests/strategy/video_template.ipynb +++ b/tests/strategy/video_template.ipynb @@ -235,7 +235,7 @@ "dos_arrays = DynamicOrderSettingsArrays(\n", " max_equity_risk_pct=np.array([12]),\n", " max_trades=np.array([5]),\n", - " risk_account_pct_size=np.array([3]),\n", + " account_pct_risk_per_trade=np.array([3]),\n", " risk_reward=np.array([2.5]),\n", " sl_based_on_add_pct=np.array([0.05, 0.1, 0.15]),\n", " sl_based_on_lookback=np.array([20]),\n",