From c6defdef71cab2cd7b3daa559673de4c3080b472 Mon Sep 17 00:00:00 2001 From: marcvanduyn Date: Fri, 22 Mar 2024 13:59:06 +0100 Subject: [PATCH] Fix ohlcv data sources tests --- .../models/market_data_sources/csv.py | 5 + .../services/order_service/order_service.py | 9 +- tests/app/algorithm/test_close_position.py | 2 +- tests/app/algorithm/test_close_trade.py | 2 +- tests/app/algorithm/test_get_closed_trades.py | 2 +- tests/app/algorithm/test_get_open_trades.py | 2 +- tests/app/algorithm/test_get_trades.py | 2 +- tests/domain/models/test_trade.py | 12 +- ..._15m_2023-12-14:22:00_2023-12-25:00:00.csv | 970 ++++++++++++++++++ .../test_market_data_source_service.py | 2 +- tests/services/test_order_backtest_service.py | 34 +- 11 files changed, 1010 insertions(+), 32 deletions(-) create mode 100644 tests/resources/market_data_sources/OHLCV_BTC-EUR_BINANCE_15m_2023-12-14:22:00_2023-12-25:00:00.csv diff --git a/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py b/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py index 198d4f44..545d1aa0 100644 --- a/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +++ b/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py @@ -151,6 +151,7 @@ def get_data(self, index_datetime=None, **kwargs): if index_datetime is None: index_datetime = datetime.utcnow() + index_datetime = pd.to_datetime(index_datetime, utc=True) df = pd.read_csv(self._csv_file_path) # Convert the 'Datetime' column to datetime type if @@ -161,6 +162,10 @@ def get_data(self, index_datetime=None, **kwargs): # Filter rows based on the start and end dates filtered_df = df[(df['Datetime'] <= index_datetime)] + + if len(filtered_df) == 0: + return None + last_row = filtered_df.iloc[-1] return { "symbol": self.symbol, diff --git a/investing_algorithm_framework/services/order_service/order_service.py b/investing_algorithm_framework/services/order_service/order_service.py index f7610669..ce635e5e 100644 --- a/investing_algorithm_framework/services/order_service/order_service.py +++ b/investing_algorithm_framework/services/order_service/order_service.py @@ -1,5 +1,6 @@ import logging from datetime import datetime +from dateutil.tz import tzutc from queue import PriorityQueue from investing_algorithm_framework.domain import OrderType, OrderSide, \ @@ -139,7 +140,7 @@ def update(self, object_id, data): if "updated_at" in data: created_at = data["updated_at"] else: - created_at = datetime.now() + created_at = datetime.now(tz=tzutc()) self.create_snapshot(portfolio.id, created_at=created_at) return new_order @@ -187,7 +188,7 @@ def execute_order(self, order_id, portfolio): data = external_order.to_dict() data["status"] = OrderStatus.OPEN.value - data["updated_at"] = datetime.now() + data["updated_at"] = datetime.now(tz=tzutc()) return self.update(order_id, data) except Exception as e: logger.error("Error executing order: {}".format(e)) @@ -195,7 +196,7 @@ def execute_order(self, order_id, portfolio): order_id, { "status": OrderStatus.REJECTED.value, - "updated_at": datetime.now() + "updated_at": datetime.now(tz=tzutc()) } ) @@ -744,7 +745,7 @@ def _close_trades(self, amount_to_close, sell_order): def create_snapshot(self, portfolio_id, created_at=None): if created_at is None: - created_at = datetime.utcnow() + created_at = datetime.now(tz=tzutc()) portfolio = self.portfolio_repository.get(portfolio_id) pending_orders = self.get_all( diff --git a/tests/app/algorithm/test_close_position.py b/tests/app/algorithm/test_close_position.py index 17a0af4c..aeff0266 100644 --- a/tests/app/algorithm/test_close_position.py +++ b/tests/app/algorithm/test_close_position.py @@ -40,7 +40,7 @@ def setUp(self) -> None: csv_file_path=os.path.join( self.resource_dir, "market_data_sources", - "TICKER_BTC-EUR_BITVAVO_2021-06-02:00:00_2021-06-26:00:00.csv" + "TICKER_BTC-EUR_BINANCE_2023-08-23:22:00_2023-12-02:00:00.csv" ) )) self.app.add_algorithm(Algorithm()) diff --git a/tests/app/algorithm/test_close_trade.py b/tests/app/algorithm/test_close_trade.py index f7238cc8..5f1f4f30 100644 --- a/tests/app/algorithm/test_close_trade.py +++ b/tests/app/algorithm/test_close_trade.py @@ -40,7 +40,7 @@ def setUp(self) -> None: csv_file_path=os.path.join( self.resource_dir, "market_data_sources", - "TICKER_BTC-EUR_BITVAVO_2021-06-02:00:00_2021-06-26:00:00.csv" + "TICKER_BTC-EUR_BINANCE_2023-08-23:22:00_2023-12-02:00:00.csv" ) )) self.app.add_algorithm(Algorithm()) diff --git a/tests/app/algorithm/test_get_closed_trades.py b/tests/app/algorithm/test_get_closed_trades.py index 224d8751..8a233296 100644 --- a/tests/app/algorithm/test_get_closed_trades.py +++ b/tests/app/algorithm/test_get_closed_trades.py @@ -38,7 +38,7 @@ def setUp(self) -> None: csv_file_path=os.path.join( self.resource_dir, "market_data_sources", - "TICKER_BTC-EUR_BITVAVO_2021-06-02:00:00_2021-06-26:00:00.csv" + "TICKER_BTC-EUR_BINANCE_2023-08-23:22:00_2023-12-02:00:00.csv" ) )) self.app.add_market_credential( diff --git a/tests/app/algorithm/test_get_open_trades.py b/tests/app/algorithm/test_get_open_trades.py index 5074875c..8dd9a1a6 100644 --- a/tests/app/algorithm/test_get_open_trades.py +++ b/tests/app/algorithm/test_get_open_trades.py @@ -39,7 +39,7 @@ def setUp(self) -> None: csv_file_path=os.path.join( self.resource_dir, "market_data_sources", - "TICKER_BTC-EUR_BITVAVO_2021-06-02:00:00_2021-06-26:00:00.csv" + "TICKER_BTC-EUR_BINANCE_2023-08-23:22:00_2023-12-02:00:00.csv" ) )) self.app.add_market_credential( diff --git a/tests/app/algorithm/test_get_trades.py b/tests/app/algorithm/test_get_trades.py index 77dda7dc..a99fcb9e 100644 --- a/tests/app/algorithm/test_get_trades.py +++ b/tests/app/algorithm/test_get_trades.py @@ -39,7 +39,7 @@ def setUp(self) -> None: csv_file_path=os.path.join( self.resource_dir, "market_data_sources", - "TICKER_BTC-EUR_BITVAVO_2021-06-02:00:00_2021-06-26:00:00.csv" + "TICKER_BTC-EUR_BINANCE_2023-08-23:22:00_2023-12-02:00:00.csv" ) )) self.app.add_algorithm(Algorithm()) diff --git a/tests/domain/models/test_trade.py b/tests/domain/models/test_trade.py index c8cb3392..7e4b50c3 100644 --- a/tests/domain/models/test_trade.py +++ b/tests/domain/models/test_trade.py @@ -1,5 +1,6 @@ from datetime import datetime, timedelta from unittest import TestCase +from dateutil.tz import tzutc import pandas as pd import os @@ -29,7 +30,7 @@ def test_trade(self): self.assertEqual(trade.opened_at, trade_opened_at) def test_stop_loss_manual(self): - current_datetime = datetime(2021, 6, 20, 00, 00, 0) + current_datetime = datetime(2023, 8, 26, 00, 00, 0, tzinfo=tzutc()) resource_dir = os.path.abspath( os.path.join( os.path.join( @@ -54,7 +55,8 @@ def test_stop_loss_manual(self): end_date=current_datetime, csv_file_path=f"{resource_dir}/" "market_data_sources/" - "OHLCV_BTC-EUR_15m_2021-05-17:00:00_2021-06-26:00:00.csv" + "OHLCV_BTC-EUR_BINANCE_2h_2023-08-07:07" + ":59_2023-12-02:00:00.csv" ) csv_ticker_market_data_source = CSVTickerMarketDataSource( identifier="BTC", @@ -62,10 +64,10 @@ def test_stop_loss_manual(self): symbol="BTC/EUR", csv_file_path=f"{resource_dir}" "/market_data_sources/" - "TICKER_BTC-EUR_BITVAVO_2021-06-02:00" - ":00_2021-06-26:00:00.csv" + "TICKER_BTC-EUR_BINANCE_2023-08" + "-23:22:00_2023-12-02:00:00.csv" ) - trade_opened_at = datetime(2021, 6, 17, 12, 0, 0) + trade_opened_at = datetime(2023, 8, 17, 12, 0, 0, tzinfo=tzutc()) open_price = 32589 trade = Trade( buy_order_id=1, diff --git a/tests/resources/market_data_sources/OHLCV_BTC-EUR_BINANCE_15m_2023-12-14:22:00_2023-12-25:00:00.csv b/tests/resources/market_data_sources/OHLCV_BTC-EUR_BINANCE_15m_2023-12-14:22:00_2023-12-25:00:00.csv new file mode 100644 index 00000000..c989399f --- /dev/null +++ b/tests/resources/market_data_sources/OHLCV_BTC-EUR_BINANCE_15m_2023-12-14:22:00_2023-12-25:00:00.csv @@ -0,0 +1,970 @@ +Datetime,Open,High,Low,Close,Volume +2023-12-14 22:00:00+00:00,39100.0,39189.55,39057.71,39189.55,2.25035 +2023-12-14 22:15:00+00:00,39195.79,39236.46,39126.93,39137.79,1.92944 +2023-12-14 22:30:00+00:00,39142.4,39222.4,39142.36,39161.67,0.96785 +2023-12-14 22:45:00+00:00,39160.24,39246.26,39160.24,39202.63,0.76673 +2023-12-14 23:00:00+00:00,39209.46,39305.64,39207.07,39229.76,0.79119 +2023-12-14 23:15:00+00:00,39224.96,39294.6,39160.24,39192.18,0.92677 +2023-12-14 23:30:00+00:00,39191.27,39191.27,39084.45,39117.64,1.43354 +2023-12-14 23:45:00+00:00,39120.3,39160.89,39073.6,39151.11,1.67524 +2023-12-15 00:00:00+00:00,39158.21,39188.05,39104.87,39178.29,0.49335 +2023-12-15 00:15:00+00:00,39187.42,39246.16,39164.68,39245.52,0.84414 +2023-12-15 00:30:00+00:00,39241.0,39241.0,39095.72,39137.32,0.50505 +2023-12-15 00:45:00+00:00,39151.47,39194.76,39067.4,39067.4,1.55358 +2023-12-15 01:00:00+00:00,39072.93,39123.73,39072.93,39112.46,0.25896 +2023-12-15 01:15:00+00:00,39115.95,39208.48,39115.95,39202.42,1.14945 +2023-12-15 01:30:00+00:00,39206.74,39211.54,39136.06,39138.28,0.54573 +2023-12-15 01:45:00+00:00,39155.94,39160.12,39095.7,39133.28,1.74717 +2023-12-15 02:00:00+00:00,39150.15,39164.56,38994.52,39008.79,0.66182 +2023-12-15 02:15:00+00:00,39026.38,39056.67,38986.81,39023.16,0.80843 +2023-12-15 02:30:00+00:00,39016.43,39063.8,38998.72,39062.41,0.24632 +2023-12-15 02:45:00+00:00,39064.99,39064.99,38996.14,38998.53,0.38179 +2023-12-15 03:00:00+00:00,38990.07,39011.15,38967.43,38982.06,0.64302 +2023-12-15 03:15:00+00:00,38971.93,38971.93,38725.6,38925.03,3.99347 +2023-12-15 03:30:00+00:00,38945.83,38945.83,38852.34,38935.25,0.71094 +2023-12-15 03:45:00+00:00,38922.8,38950.61,38878.17,38931.13,0.77336 +2023-12-15 04:00:00+00:00,38935.02,38941.5,38849.69,38912.16,0.32987 +2023-12-15 04:15:00+00:00,38930.2,38930.2,38851.95,38915.33,0.80297 +2023-12-15 04:30:00+00:00,38908.24,38918.42,38861.43,38871.19,0.81997 +2023-12-15 04:45:00+00:00,38875.83,38957.28,38864.44,38933.19,0.78211 +2023-12-15 05:00:00+00:00,38951.39,39013.74,38938.36,38950.18,1.0549 +2023-12-15 05:15:00+00:00,38921.87,38976.38,38892.1,38898.9,0.47329 +2023-12-15 05:30:00+00:00,38899.74,38899.74,38767.14,38815.63,2.13139 +2023-12-15 05:45:00+00:00,38819.96,38843.64,38771.36,38802.56,1.90694 +2023-12-15 06:00:00+00:00,38808.46,38846.66,38792.66,38807.35,1.13561 +2023-12-15 06:15:00+00:00,38809.95,38838.32,38739.99,38831.89,1.52963 +2023-12-15 06:30:00+00:00,38832.31,38839.72,38771.67,38777.96,1.19033 +2023-12-15 06:45:00+00:00,38783.98,38824.68,38761.67,38773.02,1.53758 +2023-12-15 07:00:00+00:00,38777.24,38832.14,38763.31,38823.38,0.80825 +2023-12-15 07:15:00+00:00,38819.39,38901.64,38814.19,38877.06,1.49995 +2023-12-15 07:30:00+00:00,38879.39,38885.75,38811.78,38838.95,2.23735 +2023-12-15 07:45:00+00:00,38848.83,38886.3,38804.88,38886.1,0.41555 +2023-12-15 08:00:00+00:00,38878.37,38927.79,38812.67,38825.93,1.48409 +2023-12-15 08:15:00+00:00,38828.42,39008.92,38828.42,38979.91,5.47409 +2023-12-15 08:30:00+00:00,38987.57,39073.94,38987.57,39073.94,3.7093 +2023-12-15 08:45:00+00:00,39076.99,39178.46,39076.99,39172.86,4.19757 +2023-12-15 09:00:00+00:00,39174.73,39300.0,39143.54,39287.17,3.08622 +2023-12-15 09:15:00+00:00,39273.99,39273.99,39170.98,39179.9,3.74289 +2023-12-15 09:30:00+00:00,39171.38,39221.99,39157.26,39211.67,2.38251 +2023-12-15 09:45:00+00:00,39201.95,39234.28,39109.52,39120.4,2.8906 +2023-12-15 10:00:00+00:00,39129.21,39173.26,39115.69,39142.02,2.24934 +2023-12-15 10:15:00+00:00,39142.03,39167.58,39097.72,39156.54,5.96554 +2023-12-15 10:30:00+00:00,39156.18,39159.98,39043.66,39136.46,3.10558 +2023-12-15 10:45:00+00:00,39144.34,39155.69,39102.62,39129.26,3.03655 +2023-12-15 11:00:00+00:00,39126.39,39140.9,39030.01,39074.69,1.71026 +2023-12-15 11:15:00+00:00,39074.84,39080.88,38998.19,39020.6,2.05227 +2023-12-15 11:30:00+00:00,39033.79,39070.98,39022.22,39051.4,1.09561 +2023-12-15 11:45:00+00:00,39047.73,39047.73,39014.41,39032.03,1.90381 +2023-12-15 12:00:00+00:00,39029.54,39029.54,38923.22,38930.15,2.7417 +2023-12-15 12:15:00+00:00,38920.95,39025.41,38907.42,39024.36,1.63503 +2023-12-15 12:30:00+00:00,39030.68,39057.1,38998.64,39042.4,1.13589 +2023-12-15 12:45:00+00:00,39047.05,39055.46,38941.22,38950.12,1.52624 +2023-12-15 13:00:00+00:00,38958.48,38969.75,38807.34,38934.27,2.48859 +2023-12-15 13:15:00+00:00,38934.85,38959.93,38808.28,38849.11,1.39204 +2023-12-15 13:30:00+00:00,38842.07,38881.67,38756.75,38808.07,10.08832 +2023-12-15 13:45:00+00:00,38792.75,38844.68,38659.14,38764.8,4.14371 +2023-12-15 14:00:00+00:00,38757.85,38818.78,38718.34,38809.43,4.0068 +2023-12-15 14:15:00+00:00,38802.64,38802.67,38621.92,38650.45,6.94247 +2023-12-15 14:30:00+00:00,38666.87,38702.09,38538.9,38615.72,7.3631 +2023-12-15 14:45:00+00:00,38611.14,38670.32,38502.11,38658.36,4.62101 +2023-12-15 15:00:00+00:00,38657.16,38736.73,38550.84,38583.82,2.50173 +2023-12-15 15:15:00+00:00,38580.92,38633.99,38472.48,38521.07,5.66228 +2023-12-15 15:30:00+00:00,38514.07,38517.91,38248.38,38345.77,10.04536 +2023-12-15 15:45:00+00:00,38317.58,38427.32,38250.0,38402.02,5.73895 +2023-12-15 16:00:00+00:00,38420.23,38500.31,38373.9,38417.65,4.26629 +2023-12-15 16:15:00+00:00,38410.53,38602.26,38384.73,38504.6,2.65684 +2023-12-15 16:30:00+00:00,38503.84,38516.65,38450.01,38460.0,1.97999 +2023-12-15 16:45:00+00:00,38450.0,38454.45,38281.39,38355.1,2.90183 +2023-12-15 17:00:00+00:00,38362.18,38478.39,38332.02,38454.99,3.13168 +2023-12-15 17:15:00+00:00,38457.37,38555.6,38410.81,38499.36,4.49227 +2023-12-15 17:30:00+00:00,38498.95,38571.27,38464.79,38469.76,2.44359 +2023-12-15 17:45:00+00:00,38462.59,38465.44,38364.53,38392.29,1.82633 +2023-12-15 18:00:00+00:00,38373.61,38470.37,38369.05,38458.0,1.44368 +2023-12-15 18:15:00+00:00,38451.28,38583.01,38451.28,38521.93,4.74364 +2023-12-15 18:30:00+00:00,38524.82,38611.61,38500.0,38600.29,1.76305 +2023-12-15 18:45:00+00:00,38600.44,38705.99,38594.19,38694.95,2.34391 +2023-12-15 19:00:00+00:00,38696.37,38700.61,38632.62,38664.47,0.6308 +2023-12-15 19:15:00+00:00,38654.05,38697.6,38598.92,38697.6,3.26833 +2023-12-15 19:30:00+00:00,38696.85,38768.47,38668.49,38670.2,3.11239 +2023-12-15 19:45:00+00:00,38668.56,38672.26,38564.02,38659.45,6.85901 +2023-12-15 20:00:00+00:00,38660.45,38697.76,38640.04,38689.76,1.41998 +2023-12-15 20:15:00+00:00,38690.01,38780.01,38689.02,38745.94,3.04764 +2023-12-15 20:30:00+00:00,38742.89,38743.23,38668.63,38688.97,2.30103 +2023-12-15 20:45:00+00:00,38704.64,38812.78,38692.63,38791.82,1.62191 +2023-12-15 21:00:00+00:00,38791.82,38810.08,38758.67,38777.45,0.83142 +2023-12-15 21:15:00+00:00,38771.57,38799.86,38732.48,38772.83,1.49553 +2023-12-15 21:30:00+00:00,38772.84,38816.53,38706.94,38767.71,0.75798 +2023-12-15 21:45:00+00:00,38757.2,38805.01,38716.9,38799.04,1.73261 +2023-12-15 22:00:00+00:00,38802.44,38820.21,38744.47,38753.29,4.92629 +2023-12-15 22:15:00+00:00,38751.13,38774.21,38584.93,38598.2,5.41262 +2023-12-15 22:30:00+00:00,38592.23,38674.12,38526.91,38674.12,2.96492 +2023-12-15 22:45:00+00:00,38674.12,38761.89,38625.44,38627.29,0.65205 +2023-12-15 23:00:00+00:00,38628.26,38729.86,38628.26,38721.55,0.82905 +2023-12-15 23:15:00+00:00,38747.6,38747.6,38523.87,38570.37,2.87934 +2023-12-15 23:30:00+00:00,38571.47,38598.13,38501.0,38548.28,3.13122 +2023-12-15 23:45:00+00:00,38563.18,38604.06,38511.89,38521.35,0.76466 +2023-12-16 00:00:00+00:00,38547.32,38624.26,38526.52,38616.17,1.87288 +2023-12-16 00:15:00+00:00,38621.25,38646.49,38478.16,38491.24,0.83872 +2023-12-16 00:30:00+00:00,38486.6,38501.21,38270.0,38396.82,7.97893 +2023-12-16 00:45:00+00:00,38395.42,38524.27,38365.02,38513.95,1.23354 +2023-12-16 01:00:00+00:00,38508.23,38662.28,38507.9,38656.71,2.2743 +2023-12-16 01:15:00+00:00,38659.86,38738.97,38650.23,38691.25,1.36671 +2023-12-16 01:30:00+00:00,38711.9,38722.76,38674.62,38703.52,0.29 +2023-12-16 01:45:00+00:00,38693.7,38732.73,38661.14,38670.75,0.7511 +2023-12-16 02:00:00+00:00,38670.65,38827.27,38661.74,38733.84,3.50706 +2023-12-16 02:15:00+00:00,38736.69,38788.73,38686.4,38757.28,1.73305 +2023-12-16 02:30:00+00:00,38744.09,38744.09,38696.64,38708.93,1.2348 +2023-12-16 02:45:00+00:00,38717.09,38752.1,38703.31,38752.1,0.60273 +2023-12-16 03:00:00+00:00,38756.35,38770.64,38729.01,38748.31,2.22797 +2023-12-16 03:15:00+00:00,38752.65,38771.63,38710.43,38771.63,0.70321 +2023-12-16 03:30:00+00:00,38796.88,38824.09,38779.8,38813.77,0.67873 +2023-12-16 03:45:00+00:00,38830.33,38982.48,38830.33,38912.76,4.37119 +2023-12-16 04:00:00+00:00,38935.89,38943.41,38858.06,38901.09,0.95272 +2023-12-16 04:15:00+00:00,38899.89,38938.2,38881.62,38906.29,0.34669 +2023-12-16 04:30:00+00:00,38901.63,38901.63,38848.78,38869.0,0.21627 +2023-12-16 04:45:00+00:00,38867.63,38886.0,38837.11,38878.48,0.68225 +2023-12-16 05:00:00+00:00,38876.64,38897.15,38851.59,38854.43,0.39946 +2023-12-16 05:15:00+00:00,38853.43,38869.92,38825.56,38825.56,0.87444 +2023-12-16 05:30:00+00:00,38839.07,38843.37,38779.21,38788.52,1.41874 +2023-12-16 05:45:00+00:00,38794.86,38836.93,38792.02,38826.67,0.54326 +2023-12-16 06:00:00+00:00,38837.58,38878.85,38800.47,38801.88,1.18896 +2023-12-16 06:15:00+00:00,38805.08,38806.18,38743.67,38775.32,0.72066 +2023-12-16 06:30:00+00:00,38776.13,38788.84,38711.57,38749.1,0.7719 +2023-12-16 06:45:00+00:00,38771.44,38778.57,38754.87,38775.54,0.14446 +2023-12-16 07:00:00+00:00,38763.06,38835.41,38754.78,38832.99,0.44791 +2023-12-16 07:15:00+00:00,38819.8,38828.25,38742.53,38768.55,0.55582 +2023-12-16 07:30:00+00:00,38759.3,38782.67,38742.58,38766.75,0.48703 +2023-12-16 07:45:00+00:00,38770.9,38802.64,38752.34,38794.89,0.51688 +2023-12-16 08:00:00+00:00,38795.79,38828.94,38761.95,38824.18,0.44038 +2023-12-16 08:15:00+00:00,38824.18,38827.77,38767.43,38781.73,1.65242 +2023-12-16 08:30:00+00:00,38784.82,38785.05,38689.49,38722.82,1.723 +2023-12-16 08:45:00+00:00,38720.44,38770.76,38717.84,38761.36,0.73359 +2023-12-16 09:00:00+00:00,38764.01,38860.4,38764.01,38840.72,1.07469 +2023-12-16 09:15:00+00:00,38845.28,38850.28,38809.72,38822.61,0.72666 +2023-12-16 09:30:00+00:00,38826.85,38838.5,38767.5,38800.12,0.66904 +2023-12-16 09:45:00+00:00,38794.64,38808.37,38761.9,38787.49,0.85644 +2023-12-16 10:00:00+00:00,38795.51,38825.29,38775.23,38784.23,0.80309 +2023-12-16 10:15:00+00:00,38785.64,38793.71,38764.64,38778.76,0.39897 +2023-12-16 10:30:00+00:00,38783.41,38803.03,38778.4,38796.99,1.13789 +2023-12-16 10:45:00+00:00,38808.11,38828.79,38791.14,38821.56,0.6265 +2023-12-16 11:00:00+00:00,38821.56,38853.18,38785.2,38795.88,0.79338 +2023-12-16 11:15:00+00:00,38803.14,38845.79,38795.0,38822.19,1.54604 +2023-12-16 11:30:00+00:00,38835.39,38881.24,38828.44,38847.82,0.78127 +2023-12-16 11:45:00+00:00,38853.89,38884.19,38847.85,38872.73,1.26279 +2023-12-16 12:00:00+00:00,38878.76,38885.31,38809.0,38821.07,1.32943 +2023-12-16 12:15:00+00:00,38823.01,38890.41,38817.34,38871.63,5.21268 +2023-12-16 12:30:00+00:00,38872.51,39009.38,38868.13,38983.99,2.55642 +2023-12-16 12:45:00+00:00,38995.18,38996.28,38917.67,38939.79,1.34263 +2023-12-16 13:00:00+00:00,38947.15,39059.77,38936.96,38984.85,5.57618 +2023-12-16 13:15:00+00:00,38995.19,38997.8,38861.56,38888.76,2.62163 +2023-12-16 13:30:00+00:00,38888.77,38913.12,38787.12,38872.65,3.68659 +2023-12-16 13:45:00+00:00,38872.65,38934.05,38872.65,38911.57,1.72882 +2023-12-16 14:00:00+00:00,38920.33,38966.55,38878.77,38933.35,1.00798 +2023-12-16 14:15:00+00:00,38934.11,38941.8,38837.08,38842.76,2.33842 +2023-12-16 14:30:00+00:00,38845.59,38862.84,38830.0,38861.64,1.99295 +2023-12-16 14:45:00+00:00,38861.64,38873.54,38831.09,38861.76,2.19682 +2023-12-16 15:00:00+00:00,38861.18,38933.4,38851.6,38864.72,2.81658 +2023-12-16 15:15:00+00:00,38858.14,38865.09,38802.99,38854.44,2.60712 +2023-12-16 15:30:00+00:00,38854.47,38993.18,38844.56,38932.68,1.09301 +2023-12-16 15:45:00+00:00,38922.28,39079.05,38905.12,39066.37,3.69001 +2023-12-16 16:00:00+00:00,39071.37,39094.0,38956.2,38963.87,2.06734 +2023-12-16 16:15:00+00:00,38963.11,39046.91,38963.11,39026.29,0.86076 +2023-12-16 16:30:00+00:00,39029.97,39174.98,38986.4,39143.39,2.84865 +2023-12-16 16:45:00+00:00,39145.57,39145.57,39000.0,39031.53,1.07781 +2023-12-16 17:00:00+00:00,39031.18,39034.8,38963.95,38971.81,1.39095 +2023-12-16 17:15:00+00:00,38969.96,39037.92,38963.79,38998.41,0.49874 +2023-12-16 17:30:00+00:00,39011.16,39011.17,38920.43,38982.01,0.86834 +2023-12-16 17:45:00+00:00,38978.64,39019.5,38951.57,38966.83,1.2677 +2023-12-16 18:00:00+00:00,38966.83,38966.83,38887.91,38900.17,1.88246 +2023-12-16 18:15:00+00:00,38889.15,38914.12,38833.24,38871.18,1.11452 +2023-12-16 18:30:00+00:00,38863.56,38929.51,38858.27,38912.01,1.10296 +2023-12-16 18:45:00+00:00,38916.51,38942.36,38842.14,38933.28,1.09705 +2023-12-16 19:00:00+00:00,38922.88,38986.36,38867.34,38884.16,0.73322 +2023-12-16 19:15:00+00:00,38880.66,38950.35,38869.87,38896.45,1.28539 +2023-12-16 19:30:00+00:00,38899.36,38912.19,38800.28,38821.63,1.21743 +2023-12-16 19:45:00+00:00,38821.63,38874.4,38809.74,38809.8,0.45654 +2023-12-16 20:00:00+00:00,38800.07,38854.88,38783.0,38805.96,0.63513 +2023-12-16 20:15:00+00:00,38807.84,38807.84,38759.56,38785.06,1.63378 +2023-12-16 20:30:00+00:00,38781.56,38807.9,38755.57,38767.38,0.78453 +2023-12-16 20:45:00+00:00,38769.37,38820.09,38721.97,38795.14,1.1935 +2023-12-16 21:00:00+00:00,38803.97,38818.07,38689.14,38798.53,2.11447 +2023-12-16 21:15:00+00:00,38804.67,38815.62,38731.07,38749.47,4.49177 +2023-12-16 21:30:00+00:00,38749.47,38811.66,38718.35,38718.35,2.02621 +2023-12-16 21:45:00+00:00,38718.35,38796.79,38655.2,38770.34,4.84391 +2023-12-16 22:00:00+00:00,38787.93,38787.93,38600.07,38720.1,1.9227 +2023-12-16 22:15:00+00:00,38731.4,38747.42,38694.04,38739.44,0.41578 +2023-12-16 22:30:00+00:00,38738.58,38760.09,38667.52,38746.66,0.8923 +2023-12-16 22:45:00+00:00,38744.03,38774.15,38722.83,38763.22,0.39877 +2023-12-16 23:00:00+00:00,38762.6,38793.22,38680.66,38686.14,0.67917 +2023-12-16 23:15:00+00:00,38663.38,38728.25,38663.38,38703.8,0.46704 +2023-12-16 23:30:00+00:00,38699.88,38732.51,38690.0,38710.95,0.66646 +2023-12-16 23:45:00+00:00,38703.84,38769.87,38692.32,38753.14,0.62154 +2023-12-17 00:00:00+00:00,38767.06,38794.41,38737.78,38771.39,0.33613 +2023-12-17 00:15:00+00:00,38763.37,38769.45,38720.96,38733.07,0.67716 +2023-12-17 00:30:00+00:00,38746.42,38776.27,38723.14,38730.02,0.12557 +2023-12-17 00:45:00+00:00,38730.01,38730.01,38670.5,38673.38,0.2783 +2023-12-17 01:00:00+00:00,38650.66,38752.0,38650.0,38746.34,0.42893 +2023-12-17 01:15:00+00:00,38743.91,38743.91,38690.6,38692.58,0.3063 +2023-12-17 01:30:00+00:00,38690.18,38695.35,38565.34,38603.24,1.13005 +2023-12-17 01:45:00+00:00,38604.51,38612.77,38425.73,38546.64,4.05907 +2023-12-17 02:00:00+00:00,38531.14,38646.24,38522.69,38625.38,0.44623 +2023-12-17 02:15:00+00:00,38634.39,38634.4,38568.79,38579.17,0.39436 +2023-12-17 02:30:00+00:00,38575.67,38577.97,38509.14,38513.28,0.25462 +2023-12-17 02:45:00+00:00,38514.34,38517.6,38428.55,38437.45,1.10104 +2023-12-17 03:00:00+00:00,38429.69,38504.54,38429.69,38482.67,0.61654 +2023-12-17 03:15:00+00:00,38473.48,38558.24,38472.79,38557.63,0.76696 +2023-12-17 03:30:00+00:00,38563.78,38569.65,38483.24,38505.68,0.22423 +2023-12-17 03:45:00+00:00,38487.37,38517.76,38460.58,38478.27,0.67442 +2023-12-17 04:00:00+00:00,38483.87,38544.58,38471.2,38536.32,0.74008 +2023-12-17 04:15:00+00:00,38549.31,38567.08,38526.99,38567.08,0.20098 +2023-12-17 04:30:00+00:00,38567.06,38577.54,38547.51,38566.49,0.42167 +2023-12-17 04:45:00+00:00,38555.33,38593.19,38530.95,38538.77,0.643 +2023-12-17 05:00:00+00:00,38538.84,38595.39,38530.84,38580.01,0.79578 +2023-12-17 05:15:00+00:00,38580.75,38597.53,38550.04,38550.04,5.15406 +2023-12-17 05:30:00+00:00,38547.11,38552.98,38401.97,38439.14,1.55023 +2023-12-17 05:45:00+00:00,38434.82,38500.31,38351.29,38450.4,2.28798 +2023-12-17 06:00:00+00:00,38467.13,38536.23,38461.85,38509.62,0.19247 +2023-12-17 06:15:00+00:00,38509.41,38532.72,38457.19,38504.44,1.13993 +2023-12-17 06:30:00+00:00,38507.63,38507.63,38382.8,38434.15,1.78603 +2023-12-17 06:45:00+00:00,38418.78,38585.7,38381.16,38567.61,1.50975 +2023-12-17 07:00:00+00:00,38573.12,38596.86,38539.95,38584.52,1.36139 +2023-12-17 07:15:00+00:00,38578.01,38589.26,38501.9,38516.07,0.78287 +2023-12-17 07:30:00+00:00,38516.07,38546.73,38455.89,38523.54,0.81312 +2023-12-17 07:45:00+00:00,38550.13,38559.26,38443.83,38459.27,0.799 +2023-12-17 08:00:00+00:00,38459.26,38481.12,38310.22,38314.24,3.80497 +2023-12-17 08:15:00+00:00,38313.8,38417.89,38262.29,38406.77,1.92488 +2023-12-17 08:30:00+00:00,38405.89,38453.96,38380.97,38453.96,0.69146 +2023-12-17 08:45:00+00:00,38439.18,38474.2,38426.79,38470.79,0.57756 +2023-12-17 09:00:00+00:00,38478.36,38530.29,38465.33,38477.54,2.14861 +2023-12-17 09:15:00+00:00,38477.54,38486.45,38428.11,38442.46,4.74242 +2023-12-17 09:30:00+00:00,38446.02,38459.72,38394.33,38401.88,1.42896 +2023-12-17 09:45:00+00:00,38401.71,38548.52,38399.16,38531.29,1.09234 +2023-12-17 10:00:00+00:00,38537.0,38571.22,38494.77,38527.1,1.02591 +2023-12-17 10:15:00+00:00,38525.02,38531.25,38481.87,38502.85,7.22343 +2023-12-17 10:30:00+00:00,38503.51,38503.51,38426.27,38447.94,6.08166 +2023-12-17 10:45:00+00:00,38448.35,38513.42,38441.05,38466.17,2.13282 +2023-12-17 11:00:00+00:00,38466.16,38466.16,38377.58,38416.22,2.19875 +2023-12-17 11:15:00+00:00,38412.24,38490.16,38401.59,38437.82,0.94168 +2023-12-17 11:30:00+00:00,38439.05,38515.61,38439.05,38515.61,1.18229 +2023-12-17 11:45:00+00:00,38510.1,38513.93,38477.16,38484.39,0.6599 +2023-12-17 12:00:00+00:00,38488.5,38538.36,38421.04,38437.94,1.3653 +2023-12-17 12:15:00+00:00,38434.19,38494.3,38416.57,38463.32,1.81261 +2023-12-17 12:30:00+00:00,38464.98,38475.17,38435.7,38436.68,0.79554 +2023-12-17 12:45:00+00:00,38451.39,38480.78,38435.85,38439.84,2.24003 +2023-12-17 13:00:00+00:00,38449.66,38454.1,38380.14,38383.71,0.93793 +2023-12-17 13:15:00+00:00,38377.46,38404.18,38330.15,38404.18,1.73079 +2023-12-17 13:30:00+00:00,38404.2,38407.45,38266.03,38278.35,1.87765 +2023-12-17 13:45:00+00:00,38281.03,38342.88,38260.0,38324.94,0.95222 +2023-12-17 14:00:00+00:00,38327.64,38417.06,38317.51,38380.6,1.34757 +2023-12-17 14:15:00+00:00,38380.13,38383.91,38204.04,38220.04,1.17234 +2023-12-17 14:30:00+00:00,38223.72,38230.95,38023.0,38184.36,5.11248 +2023-12-17 14:45:00+00:00,38202.71,38231.62,38064.96,38087.52,2.20117 +2023-12-17 15:00:00+00:00,38087.52,38181.78,38042.05,38134.91,1.35712 +2023-12-17 15:15:00+00:00,38135.42,38173.32,38076.28,38096.87,1.10532 +2023-12-17 15:30:00+00:00,38093.08,38138.78,38070.11,38122.23,1.89182 +2023-12-17 15:45:00+00:00,38124.2,38269.99,38124.2,38221.19,0.69281 +2023-12-17 16:00:00+00:00,38227.06,38240.37,38149.05,38200.43,1.35893 +2023-12-17 16:15:00+00:00,38202.39,38347.67,38131.65,38342.45,1.17121 +2023-12-17 16:30:00+00:00,38336.61,38454.48,38322.32,38403.84,2.62524 +2023-12-17 16:45:00+00:00,38408.45,38575.61,38401.3,38547.38,1.09817 +2023-12-17 17:00:00+00:00,38547.75,38839.44,38544.91,38839.44,5.14374 +2023-12-17 17:15:00+00:00,38829.5,38830.27,38583.13,38661.76,6.29497 +2023-12-17 17:30:00+00:00,38661.73,38729.72,38550.79,38550.79,2.10711 +2023-12-17 17:45:00+00:00,38575.66,38598.47,38385.02,38438.75,2.76516 +2023-12-17 18:00:00+00:00,38439.57,38474.18,38066.61,38146.91,6.08378 +2023-12-17 18:15:00+00:00,38142.06,38432.73,38040.49,38358.51,16.14679 +2023-12-17 18:30:00+00:00,38357.64,38401.97,38275.97,38342.92,7.2775 +2023-12-17 18:45:00+00:00,38350.98,38402.98,38310.0,38366.66,6.6492 +2023-12-17 19:00:00+00:00,38373.42,38410.67,38328.43,38369.51,3.20928 +2023-12-17 19:15:00+00:00,38378.67,38393.1,38330.39,38344.59,1.96349 +2023-12-17 19:30:00+00:00,38352.16,38352.16,38271.33,38334.55,1.71175 +2023-12-17 19:45:00+00:00,38332.04,38352.97,38288.83,38308.98,2.11639 +2023-12-17 20:00:00+00:00,38312.81,38411.25,38301.76,38411.24,0.78463 +2023-12-17 20:15:00+00:00,38411.24,38424.7,38363.75,38424.68,0.72184 +2023-12-17 20:30:00+00:00,38439.47,38450.56,38373.03,38416.6,0.54706 +2023-12-17 20:45:00+00:00,38404.79,38437.87,38378.3,38379.08,0.85047 +2023-12-17 21:00:00+00:00,38379.86,38379.86,38310.64,38314.55,1.0563 +2023-12-17 21:15:00+00:00,38306.17,38358.77,38250.0,38255.82,3.40674 +2023-12-17 21:30:00+00:00,38250.0,38282.35,38236.78,38267.81,0.46865 +2023-12-17 21:45:00+00:00,38259.95,38260.36,38203.95,38219.1,0.54331 +2023-12-17 22:00:00+00:00,38208.55,38221.99,38074.51,38080.71,1.63907 +2023-12-17 22:15:00+00:00,38104.3,38104.3,37960.01,37968.64,7.42146 +2023-12-17 22:30:00+00:00,37960.0,38044.43,37856.27,37999.47,8.08962 +2023-12-17 22:45:00+00:00,37999.47,38346.0,37993.0,38253.75,2.65015 +2023-12-17 23:00:00+00:00,38253.74,38303.57,38214.08,38214.08,3.68265 +2023-12-17 23:15:00+00:00,38223.39,38235.14,38127.33,38139.66,3.01412 +2023-12-17 23:30:00+00:00,38139.61,38172.93,37874.8,37986.19,6.60591 +2023-12-17 23:45:00+00:00,37997.04,38063.9,37962.79,37965.95,3.94594 +2023-12-18 00:00:00+00:00,37974.63,38044.5,37829.0,37843.67,8.92192 +2023-12-18 00:15:00+00:00,37833.01,37994.81,37813.67,37992.52,3.30047 +2023-12-18 00:30:00+00:00,37982.86,38023.97,37945.76,37963.77,2.76576 +2023-12-18 00:45:00+00:00,37954.48,38008.93,37928.1,37961.45,3.1156 +2023-12-18 01:00:00+00:00,37960.57,38000.0,37882.68,38000.0,1.32095 +2023-12-18 01:15:00+00:00,38004.69,38004.69,37849.7,37875.26,1.23172 +2023-12-18 01:30:00+00:00,37858.36,37858.36,37542.05,37618.39,10.32335 +2023-12-18 01:45:00+00:00,37633.96,37787.39,37615.98,37615.98,1.83187 +2023-12-18 02:00:00+00:00,37624.46,37728.9,37616.28,37709.27,2.00555 +2023-12-18 02:15:00+00:00,37714.25,37724.6,37579.14,37605.35,1.27214 +2023-12-18 02:30:00+00:00,37596.01,37604.81,37436.35,37522.64,5.27926 +2023-12-18 02:45:00+00:00,37497.36,37570.79,37461.83,37518.82,2.66313 +2023-12-18 03:00:00+00:00,37507.5,37645.27,37479.49,37597.87,1.9464 +2023-12-18 03:15:00+00:00,37573.97,37639.9,37564.97,37622.4,0.70927 +2023-12-18 03:30:00+00:00,37620.66,37662.31,37579.14,37662.31,0.59524 +2023-12-18 03:45:00+00:00,37676.05,37676.05,37624.98,37658.96,1.34989 +2023-12-18 04:00:00+00:00,37668.76,37674.4,37608.15,37655.79,0.53707 +2023-12-18 04:15:00+00:00,37652.34,37737.85,37652.32,37722.92,0.50873 +2023-12-18 04:30:00+00:00,37745.87,37746.24,37675.58,37708.86,0.36234 +2023-12-18 04:45:00+00:00,37715.01,37766.51,37699.73,37765.02,0.46448 +2023-12-18 05:00:00+00:00,37745.99,37745.99,37672.2,37683.36,0.90705 +2023-12-18 05:15:00+00:00,37674.26,37758.9,37663.84,37742.44,0.84844 +2023-12-18 05:30:00+00:00,37736.39,37749.65,37636.61,37656.29,1.17557 +2023-12-18 05:45:00+00:00,37646.69,37656.29,37558.62,37571.26,5.4158 +2023-12-18 06:00:00+00:00,37550.09,37618.63,37544.53,37598.62,1.45315 +2023-12-18 06:15:00+00:00,37596.82,37771.27,37574.13,37750.57,1.93381 +2023-12-18 06:30:00+00:00,37734.37,37752.36,37694.79,37714.65,0.5077 +2023-12-18 06:45:00+00:00,37705.61,37801.43,37681.26,37717.05,2.65906 +2023-12-18 07:00:00+00:00,37722.37,37757.54,37690.69,37754.26,1.00618 +2023-12-18 07:15:00+00:00,37752.3,37769.34,37730.37,37741.11,0.50681 +2023-12-18 07:30:00+00:00,37741.12,37816.79,37661.42,37670.58,5.59974 +2023-12-18 07:45:00+00:00,37659.87,37677.44,37599.74,37622.51,2.24221 +2023-12-18 08:00:00+00:00,37625.6,37662.51,37551.79,37569.01,2.5593 +2023-12-18 08:15:00+00:00,37567.85,37734.67,37559.81,37732.43,1.36362 +2023-12-18 08:30:00+00:00,37712.49,37751.93,37679.07,37751.93,1.11017 +2023-12-18 08:45:00+00:00,37751.94,37767.11,37683.68,37715.53,2.21945 +2023-12-18 09:00:00+00:00,37714.87,37728.75,37575.57,37576.93,3.87887 +2023-12-18 09:15:00+00:00,37573.23,37612.41,37355.0,37430.86,7.40783 +2023-12-18 09:30:00+00:00,37432.35,37673.63,37415.58,37634.55,4.48074 +2023-12-18 09:45:00+00:00,37627.57,37668.47,37575.35,37594.23,3.2116 +2023-12-18 10:00:00+00:00,37594.16,37615.24,37432.22,37463.45,2.51574 +2023-12-18 10:15:00+00:00,37466.45,37529.64,37282.88,37310.72,7.63718 +2023-12-18 10:30:00+00:00,37298.64,37366.92,37159.01,37298.05,8.15226 +2023-12-18 10:45:00+00:00,37300.0,37403.24,37245.48,37391.79,1.89486 +2023-12-18 11:00:00+00:00,37399.68,37750.66,37377.08,37722.98,6.37025 +2023-12-18 11:15:00+00:00,37730.59,37733.95,37607.27,37650.3,4.01025 +2023-12-18 11:30:00+00:00,37642.91,37649.67,37534.79,37534.79,2.75741 +2023-12-18 11:45:00+00:00,37531.2,37678.5,37518.19,37671.29,2.08434 +2023-12-18 12:00:00+00:00,37671.21,37678.5,37585.32,37585.32,1.77145 +2023-12-18 12:15:00+00:00,37585.31,37644.74,37537.37,37644.74,1.92345 +2023-12-18 12:30:00+00:00,37639.94,37644.44,37548.11,37576.21,1.84067 +2023-12-18 12:45:00+00:00,37576.19,37576.19,37471.86,37480.24,1.61481 +2023-12-18 13:00:00+00:00,37483.3,37609.68,37475.67,37538.32,2.78588 +2023-12-18 13:15:00+00:00,37544.86,37699.99,37544.86,37684.53,3.07756 +2023-12-18 13:30:00+00:00,37685.04,37791.63,37685.04,37729.97,2.4446 +2023-12-18 13:45:00+00:00,37727.29,37918.92,37721.87,37860.3,3.94682 +2023-12-18 14:00:00+00:00,37858.59,37909.82,37776.13,37785.61,2.75738 +2023-12-18 14:15:00+00:00,37787.42,37981.25,37756.0,37980.25,3.07748 +2023-12-18 14:30:00+00:00,37979.62,38190.43,37964.94,38164.18,7.28297 +2023-12-18 14:45:00+00:00,38141.59,38211.82,38027.92,38068.59,3.24385 +2023-12-18 15:00:00+00:00,38078.08,38125.27,37935.38,37965.83,3.76555 +2023-12-18 15:15:00+00:00,37970.5,38015.43,37811.22,37835.09,3.23652 +2023-12-18 15:30:00+00:00,37835.9,38008.94,37815.55,37978.19,5.0559 +2023-12-18 15:45:00+00:00,37978.53,37989.62,37799.25,37802.75,2.56789 +2023-12-18 16:00:00+00:00,37817.2,37867.27,37700.0,37822.71,3.68147 +2023-12-18 16:15:00+00:00,37836.38,37941.49,37818.07,37908.58,1.89383 +2023-12-18 16:30:00+00:00,37907.41,37926.7,37868.98,37884.31,3.09121 +2023-12-18 16:45:00+00:00,37884.33,38014.91,37832.12,38010.55,2.53862 +2023-12-18 17:00:00+00:00,38005.6,38050.02,37926.73,37953.6,2.58254 +2023-12-18 17:15:00+00:00,37985.09,38102.94,37985.09,38084.88,2.09328 +2023-12-18 17:30:00+00:00,38105.4,38134.46,38000.0,38040.76,2.07518 +2023-12-18 17:45:00+00:00,38044.84,38101.62,37883.69,37887.03,3.40243 +2023-12-18 18:00:00+00:00,37877.21,37952.37,37843.26,37912.88,1.97599 +2023-12-18 18:15:00+00:00,37915.21,38015.59,37915.21,37977.13,1.37421 +2023-12-18 18:30:00+00:00,37977.15,38050.99,37977.15,38036.94,1.92744 +2023-12-18 18:45:00+00:00,38037.46,38128.19,38011.02,38128.09,1.96727 +2023-12-18 19:00:00+00:00,38130.21,38210.2,38119.68,38153.75,1.68202 +2023-12-18 19:15:00+00:00,38178.09,38215.92,38140.17,38192.41,0.99289 +2023-12-18 19:30:00+00:00,38191.32,38206.95,38150.0,38178.19,2.09378 +2023-12-18 19:45:00+00:00,38185.22,38234.98,38166.79,38208.66,0.59294 +2023-12-18 20:00:00+00:00,38218.52,38327.67,38163.2,38184.27,2.11813 +2023-12-18 20:15:00+00:00,38186.74,38229.68,38108.43,38212.49,3.04133 +2023-12-18 20:30:00+00:00,38214.89,38439.97,38214.88,38379.9,5.62169 +2023-12-18 20:45:00+00:00,38399.0,38522.97,38365.01,38451.76,2.71649 +2023-12-18 21:00:00+00:00,38459.15,39000.0,38459.15,38871.33,7.36388 +2023-12-18 21:15:00+00:00,38863.74,38929.78,38750.39,38858.57,7.64511 +2023-12-18 21:30:00+00:00,38847.74,38920.09,38784.67,38907.63,2.41249 +2023-12-18 21:45:00+00:00,38902.78,39130.99,38895.51,39014.37,4.43929 +2023-12-18 22:00:00+00:00,39035.59,39097.19,38864.94,39072.83,5.1338 +2023-12-18 22:15:00+00:00,39064.67,39093.6,38903.09,38907.28,2.71524 +2023-12-18 22:30:00+00:00,38919.64,38924.07,38811.32,38846.15,3.0333 +2023-12-18 22:45:00+00:00,38846.17,38932.8,38846.17,38900.61,2.11106 +2023-12-18 23:00:00+00:00,38902.95,39078.03,38902.95,39064.48,9.68812 +2023-12-18 23:15:00+00:00,39057.08,39091.26,38954.02,38988.3,4.94926 +2023-12-18 23:30:00+00:00,38983.58,39037.72,38960.84,39003.07,1.27187 +2023-12-18 23:45:00+00:00,38996.68,39095.65,38996.68,39037.34,4.20539 +2023-12-19 00:00:00+00:00,39043.44,39223.88,38984.79,39036.78,4.4768 +2023-12-19 00:15:00+00:00,39067.34,39150.0,38966.77,38980.0,8.16615 +2023-12-19 00:30:00+00:00,38993.4,39184.2,38960.0,39116.17,1.11738 +2023-12-19 00:45:00+00:00,39122.42,39162.01,39052.11,39077.38,5.64034 +2023-12-19 01:00:00+00:00,39084.09,39116.26,38983.89,39085.63,1.70195 +2023-12-19 01:15:00+00:00,39093.42,39190.82,38997.59,39190.82,2.50613 +2023-12-19 01:30:00+00:00,39190.87,39237.36,39113.69,39219.2,1.16588 +2023-12-19 01:45:00+00:00,39214.62,39668.72,39214.62,39608.91,6.60892 +2023-12-19 02:00:00+00:00,39631.74,39758.0,39450.0,39497.81,2.96753 +2023-12-19 02:15:00+00:00,39509.18,39512.88,39375.11,39382.74,0.82886 +2023-12-19 02:30:00+00:00,39388.71,39524.64,39382.78,39515.13,0.66835 +2023-12-19 02:45:00+00:00,39492.46,39494.76,39400.03,39400.03,0.29402 +2023-12-19 03:00:00+00:00,39416.94,39447.52,39387.29,39388.84,0.2081 +2023-12-19 03:15:00+00:00,39393.95,39432.75,39307.71,39309.88,0.70579 +2023-12-19 03:30:00+00:00,39331.35,39371.89,39310.61,39340.6,1.52389 +2023-12-19 03:45:00+00:00,39323.36,39399.55,39323.36,39397.44,1.33245 +2023-12-19 04:00:00+00:00,39425.1,39444.86,39361.41,39399.59,1.59778 +2023-12-19 04:15:00+00:00,39409.09,39434.49,39353.23,39355.55,1.31143 +2023-12-19 04:30:00+00:00,39334.62,39334.64,39189.71,39199.82,0.88276 +2023-12-19 04:45:00+00:00,39224.65,39288.54,39224.65,39258.41,0.30161 +2023-12-19 05:00:00+00:00,39259.7,39303.39,39231.23,39277.67,0.73617 +2023-12-19 05:15:00+00:00,39287.23,39315.36,39282.91,39310.98,0.25449 +2023-12-19 05:30:00+00:00,39310.02,39310.02,39223.35,39228.56,0.46358 +2023-12-19 05:45:00+00:00,39227.47,39295.47,39197.1,39280.63,0.39081 +2023-12-19 06:00:00+00:00,39278.76,39278.76,39189.71,39189.71,0.38972 +2023-12-19 06:15:00+00:00,39189.72,39261.97,39157.77,39229.57,0.94085 +2023-12-19 06:30:00+00:00,39232.62,39274.49,39227.35,39250.61,0.76734 +2023-12-19 06:45:00+00:00,39257.3,39299.75,39215.26,39229.62,0.77677 +2023-12-19 07:00:00+00:00,39242.79,39320.15,39214.86,39320.15,2.35515 +2023-12-19 07:15:00+00:00,39312.27,39317.13,39218.09,39234.66,0.67509 +2023-12-19 07:30:00+00:00,39240.15,39325.11,39210.72,39302.31,0.79551 +2023-12-19 07:45:00+00:00,39318.98,39401.06,39311.02,39334.22,1.29932 +2023-12-19 08:00:00+00:00,39337.37,39449.99,39296.81,39431.64,3.09919 +2023-12-19 08:15:00+00:00,39443.75,39459.5,39357.96,39455.49,2.22171 +2023-12-19 08:30:00+00:00,39463.45,39464.21,39375.06,39416.29,5.3355 +2023-12-19 08:45:00+00:00,39416.36,39443.74,39304.11,39349.26,1.50332 +2023-12-19 09:00:00+00:00,39349.83,39449.99,39300.0,39447.53,6.28216 +2023-12-19 09:15:00+00:00,39447.42,39449.98,39293.58,39303.47,5.65229 +2023-12-19 09:30:00+00:00,39300.18,39365.66,39226.86,39334.99,4.60119 +2023-12-19 09:45:00+00:00,39355.97,39392.51,39295.73,39313.09,1.01905 +2023-12-19 10:00:00+00:00,39322.44,39328.39,39270.01,39288.62,1.86223 +2023-12-19 10:15:00+00:00,39279.7,39336.2,39246.87,39322.7,2.13288 +2023-12-19 10:30:00+00:00,39324.67,39511.8,39289.63,39479.39,2.19183 +2023-12-19 10:45:00+00:00,39500.35,39546.76,39418.49,39430.44,9.12144 +2023-12-19 11:00:00+00:00,39429.01,39504.36,39408.04,39439.38,2.33599 +2023-12-19 11:15:00+00:00,39446.81,39475.98,39365.42,39392.8,1.26287 +2023-12-19 11:30:00+00:00,39377.73,39479.7,39345.23,39449.61,2.01931 +2023-12-19 11:45:00+00:00,39449.56,39461.9,39294.84,39301.86,7.01028 +2023-12-19 12:00:00+00:00,39301.85,39325.94,39270.68,39299.83,1.78632 +2023-12-19 12:15:00+00:00,39315.87,39318.45,39191.02,39240.43,3.50532 +2023-12-19 12:30:00+00:00,39234.12,39271.21,39184.7,39200.29,0.9553 +2023-12-19 12:45:00+00:00,39208.11,39243.63,39142.0,39156.12,2.68056 +2023-12-19 13:00:00+00:00,39156.12,39259.01,39146.1,39225.74,3.30967 +2023-12-19 13:15:00+00:00,39215.62,39251.52,39174.33,39202.87,3.10381 +2023-12-19 13:30:00+00:00,39200.42,39243.55,39161.93,39196.94,3.60181 +2023-12-19 13:45:00+00:00,39184.71,39191.36,39092.35,39103.24,3.73577 +2023-12-19 14:00:00+00:00,39102.54,39150.53,38815.48,38899.16,5.63667 +2023-12-19 14:15:00+00:00,38879.99,38982.53,38805.32,38971.64,6.50937 +2023-12-19 14:30:00+00:00,38977.14,38982.18,38862.24,38868.52,2.12852 +2023-12-19 14:45:00+00:00,38869.99,38889.44,38463.17,38578.94,11.91488 +2023-12-19 15:00:00+00:00,38578.94,38836.13,38487.45,38802.49,8.03972 +2023-12-19 15:15:00+00:00,38787.52,38924.55,38734.73,38924.55,4.06851 +2023-12-19 15:30:00+00:00,38927.8,38932.08,38783.6,38840.63,2.55197 +2023-12-19 15:45:00+00:00,38840.35,38841.63,38650.78,38680.43,7.48027 +2023-12-19 16:00:00+00:00,38667.56,38847.62,38647.9,38834.53,4.66312 +2023-12-19 16:15:00+00:00,38844.65,38848.93,38650.49,38685.58,2.6847 +2023-12-19 16:30:00+00:00,38685.29,38728.94,38665.89,38666.67,2.75534 +2023-12-19 16:45:00+00:00,38666.35,38666.35,38528.8,38559.92,3.58123 +2023-12-19 17:00:00+00:00,38560.47,38594.0,38247.15,38277.05,5.61005 +2023-12-19 17:15:00+00:00,38281.0,38285.22,38148.85,38227.99,10.00426 +2023-12-19 17:30:00+00:00,38236.79,38338.59,38141.35,38295.48,4.48207 +2023-12-19 17:45:00+00:00,38288.39,38359.98,38109.62,38142.86,5.04869 +2023-12-19 18:00:00+00:00,38124.24,38318.26,38099.53,38316.26,3.424 +2023-12-19 18:15:00+00:00,38311.96,38428.47,38299.52,38428.47,3.98557 +2023-12-19 18:30:00+00:00,38415.66,38491.91,38366.67,38430.05,3.96269 +2023-12-19 18:45:00+00:00,38429.18,38485.8,38394.64,38468.78,1.70053 +2023-12-19 19:00:00+00:00,38468.15,38487.84,38404.04,38412.49,2.78462 +2023-12-19 19:15:00+00:00,38412.72,38522.28,38412.68,38485.76,1.72538 +2023-12-19 19:30:00+00:00,38493.07,38717.44,38493.07,38537.64,2.05228 +2023-12-19 19:45:00+00:00,38511.28,38579.5,38462.62,38569.71,1.72295 +2023-12-19 20:00:00+00:00,38571.18,38631.2,38519.27,38562.14,2.09612 +2023-12-19 20:15:00+00:00,38560.01,38598.71,38500.42,38539.21,2.00457 +2023-12-19 20:30:00+00:00,38520.75,38521.52,38391.49,38453.0,2.87744 +2023-12-19 20:45:00+00:00,38469.95,38541.88,38431.45,38462.81,1.45451 +2023-12-19 21:00:00+00:00,38454.14,38547.51,38454.14,38530.4,2.35364 +2023-12-19 21:15:00+00:00,38522.21,38628.85,38502.18,38594.73,0.9989 +2023-12-19 21:30:00+00:00,38600.0,38631.91,38559.69,38608.39,0.82337 +2023-12-19 21:45:00+00:00,38613.59,38723.21,38601.33,38715.84,1.92443 +2023-12-19 22:00:00+00:00,38731.34,38731.34,38519.27,38575.26,1.99255 +2023-12-19 22:15:00+00:00,38569.12,38593.53,38513.86,38534.26,2.40714 +2023-12-19 22:30:00+00:00,38534.26,38599.97,38482.62,38482.62,0.47798 +2023-12-19 22:45:00+00:00,38492.07,38621.11,38492.07,38542.8,0.60587 +2023-12-19 23:00:00+00:00,38541.95,38619.05,38525.0,38525.0,1.01653 +2023-12-19 23:15:00+00:00,38516.78,38516.78,38468.6,38505.13,0.97804 +2023-12-19 23:30:00+00:00,38513.37,38581.05,38438.52,38451.87,1.29126 +2023-12-19 23:45:00+00:00,38467.78,38528.27,38467.78,38501.36,0.4129 +2023-12-20 00:00:00+00:00,38512.95,38616.07,38485.91,38569.79,1.31487 +2023-12-20 00:15:00+00:00,38577.59,38629.67,38554.25,38580.47,2.38634 +2023-12-20 00:30:00+00:00,38571.41,38675.66,38568.85,38638.09,1.58327 +2023-12-20 00:45:00+00:00,38629.89,38680.01,38629.89,38673.68,0.64803 +2023-12-20 01:00:00+00:00,38660.94,38713.28,38660.94,38709.56,0.50645 +2023-12-20 01:15:00+00:00,38722.65,38722.65,38631.75,38633.16,0.9652 +2023-12-20 01:30:00+00:00,38633.17,38661.24,38554.22,38589.18,0.74014 +2023-12-20 01:45:00+00:00,38590.51,38615.45,38511.74,38575.84,1.66342 +2023-12-20 02:00:00+00:00,38590.05,38624.12,38490.14,38561.27,1.85544 +2023-12-20 02:15:00+00:00,38557.93,38650.52,38557.93,38644.06,0.80246 +2023-12-20 02:30:00+00:00,38652.14,38706.09,38652.14,38679.58,2.9622 +2023-12-20 02:45:00+00:00,38696.5,38720.93,38663.85,38707.38,0.52735 +2023-12-20 03:00:00+00:00,38693.53,38734.96,38686.15,38734.4,0.75551 +2023-12-20 03:15:00+00:00,38731.33,38733.0,38692.66,38695.05,0.57082 +2023-12-20 03:30:00+00:00,38684.38,38721.88,38665.05,38665.05,0.29847 +2023-12-20 03:45:00+00:00,38672.42,38696.95,38632.41,38672.35,0.95526 +2023-12-20 04:00:00+00:00,38692.67,38693.09,38649.3,38677.5,1.16382 +2023-12-20 04:15:00+00:00,38694.64,38899.35,38680.38,38855.15,5.08438 +2023-12-20 04:30:00+00:00,38852.27,38936.12,38847.16,38847.16,0.53617 +2023-12-20 04:45:00+00:00,38876.13,39118.63,38838.68,39057.6,11.37948 +2023-12-20 05:00:00+00:00,39056.99,39056.99,38896.24,38915.4,3.92165 +2023-12-20 05:15:00+00:00,38902.97,38922.48,38852.28,38862.29,1.2388 +2023-12-20 05:30:00+00:00,38872.25,38893.41,38838.22,38851.1,1.26556 +2023-12-20 05:45:00+00:00,38873.78,38972.33,38868.26,38954.04,1.08137 +2023-12-20 06:00:00+00:00,38934.16,38988.43,38886.59,38988.43,1.60691 +2023-12-20 06:15:00+00:00,38989.12,39242.4,38987.23,39169.19,6.41915 +2023-12-20 06:30:00+00:00,39203.79,39203.79,39042.4,39060.9,3.21857 +2023-12-20 06:45:00+00:00,39053.43,39167.0,39044.98,39112.95,3.14589 +2023-12-20 07:00:00+00:00,39122.7,39177.72,39075.4,39160.1,1.86279 +2023-12-20 07:15:00+00:00,39159.69,39159.69,39058.93,39058.93,2.27921 +2023-12-20 07:30:00+00:00,39063.08,39139.55,39042.96,39114.4,2.06091 +2023-12-20 07:45:00+00:00,39114.64,39177.66,39105.21,39140.7,2.1936 +2023-12-20 08:00:00+00:00,39168.53,39202.99,39038.51,39049.37,3.62284 +2023-12-20 08:15:00+00:00,39049.99,39119.07,39041.14,39070.75,1.31301 +2023-12-20 08:30:00+00:00,39081.76,39107.37,39044.51,39073.96,1.52795 +2023-12-20 08:45:00+00:00,39074.78,39084.47,39004.01,39031.16,1.35826 +2023-12-20 09:00:00+00:00,39039.17,39122.7,39039.17,39122.7,3.54293 +2023-12-20 09:15:00+00:00,39134.28,39207.89,39091.1,39207.88,2.69479 +2023-12-20 09:30:00+00:00,39206.17,39206.84,39086.58,39100.71,2.70111 +2023-12-20 09:45:00+00:00,39100.72,39104.76,38987.24,39041.9,4.79613 +2023-12-20 10:00:00+00:00,39047.66,39114.62,39004.52,39109.74,2.25758 +2023-12-20 10:15:00+00:00,39109.65,39125.38,38954.39,39044.48,3.53699 +2023-12-20 10:30:00+00:00,39044.48,39136.82,39044.48,39119.08,7.23509 +2023-12-20 10:45:00+00:00,39124.91,39151.3,39056.34,39151.3,4.81495 +2023-12-20 11:00:00+00:00,39160.83,39208.11,39095.48,39117.12,4.98683 +2023-12-20 11:15:00+00:00,39118.97,39179.28,39113.24,39118.91,1.34664 +2023-12-20 11:30:00+00:00,39134.74,39172.8,39091.29,39169.64,1.80823 +2023-12-20 11:45:00+00:00,39169.72,39302.52,39169.72,39200.65,4.04268 +2023-12-20 12:00:00+00:00,39207.97,39219.45,39083.4,39131.28,3.42722 +2023-12-20 12:15:00+00:00,39147.97,39255.3,39107.95,39255.3,1.66344 +2023-12-20 12:30:00+00:00,39270.59,39318.0,39227.1,39260.88,1.1194 +2023-12-20 12:45:00+00:00,39260.01,39317.99,39199.34,39304.36,1.96 +2023-12-20 13:00:00+00:00,39315.21,39494.61,39315.21,39450.04,9.45821 +2023-12-20 13:15:00+00:00,39441.15,39648.11,39397.18,39634.98,8.88867 +2023-12-20 13:30:00+00:00,39638.99,39666.99,39511.44,39666.99,4.4319 +2023-12-20 13:45:00+00:00,39666.98,39945.14,39654.11,39926.89,11.37345 +2023-12-20 14:00:00+00:00,39939.3,40069.99,39797.92,39804.91,10.24296 +2023-12-20 14:15:00+00:00,39806.08,40240.35,39777.94,40183.88,8.44582 +2023-12-20 14:30:00+00:00,40186.36,40267.62,40062.96,40079.43,3.18446 +2023-12-20 14:45:00+00:00,40083.32,40191.29,40000.0,40000.0,4.92552 +2023-12-20 15:00:00+00:00,40000.0,40367.26,39969.03,40362.06,6.37018 +2023-12-20 15:15:00+00:00,40367.27,40367.27,40191.1,40278.58,4.16011 +2023-12-20 15:30:00+00:00,40245.84,40346.9,40101.01,40120.23,3.56021 +2023-12-20 15:45:00+00:00,40120.98,40267.2,40081.4,40117.52,7.84367 +2023-12-20 16:00:00+00:00,40125.0,40196.02,40000.0,40008.8,6.92982 +2023-12-20 16:15:00+00:00,40014.03,40093.03,39995.14,40040.53,2.12691 +2023-12-20 16:30:00+00:00,40025.31,40102.72,40018.76,40074.74,2.42417 +2023-12-20 16:45:00+00:00,40050.17,40093.88,39690.28,39869.13,7.4376 +2023-12-20 17:00:00+00:00,39862.02,39952.44,39773.93,39802.59,4.88025 +2023-12-20 17:15:00+00:00,39798.51,40072.67,39774.36,40067.17,3.27605 +2023-12-20 17:30:00+00:00,40072.51,40100.0,40049.71,40092.8,2.03136 +2023-12-20 17:45:00+00:00,40086.36,40189.0,40045.24,40154.2,7.2544 +2023-12-20 18:00:00+00:00,40163.92,40260.56,40140.51,40226.38,2.57179 +2023-12-20 18:15:00+00:00,40217.67,40229.72,40101.93,40118.66,4.79125 +2023-12-20 18:30:00+00:00,40114.36,40304.07,40105.32,40285.95,3.81891 +2023-12-20 18:45:00+00:00,40274.43,40343.17,40270.36,40286.24,1.60671 +2023-12-20 19:00:00+00:00,40297.55,40391.74,40190.89,40217.22,5.33167 +2023-12-20 19:15:00+00:00,40205.61,40296.92,40200.2,40209.12,0.83638 +2023-12-20 19:30:00+00:00,40214.62,40252.8,39991.87,40069.0,6.09639 +2023-12-20 19:45:00+00:00,40065.08,40152.07,39961.46,39961.47,4.58116 +2023-12-20 20:00:00+00:00,39978.13,40012.61,39512.07,39819.03,10.55686 +2023-12-20 20:15:00+00:00,39800.0,39976.19,39800.0,39854.13,4.74645 +2023-12-20 20:30:00+00:00,39867.44,40033.17,39867.44,39999.08,2.88389 +2023-12-20 20:45:00+00:00,39989.27,40003.24,39707.6,39726.66,4.01677 +2023-12-20 21:00:00+00:00,39745.84,39956.01,39723.07,39909.35,2.62231 +2023-12-20 21:15:00+00:00,39908.1,39961.39,39834.47,39933.77,4.7965 +2023-12-20 21:30:00+00:00,39898.0,39902.83,39785.45,39785.88,2.23223 +2023-12-20 21:45:00+00:00,39793.99,39818.73,39621.86,39733.88,2.80945 +2023-12-20 22:00:00+00:00,39732.97,39799.81,39700.47,39784.3,1.33508 +2023-12-20 22:15:00+00:00,39802.0,39943.24,39802.0,39921.7,0.6309 +2023-12-20 22:30:00+00:00,39925.6,39981.0,39839.43,39852.01,1.80163 +2023-12-20 22:45:00+00:00,39862.92,39903.92,39788.35,39884.09,0.57819 +2023-12-20 23:00:00+00:00,39860.53,39862.46,39736.95,39780.27,1.70167 +2023-12-20 23:15:00+00:00,39765.12,39867.67,39737.57,39855.4,2.20285 +2023-12-20 23:30:00+00:00,39868.09,39907.77,39850.37,39904.05,0.94072 +2023-12-20 23:45:00+00:00,39901.12,39923.44,39879.22,39923.44,1.03746 +2023-12-21 00:00:00+00:00,39933.58,39934.44,39818.65,39818.65,1.47293 +2023-12-21 00:15:00+00:00,39828.66,39916.85,39796.45,39907.76,1.39205 +2023-12-21 00:30:00+00:00,39906.6,39972.31,39898.18,39911.96,1.26098 +2023-12-21 00:45:00+00:00,39924.24,39933.73,39822.34,39833.07,1.9982 +2023-12-21 01:00:00+00:00,39834.39,39855.74,39630.33,39678.71,2.01319 +2023-12-21 01:15:00+00:00,39669.59,39753.39,39623.07,39660.01,1.94038 +2023-12-21 01:30:00+00:00,39656.14,39707.59,39627.19,39656.75,0.52178 +2023-12-21 01:45:00+00:00,39619.35,39742.71,39619.35,39706.26,1.6978 +2023-12-21 02:00:00+00:00,39699.11,39706.89,39604.33,39668.6,1.59482 +2023-12-21 02:15:00+00:00,39679.49,39796.35,39679.49,39785.85,1.77756 +2023-12-21 02:30:00+00:00,39780.03,39811.71,39724.91,39749.01,0.87752 +2023-12-21 02:45:00+00:00,39732.78,39740.3,39565.56,39636.36,3.56636 +2023-12-21 03:00:00+00:00,39660.08,39784.37,39640.7,39784.37,1.69485 +2023-12-21 03:15:00+00:00,39794.6,39923.11,39794.6,39877.93,2.21149 +2023-12-21 03:30:00+00:00,39863.51,39895.56,39805.6,39805.6,1.48092 +2023-12-21 03:45:00+00:00,39808.86,39921.41,39802.0,39900.8,0.96388 +2023-12-21 04:00:00+00:00,39882.3,39907.77,39877.12,39877.24,0.54942 +2023-12-21 04:15:00+00:00,39901.01,39929.2,39873.15,39891.62,1.95915 +2023-12-21 04:30:00+00:00,39862.4,39935.47,39841.15,39845.63,1.85458 +2023-12-21 04:45:00+00:00,39851.23,39904.16,39844.13,39867.56,1.13355 +2023-12-21 05:00:00+00:00,39863.55,39893.42,39841.78,39863.47,2.01356 +2023-12-21 05:15:00+00:00,39860.45,39925.22,39857.29,39872.14,2.29486 +2023-12-21 05:30:00+00:00,39864.9,39878.1,39770.6,39797.84,1.74466 +2023-12-21 05:45:00+00:00,39795.92,39795.94,39705.9,39743.24,3.35509 +2023-12-21 06:00:00+00:00,39738.05,39797.52,39711.21,39762.81,1.79606 +2023-12-21 06:15:00+00:00,39760.18,39897.38,39760.18,39893.88,3.096 +2023-12-21 06:30:00+00:00,39893.88,39915.51,39862.61,39885.64,2.26629 +2023-12-21 06:45:00+00:00,39889.18,40051.0,39877.06,40034.28,1.12989 +2023-12-21 07:00:00+00:00,40038.69,40096.05,39964.67,40085.45,3.4111 +2023-12-21 07:15:00+00:00,40082.39,40085.85,40013.89,40020.74,6.21927 +2023-12-21 07:30:00+00:00,40016.74,40028.01,39961.47,39996.49,6.17566 +2023-12-21 07:45:00+00:00,39987.1,40031.62,39967.01,39994.02,2.2679 +2023-12-21 08:00:00+00:00,39991.65,40019.48,39962.01,40018.84,3.76829 +2023-12-21 08:15:00+00:00,40018.84,40142.29,40018.84,40133.45,4.05565 +2023-12-21 08:30:00+00:00,40137.38,40137.44,40056.81,40085.29,3.74595 +2023-12-21 08:45:00+00:00,40085.31,40093.36,39921.89,39931.18,6.60248 +2023-12-21 09:00:00+00:00,39957.52,40013.87,39903.94,40003.3,3.97104 +2023-12-21 09:15:00+00:00,39998.73,40004.82,39856.02,39901.88,7.10749 +2023-12-21 09:30:00+00:00,39889.47,39922.58,39859.96,39898.19,2.03923 +2023-12-21 09:45:00+00:00,39908.76,39995.53,39896.49,39995.53,1.74204 +2023-12-21 10:00:00+00:00,40002.19,40136.09,40002.19,40039.05,7.28567 +2023-12-21 10:15:00+00:00,40034.11,40098.39,40001.63,40067.22,2.1985 +2023-12-21 10:30:00+00:00,40066.4,40106.96,40034.77,40048.64,6.97588 +2023-12-21 10:45:00+00:00,40044.81,40228.74,40044.8,40193.37,16.09982 +2023-12-21 11:00:00+00:00,40178.47,40265.06,40120.61,40222.78,11.24761 +2023-12-21 11:15:00+00:00,40221.19,40227.81,40095.14,40122.01,6.44964 +2023-12-21 11:30:00+00:00,40120.44,40141.46,40007.86,40049.79,11.73287 +2023-12-21 11:45:00+00:00,40050.85,40069.45,39985.38,40037.96,4.60232 +2023-12-21 12:00:00+00:00,40063.72,40201.07,40049.52,40164.35,3.88128 +2023-12-21 12:15:00+00:00,40172.72,40289.99,40149.79,40182.27,4.27354 +2023-12-21 12:30:00+00:00,40199.21,40286.63,40149.81,40284.79,3.20882 +2023-12-21 12:45:00+00:00,40259.37,40277.53,40150.39,40161.84,15.215 +2023-12-21 13:00:00+00:00,40169.22,40169.22,40042.24,40142.06,2.68488 +2023-12-21 13:15:00+00:00,40166.14,40196.51,40073.92,40096.01,2.76568 +2023-12-21 13:30:00+00:00,40093.84,40176.38,40075.44,40174.17,4.62934 +2023-12-21 13:45:00+00:00,40190.32,40282.78,40168.85,40197.71,6.16858 +2023-12-21 14:00:00+00:00,40220.72,40245.8,39940.41,39971.2,8.26943 +2023-12-21 14:15:00+00:00,39973.07,40013.06,39813.25,39877.79,9.47101 +2023-12-21 14:30:00+00:00,39889.17,39923.67,39699.99,39727.35,13.1734 +2023-12-21 14:45:00+00:00,39741.62,39823.41,39574.56,39612.53,6.88792 +2023-12-21 15:00:00+00:00,39605.55,39779.43,39500.0,39746.36,13.19232 +2023-12-21 15:15:00+00:00,39748.38,40013.87,39731.64,39959.33,10.47401 +2023-12-21 15:30:00+00:00,39952.16,39959.16,39820.79,39896.93,7.83508 +2023-12-21 15:45:00+00:00,39896.92,39909.54,39780.82,39899.51,3.9158 +2023-12-21 16:00:00+00:00,39903.93,39994.68,39883.29,39894.29,4.15979 +2023-12-21 16:15:00+00:00,39909.07,39934.48,39780.08,39780.08,4.07738 +2023-12-21 16:30:00+00:00,39775.82,39803.52,39668.5,39702.63,3.72011 +2023-12-21 16:45:00+00:00,39723.88,39760.02,39632.66,39757.32,6.60418 +2023-12-21 17:00:00+00:00,39757.52,39761.12,39570.77,39585.59,7.98607 +2023-12-21 17:15:00+00:00,39611.82,39731.54,39563.61,39705.65,4.67496 +2023-12-21 17:30:00+00:00,39702.51,39762.21,39624.29,39637.06,5.94439 +2023-12-21 17:45:00+00:00,39630.37,39667.31,39513.01,39588.27,8.01345 +2023-12-21 18:00:00+00:00,39582.51,39707.57,39582.51,39667.42,5.80148 +2023-12-21 18:15:00+00:00,39674.06,39749.56,39659.79,39737.78,6.12223 +2023-12-21 18:30:00+00:00,39727.11,39728.94,39640.01,39668.68,2.23836 +2023-12-21 18:45:00+00:00,39673.59,39741.11,39605.22,39680.85,3.05182 +2023-12-21 19:00:00+00:00,39683.15,39953.39,39683.15,39729.81,33.53614 +2023-12-21 19:15:00+00:00,39720.95,39749.77,39558.21,39575.78,7.82032 +2023-12-21 19:30:00+00:00,39568.49,39630.81,39503.52,39566.71,9.98785 +2023-12-21 19:45:00+00:00,39566.72,39672.11,39533.12,39659.46,4.79123 +2023-12-21 20:00:00+00:00,39659.46,39725.0,39643.27,39724.91,4.05678 +2023-12-21 20:15:00+00:00,39725.0,39768.09,39674.63,39754.34,3.97746 +2023-12-21 20:30:00+00:00,39747.67,39793.13,39713.27,39764.77,3.18992 +2023-12-21 20:45:00+00:00,39773.57,39830.0,39761.36,39830.0,5.70788 +2023-12-21 21:00:00+00:00,39832.27,39832.27,39766.6,39804.0,1.77658 +2023-12-21 21:15:00+00:00,39797.16,39840.08,39768.85,39811.35,1.48088 +2023-12-21 21:30:00+00:00,39813.25,40041.55,39811.2,40000.25,9.01832 +2023-12-21 21:45:00+00:00,40013.77,40110.18,39967.75,39987.66,6.2391 +2023-12-21 22:00:00+00:00,39997.07,40025.2,39903.94,39991.1,7.76696 +2023-12-21 22:15:00+00:00,39984.27,40006.28,39953.61,39994.33,5.08257 +2023-12-21 22:30:00+00:00,39994.32,39994.32,39903.93,39983.07,3.5167 +2023-12-21 22:45:00+00:00,39989.8,40005.35,39930.02,39967.65,1.49227 +2023-12-21 23:00:00+00:00,39967.51,39974.0,39885.07,39930.94,2.38547 +2023-12-21 23:15:00+00:00,39924.67,39944.36,39886.11,39919.83,1.79555 +2023-12-21 23:30:00+00:00,39919.83,39926.85,39832.79,39851.87,2.55228 +2023-12-21 23:45:00+00:00,39839.58,39889.25,39814.14,39883.76,0.81907 +2023-12-22 00:00:00+00:00,39884.89,39892.85,39824.51,39825.01,3.21037 +2023-12-22 00:15:00+00:00,39826.68,39946.26,39789.68,39946.26,2.96767 +2023-12-22 00:30:00+00:00,39917.66,39959.75,39872.91,39872.91,1.46639 +2023-12-22 00:45:00+00:00,39877.81,39900.39,39842.56,39862.79,1.24464 +2023-12-22 01:00:00+00:00,39862.2,39973.83,39862.2,39950.37,1.97934 +2023-12-22 01:15:00+00:00,39956.14,40042.64,39922.65,40032.56,3.71373 +2023-12-22 01:30:00+00:00,40030.95,40214.52,40000.01,40150.45,6.01637 +2023-12-22 01:45:00+00:00,40160.95,40260.59,40083.89,40132.27,4.35153 +2023-12-22 02:00:00+00:00,40137.69,40169.04,40087.23,40106.2,2.03548 +2023-12-22 02:15:00+00:00,40117.04,40159.08,39954.73,39954.86,4.67855 +2023-12-22 02:30:00+00:00,39982.48,40103.74,39978.52,40048.63,1.96725 +2023-12-22 02:45:00+00:00,40051.2,40068.86,39991.76,39997.58,0.66608 +2023-12-22 03:00:00+00:00,40014.26,40061.97,39970.31,39970.31,0.94747 +2023-12-22 03:15:00+00:00,39956.99,40022.42,39953.09,39980.1,0.93748 +2023-12-22 03:30:00+00:00,39978.41,39987.2,39932.3,39960.02,2.78575 +2023-12-22 03:45:00+00:00,39966.42,40033.05,39966.42,40031.0,1.22819 +2023-12-22 04:00:00+00:00,40045.63,40048.47,39980.34,39988.28,0.97991 +2023-12-22 04:15:00+00:00,39991.45,40104.97,39964.44,40102.98,1.03615 +2023-12-22 04:30:00+00:00,40096.0,40111.95,40048.9,40085.11,0.99297 +2023-12-22 04:45:00+00:00,40090.9,40163.67,40078.14,40132.85,0.90812 +2023-12-22 05:00:00+00:00,40133.88,40176.12,40115.25,40169.08,0.66248 +2023-12-22 05:15:00+00:00,40169.08,40224.97,40136.39,40193.6,0.88117 +2023-12-22 05:30:00+00:00,40190.59,40228.88,40172.93,40210.4,1.64461 +2023-12-22 05:45:00+00:00,40207.18,40260.59,40126.59,40177.86,6.29685 +2023-12-22 06:00:00+00:00,40174.75,40195.61,40122.12,40159.11,1.25796 +2023-12-22 06:15:00+00:00,40150.43,40207.83,40076.96,40189.03,3.20608 +2023-12-22 06:30:00+00:00,40184.15,40409.97,40042.55,40052.32,12.96148 +2023-12-22 06:45:00+00:00,40042.35,40108.35,39892.16,39939.81,6.94387 +2023-12-22 07:00:00+00:00,39926.18,40002.26,39794.05,39985.29,4.26696 +2023-12-22 07:15:00+00:00,39985.68,39996.37,39837.15,39910.74,2.27438 +2023-12-22 07:30:00+00:00,39887.26,39913.58,39757.32,39795.82,4.04997 +2023-12-22 07:45:00+00:00,39795.55,39820.8,39606.78,39658.76,5.95791 +2023-12-22 08:00:00+00:00,39652.83,39793.96,39645.34,39766.49,6.23159 +2023-12-22 08:15:00+00:00,39755.94,39823.95,39701.11,39808.12,6.54249 +2023-12-22 08:30:00+00:00,39809.74,39837.35,39678.44,39695.29,5.23056 +2023-12-22 08:45:00+00:00,39679.9,39757.21,39650.72,39653.57,3.61943 +2023-12-22 09:00:00+00:00,39672.14,39731.37,39630.25,39640.93,9.15537 +2023-12-22 09:15:00+00:00,39634.6,39677.16,39507.7,39640.34,5.25588 +2023-12-22 09:30:00+00:00,39646.58,39740.67,39577.08,39740.66,5.21831 +2023-12-22 09:45:00+00:00,39740.02,39823.59,39712.15,39787.69,2.89567 +2023-12-22 10:00:00+00:00,39790.06,39794.72,39730.01,39757.42,4.27672 +2023-12-22 10:15:00+00:00,39756.42,39760.77,39680.5,39717.39,3.13783 +2023-12-22 10:30:00+00:00,39722.8,39734.37,39659.8,39729.99,4.63235 +2023-12-22 10:45:00+00:00,39729.99,39748.96,39690.89,39690.89,1.13414 +2023-12-22 11:00:00+00:00,39684.68,39684.68,39629.04,39660.27,4.91698 +2023-12-22 11:15:00+00:00,39660.12,39758.93,39660.12,39716.66,6.37977 +2023-12-22 11:30:00+00:00,39716.67,39778.0,39670.27,39771.32,3.82206 +2023-12-22 11:45:00+00:00,39762.68,39777.03,39707.61,39718.83,0.79459 +2023-12-22 12:00:00+00:00,39718.83,39751.57,39555.8,39555.8,7.80996 +2023-12-22 12:15:00+00:00,39564.16,39598.09,39508.91,39534.3,6.96686 +2023-12-22 12:30:00+00:00,39529.28,39619.12,39529.28,39616.58,1.26769 +2023-12-22 12:45:00+00:00,39613.21,39630.32,39524.83,39598.48,4.0824 +2023-12-22 13:00:00+00:00,39606.93,39645.1,39548.33,39633.21,1.15972 +2023-12-22 13:15:00+00:00,39632.44,39670.53,39579.67,39670.53,12.13879 +2023-12-22 13:30:00+00:00,39670.53,39808.78,39644.32,39760.44,5.92796 +2023-12-22 13:45:00+00:00,39765.13,39786.88,39679.86,39681.02,8.13014 +2023-12-22 14:00:00+00:00,39677.55,39712.68,39510.23,39513.39,5.39949 +2023-12-22 14:15:00+00:00,39523.69,39591.66,39430.01,39430.86,6.55232 +2023-12-22 14:30:00+00:00,39442.82,39561.83,39431.96,39516.64,2.86927 +2023-12-22 14:45:00+00:00,39520.56,39646.64,39493.55,39615.3,1.8332 +2023-12-22 15:00:00+00:00,39605.81,39631.33,39537.34,39619.81,3.55147 +2023-12-22 15:15:00+00:00,39623.05,39652.34,39557.6,39652.34,5.21255 +2023-12-22 15:30:00+00:00,39652.84,39673.67,39595.42,39672.41,1.53599 +2023-12-22 15:45:00+00:00,39677.39,39753.6,39658.16,39734.44,1.13442 +2023-12-22 16:00:00+00:00,39732.67,39752.7,39697.37,39697.37,1.19766 +2023-12-22 16:15:00+00:00,39692.96,39765.52,39692.96,39715.98,3.24105 +2023-12-22 16:30:00+00:00,39722.81,39744.36,39574.77,39595.83,2.69252 +2023-12-22 16:45:00+00:00,39595.84,39644.8,39555.74,39639.4,1.395 +2023-12-22 17:00:00+00:00,39635.39,39748.0,39635.39,39680.71,0.88958 +2023-12-22 17:15:00+00:00,39667.57,39721.68,39665.35,39700.82,1.18659 +2023-12-22 17:30:00+00:00,39700.82,39772.12,39652.49,39772.0,1.48621 +2023-12-22 17:45:00+00:00,39770.96,39785.67,39730.1,39738.0,1.59205 +2023-12-22 18:00:00+00:00,39744.2,39805.4,39714.55,39783.94,1.89954 +2023-12-22 18:15:00+00:00,39783.94,39949.98,39770.19,39897.15,4.98948 +2023-12-22 18:30:00+00:00,39889.23,39986.69,39874.28,39971.17,3.14368 +2023-12-22 18:45:00+00:00,39970.46,40019.71,39922.06,39992.08,8.15076 +2023-12-22 19:00:00+00:00,39977.51,39983.95,39866.87,39866.87,1.41559 +2023-12-22 19:15:00+00:00,39857.66,39857.66,39714.55,39779.39,2.13174 +2023-12-22 19:30:00+00:00,39784.19,39813.17,39763.03,39797.21,0.97927 +2023-12-22 19:45:00+00:00,39793.94,39793.94,39700.2,39711.81,1.90928 +2023-12-22 20:00:00+00:00,39710.01,39789.0,39690.22,39789.0,0.92975 +2023-12-22 20:15:00+00:00,39790.24,39812.12,39759.11,39773.29,1.05491 +2023-12-22 20:30:00+00:00,39761.37,39785.31,39715.2,39774.94,0.53545 +2023-12-22 20:45:00+00:00,39774.99,39818.63,39696.77,39711.92,2.87199 +2023-12-22 21:00:00+00:00,39743.25,39759.06,39721.48,39753.57,0.22665 +2023-12-22 21:15:00+00:00,39765.53,39781.27,39730.36,39776.0,0.3629 +2023-12-22 21:30:00+00:00,39776.0,39843.27,39772.78,39813.93,0.72119 +2023-12-22 21:45:00+00:00,39822.29,39835.05,39769.57,39769.57,0.21283 +2023-12-22 22:00:00+00:00,39786.45,39824.97,39741.47,39751.74,0.36319 +2023-12-22 22:15:00+00:00,39758.37,39779.78,39750.01,39779.17,0.45652 +2023-12-22 22:30:00+00:00,39780.0,39848.37,39780.0,39839.95,2.61772 +2023-12-22 22:45:00+00:00,39840.07,39861.91,39819.03,39861.91,0.32601 +2023-12-22 23:00:00+00:00,39860.64,40013.88,39860.64,39983.75,0.69022 +2023-12-22 23:15:00+00:00,39984.94,40085.0,39984.94,40019.3,1.20735 +2023-12-22 23:30:00+00:00,40016.76,40100.0,39991.25,40021.64,2.04267 +2023-12-22 23:45:00+00:00,40020.81,40054.8,40004.71,40023.67,0.53759 +2023-12-23 00:00:00+00:00,40032.99,40047.34,39964.16,40038.23,1.71741 +2023-12-23 00:15:00+00:00,40016.69,40020.05,39964.06,39992.41,0.80104 +2023-12-23 00:30:00+00:00,39987.76,40020.64,39890.27,39941.31,0.8836 +2023-12-23 00:45:00+00:00,39939.59,39974.66,39899.73,39903.95,0.51751 +2023-12-23 01:00:00+00:00,39929.2,39975.88,39915.43,39922.18,0.91937 +2023-12-23 01:15:00+00:00,39924.3,39940.02,39834.31,39847.23,1.23921 +2023-12-23 01:30:00+00:00,39838.89,39874.32,39827.96,39846.45,1.36567 +2023-12-23 01:45:00+00:00,39846.45,39888.46,39730.34,39735.42,1.49674 +2023-12-23 02:00:00+00:00,39736.36,39774.53,39680.0,39725.53,4.49999 +2023-12-23 02:15:00+00:00,39722.52,39756.43,39676.27,39683.54,0.3778 +2023-12-23 02:30:00+00:00,39687.79,39728.04,39635.1,39644.64,0.27425 +2023-12-23 02:45:00+00:00,39648.68,39688.96,39584.47,39593.78,1.81409 +2023-12-23 03:00:00+00:00,39617.28,39704.75,39573.03,39704.75,0.50276 +2023-12-23 03:15:00+00:00,39698.38,39701.1,39660.5,39691.1,0.28703 +2023-12-23 03:30:00+00:00,39680.16,39693.9,39653.44,39656.66,1.04571 +2023-12-23 03:45:00+00:00,39668.15,39702.19,39582.41,39646.62,3.97735 +2023-12-23 04:00:00+00:00,39625.74,39625.74,39375.18,39512.47,7.88034 +2023-12-23 04:15:00+00:00,39494.07,39564.21,39460.9,39564.21,2.57312 +2023-12-23 04:30:00+00:00,39565.19,39572.38,39528.61,39568.31,0.11785 +2023-12-23 04:45:00+00:00,39569.56,39622.49,39569.56,39622.37,1.0774 +2023-12-23 05:00:00+00:00,39616.71,39627.08,39595.48,39624.72,0.48414 +2023-12-23 05:15:00+00:00,39628.92,39683.25,39628.92,39656.38,1.86864 +2023-12-23 05:30:00+00:00,39657.69,39687.1,39647.16,39675.81,0.18379 +2023-12-23 05:45:00+00:00,39672.54,39716.8,39655.79,39716.8,0.38358 +2023-12-23 06:00:00+00:00,39714.86,39715.57,39643.78,39657.65,0.32641 +2023-12-23 06:15:00+00:00,39655.99,39707.17,39642.67,39697.1,0.21695 +2023-12-23 06:30:00+00:00,39692.83,39729.41,39689.38,39716.08,0.37405 +2023-12-23 06:45:00+00:00,39705.7,39746.68,39705.7,39729.99,0.35901 +2023-12-23 07:00:00+00:00,39735.55,39758.59,39716.25,39726.23,0.74625 +2023-12-23 07:15:00+00:00,39722.08,39722.08,39667.43,39708.51,0.84144 +2023-12-23 07:30:00+00:00,39701.01,39701.01,39669.96,39679.18,0.39195 +2023-12-23 07:45:00+00:00,39677.91,39705.21,39662.13,39674.03,0.93197 +2023-12-23 08:00:00+00:00,39674.03,39731.89,39671.63,39720.47,0.32623 +2023-12-23 08:15:00+00:00,39711.02,39738.46,39677.11,39677.11,0.42946 +2023-12-23 08:30:00+00:00,39684.02,39700.21,39671.06,39680.33,0.34407 +2023-12-23 08:45:00+00:00,39684.3,39725.52,39681.73,39721.97,0.31851 +2023-12-23 09:00:00+00:00,39727.11,39752.12,39694.08,39752.12,0.19677 +2023-12-23 09:15:00+00:00,39751.38,39770.75,39741.89,39744.57,1.82459 +2023-12-23 09:30:00+00:00,39745.71,39745.71,39646.63,39709.46,1.62125 +2023-12-23 09:45:00+00:00,39701.16,39760.18,39694.08,39739.66,0.65243 +2023-12-23 10:00:00+00:00,39741.7,39751.27,39698.05,39729.99,0.8212 +2023-12-23 10:15:00+00:00,39729.99,39753.86,39705.04,39730.54,0.39664 +2023-12-23 10:30:00+00:00,39723.13,39723.13,39670.26,39712.55,0.49228 +2023-12-23 10:45:00+00:00,39700.63,39719.47,39677.69,39693.11,0.37349 +2023-12-23 11:00:00+00:00,39692.85,39696.52,39646.65,39658.5,0.56864 +2023-12-23 11:15:00+00:00,39652.28,39658.5,39611.4,39649.7,1.68176 +2023-12-23 11:30:00+00:00,39649.13,39690.88,39609.69,39690.88,1.36986 +2023-12-23 11:45:00+00:00,39690.35,39727.73,39646.21,39661.51,0.56517 +2023-12-23 12:00:00+00:00,39657.97,39781.37,39654.27,39717.28,2.44108 +2023-12-23 12:15:00+00:00,39722.5,39768.72,39722.5,39753.51,0.43824 +2023-12-23 12:30:00+00:00,39761.47,39817.49,39758.88,39778.22,1.26889 +2023-12-23 12:45:00+00:00,39782.03,39860.72,39782.03,39819.49,0.67611 +2023-12-23 13:00:00+00:00,39831.86,39875.9,39829.05,39852.04,0.55492 +2023-12-23 13:15:00+00:00,39842.52,39868.58,39809.46,39822.35,0.37498 +2023-12-23 13:30:00+00:00,39817.08,39825.16,39800.01,39819.47,1.70227 +2023-12-23 13:45:00+00:00,39819.47,39874.51,39800.77,39874.51,1.50449 +2023-12-23 14:00:00+00:00,39872.91,39900.0,39834.19,39900.0,0.51753 +2023-12-23 14:15:00+00:00,39900.0,39912.46,39861.29,39868.01,1.27546 +2023-12-23 14:30:00+00:00,39868.02,39892.81,39837.77,39882.46,0.54575 +2023-12-23 14:45:00+00:00,39871.54,39942.12,39856.86,39931.51,0.98278 +2023-12-23 15:00:00+00:00,39941.7,39964.45,39892.95,39904.65,0.94216 +2023-12-23 15:15:00+00:00,39903.84,39963.59,39887.91,39887.91,3.64735 +2023-12-23 15:30:00+00:00,39887.91,39902.11,39860.3,39884.86,3.76831 +2023-12-23 15:45:00+00:00,39885.35,39964.91,39884.21,39950.49,11.65551 +2023-12-23 16:00:00+00:00,39943.95,39971.0,39904.55,39954.08,7.65095 +2023-12-23 16:15:00+00:00,39954.08,39993.0,39930.09,39966.89,7.48126 +2023-12-23 16:30:00+00:00,39956.42,39999.18,39896.9,39913.33,17.05408 +2023-12-23 16:45:00+00:00,39914.03,39962.82,39898.66,39915.46,3.27094 +2023-12-23 17:00:00+00:00,39917.17,39950.0,39900.01,39950.0,0.77306 +2023-12-23 17:15:00+00:00,39950.0,39964.96,39897.01,39900.66,0.5516 +2023-12-23 17:30:00+00:00,39907.68,39917.22,39872.6,39878.41,1.48425 +2023-12-23 17:45:00+00:00,39888.89,39898.93,39855.11,39877.21,0.32254 +2023-12-23 18:00:00+00:00,39870.74,39877.29,39833.1,39850.92,0.68709 +2023-12-23 18:15:00+00:00,39862.02,39899.74,39852.43,39892.37,0.3093 +2023-12-23 18:30:00+00:00,39907.86,39949.14,39863.66,39884.33,1.13602 +2023-12-23 18:45:00+00:00,39899.78,39982.11,39899.78,39925.16,1.22426 +2023-12-23 19:00:00+00:00,39931.5,39962.62,39882.98,39882.99,1.54439 +2023-12-23 19:15:00+00:00,39882.98,39918.02,39840.14,39911.75,3.7447 +2023-12-23 19:30:00+00:00,39911.77,39914.02,39847.94,39856.08,0.52559 +2023-12-23 19:45:00+00:00,39865.36,39873.88,39829.84,39848.14,0.5202 +2023-12-23 20:00:00+00:00,39852.9,39882.02,39845.85,39856.36,0.77939 +2023-12-23 20:15:00+00:00,39843.6,39871.85,39802.44,39830.3,2.58033 +2023-12-23 20:30:00+00:00,39831.67,39873.96,39798.46,39816.71,3.62933 +2023-12-23 20:45:00+00:00,39812.9,39891.09,39800.67,39859.57,1.83183 +2023-12-23 21:00:00+00:00,39880.78,39890.16,39816.41,39865.65,2.2839 +2023-12-23 21:15:00+00:00,39865.44,39956.49,39855.84,39908.61,4.08635 +2023-12-23 21:30:00+00:00,39912.64,39971.96,39909.64,39960.8,2.37911 +2023-12-23 21:45:00+00:00,39960.8,39970.79,39912.43,39914.29,1.62856 +2023-12-23 22:00:00+00:00,39920.81,39931.61,39870.1,39894.8,2.37255 +2023-12-23 22:15:00+00:00,39888.05,40009.96,39880.55,39960.31,3.88506 +2023-12-23 22:30:00+00:00,39960.31,39987.17,39937.0,39963.3,2.63681 +2023-12-23 22:45:00+00:00,39963.3,40016.91,39959.68,39998.59,1.73051 +2023-12-23 23:00:00+00:00,39983.22,40028.05,39934.48,40015.88,1.67745 +2023-12-23 23:15:00+00:00,40015.4,40030.09,39950.15,39977.28,1.73659 +2023-12-23 23:30:00+00:00,39986.36,40010.95,39956.08,39971.48,0.81651 +2023-12-23 23:45:00+00:00,39971.49,40003.77,39923.02,39944.37,0.61249 +2023-12-24 00:00:00+00:00,39944.35,39951.33,39872.12,39880.73,1.48011 +2023-12-24 00:15:00+00:00,39880.73,39961.47,39845.23,39947.12,2.1011 +2023-12-24 00:30:00+00:00,39956.41,39963.78,39856.21,39902.69,0.89645 +2023-12-24 00:45:00+00:00,39916.61,39942.06,39880.1,39935.12,0.59504 +2023-12-24 01:00:00+00:00,39938.25,40091.7,39913.22,40047.78,1.34427 +2023-12-24 01:15:00+00:00,40063.88,40134.3,40044.0,40045.26,1.56497 +2023-12-24 01:30:00+00:00,40042.77,40092.85,39961.23,39974.6,1.81142 +2023-12-24 01:45:00+00:00,39997.43,40028.21,39963.27,40022.35,0.378 +2023-12-24 02:00:00+00:00,40024.05,40106.78,40023.14,40087.97,0.54346 +2023-12-24 02:15:00+00:00,40083.1,40133.91,40079.67,40086.12,0.4941 +2023-12-24 02:30:00+00:00,40088.76,40106.72,40039.08,40044.82,0.33462 +2023-12-24 02:45:00+00:00,40047.96,40091.34,40003.65,40091.34,0.78233 +2023-12-24 03:00:00+00:00,40091.33,40099.69,40058.01,40062.09,0.38127 +2023-12-24 03:15:00+00:00,40058.71,40087.53,40047.6,40074.12,0.47947 +2023-12-24 03:30:00+00:00,40079.98,40079.99,40047.25,40056.08,0.60597 +2023-12-24 03:45:00+00:00,40057.86,40114.94,40055.44,40070.49,1.12539 +2023-12-24 04:00:00+00:00,40075.0,40167.3,40062.09,40130.79,0.84957 +2023-12-24 04:15:00+00:00,40122.87,40164.56,40055.45,40055.45,0.51821 +2023-12-24 04:30:00+00:00,40060.8,40076.31,40019.38,40019.38,1.54764 +2023-12-24 04:45:00+00:00,40015.4,40026.31,39991.29,40023.01,0.84803 +2023-12-24 05:00:00+00:00,40019.77,40032.0,39957.46,39960.23,0.42885 +2023-12-24 05:15:00+00:00,39960.65,39987.32,39912.52,39912.52,0.42943 +2023-12-24 05:30:00+00:00,39907.95,39924.27,39665.98,39756.6,2.11122 +2023-12-24 05:45:00+00:00,39751.69,39786.95,39702.65,39726.52,1.40342 +2023-12-24 06:00:00+00:00,39735.68,39794.81,39674.91,39730.59,1.02575 +2023-12-24 06:15:00+00:00,39716.72,39793.99,39711.66,39752.95,0.98035 +2023-12-24 06:30:00+00:00,39758.05,39821.39,39730.76,39810.65,1.44619 +2023-12-24 06:45:00+00:00,39827.95,39827.95,39756.63,39813.1,0.84395 +2023-12-24 07:00:00+00:00,39816.38,39873.1,39778.13,39873.1,0.75265 +2023-12-24 07:15:00+00:00,39880.98,39915.31,39869.44,39902.47,0.49517 +2023-12-24 07:30:00+00:00,39894.66,39894.66,39812.8,39871.61,1.39585 +2023-12-24 07:45:00+00:00,39868.44,39957.07,39868.44,39957.0,0.46719 +2023-12-24 08:00:00+00:00,39960.09,39969.87,39811.83,39833.69,1.25379 +2023-12-24 08:15:00+00:00,39833.39,39914.41,39798.23,39906.94,1.81923 +2023-12-24 08:30:00+00:00,39911.51,39967.66,39897.27,39941.57,2.58447 +2023-12-24 08:45:00+00:00,39943.82,39951.21,39873.42,39904.03,1.10155 +2023-12-24 09:00:00+00:00,39893.28,39934.66,39877.62,39933.8,0.59291 +2023-12-24 09:15:00+00:00,39933.8,39939.63,39857.51,39915.94,1.14067 +2023-12-24 09:30:00+00:00,39915.86,39971.93,39891.46,39966.29,1.20747 +2023-12-24 09:45:00+00:00,39962.49,39981.91,39941.28,39974.15,1.29923 +2023-12-24 10:00:00+00:00,39974.16,39988.04,39878.67,39885.82,1.77433 +2023-12-24 10:15:00+00:00,39878.93,39918.17,39800.01,39829.95,2.65669 +2023-12-24 10:30:00+00:00,39830.54,39830.54,39693.37,39764.93,3.65871 +2023-12-24 10:45:00+00:00,39783.39,39868.88,39770.26,39861.98,2.20485 +2023-12-24 11:00:00+00:00,39858.45,39904.46,39837.19,39841.34,1.49884 +2023-12-24 11:15:00+00:00,39846.07,39907.67,39811.48,39900.62,1.7505 +2023-12-24 11:30:00+00:00,39898.87,39900.34,39844.29,39867.13,0.83038 +2023-12-24 11:45:00+00:00,39859.16,39915.57,39837.14,39906.78,1.53216 +2023-12-24 12:00:00+00:00,39906.78,39934.84,39863.83,39894.66,1.54918 +2023-12-24 12:15:00+00:00,39894.82,39895.51,39837.14,39842.2,1.18088 +2023-12-24 12:30:00+00:00,39847.22,39923.42,39837.13,39914.87,0.7795 +2023-12-24 12:45:00+00:00,39918.97,39932.84,39893.98,39913.21,0.74522 +2023-12-24 13:00:00+00:00,39915.01,39954.96,39900.0,39941.44,0.95025 +2023-12-24 13:15:00+00:00,39947.85,40000.0,39930.74,39977.89,1.47168 +2023-12-24 13:30:00+00:00,39984.89,39990.26,39953.83,39957.89,0.94842 +2023-12-24 13:45:00+00:00,39953.84,40047.32,39947.56,40032.94,1.08508 +2023-12-24 14:00:00+00:00,40042.66,40137.04,40027.67,40133.86,2.07928 +2023-12-24 14:15:00+00:00,40133.16,40144.65,40060.59,40110.53,1.55799 +2023-12-24 14:30:00+00:00,40110.59,40144.66,40093.48,40102.61,1.45878 +2023-12-24 14:45:00+00:00,40102.62,40104.13,39997.47,40045.8,1.88995 +2023-12-24 15:00:00+00:00,40042.08,40118.08,39998.46,40082.79,1.92114 +2023-12-24 15:15:00+00:00,40077.91,40093.95,40013.89,40021.45,0.90168 +2023-12-24 15:30:00+00:00,40029.05,40040.16,39942.01,40035.2,2.02482 +2023-12-24 15:45:00+00:00,40035.2,40035.2,39946.65,39950.62,1.27102 +2023-12-24 16:00:00+00:00,39950.39,39955.0,39831.83,39884.23,3.78164 +2023-12-24 16:15:00+00:00,39870.05,39963.89,39846.1,39941.35,1.55937 +2023-12-24 16:30:00+00:00,39923.82,39986.66,39911.62,39953.19,1.30618 +2023-12-24 16:45:00+00:00,39960.64,40016.35,39960.64,39976.52,0.47816 +2023-12-24 17:00:00+00:00,39979.84,40023.06,39958.56,39999.58,0.9773 +2023-12-24 17:15:00+00:00,39994.87,40010.32,39925.9,39954.21,1.11164 +2023-12-24 17:30:00+00:00,39959.37,39975.32,39911.79,39919.39,0.75133 +2023-12-24 17:45:00+00:00,39928.02,39961.77,39912.4,39930.95,1.37112 +2023-12-24 18:00:00+00:00,39942.21,39962.88,39891.28,39929.56,0.39955 +2023-12-24 18:15:00+00:00,39933.12,39974.21,39924.23,39935.21,0.30363 +2023-12-24 18:30:00+00:00,39935.33,39935.33,39880.16,39910.66,0.55481 +2023-12-24 18:45:00+00:00,39907.63,39958.82,39854.02,39940.1,1.09628 +2023-12-24 19:00:00+00:00,39945.17,39960.45,39920.03,39957.48,0.367 +2023-12-24 19:15:00+00:00,39957.5,39966.22,39931.19,39939.66,0.4054 +2023-12-24 19:30:00+00:00,39958.22,39958.22,39854.0,39889.23,0.60278 +2023-12-24 19:45:00+00:00,39888.97,39924.54,39878.5,39913.73,0.41998 +2023-12-24 20:00:00+00:00,39922.22,39923.93,39870.99,39875.2,0.26134 +2023-12-24 20:15:00+00:00,39871.03,39889.11,39840.14,39847.11,0.31066 +2023-12-24 20:30:00+00:00,39847.11,39862.21,39760.0,39771.17,0.74711 +2023-12-24 20:45:00+00:00,39781.97,39829.32,39745.27,39809.38,0.56619 +2023-12-24 21:00:00+00:00,39798.97,39862.22,39767.4,39813.97,1.49937 +2023-12-24 21:15:00+00:00,39774.91,39857.8,39744.7,39744.7,0.31483 +2023-12-24 21:30:00+00:00,39762.17,39826.21,39703.16,39759.8,1.29088 +2023-12-24 21:45:00+00:00,39759.91,39813.77,39726.9,39783.85,1.38803 +2023-12-24 22:00:00+00:00,39794.13,39853.1,39250.0,39432.64,6.8475 +2023-12-24 22:15:00+00:00,39430.47,39601.51,39000.0,39514.31,12.30994 +2023-12-24 22:30:00+00:00,39514.31,39556.29,39035.41,39321.61,13.37947 +2023-12-24 22:45:00+00:00,39321.61,39450.63,39214.51,39450.63,4.75264 +2023-12-24 23:00:00+00:00,39355.12,39464.16,39296.61,39446.85,8.03087 +2023-12-24 23:15:00+00:00,39431.73,39499.3,39399.85,39464.24,2.32564 +2023-12-24 23:30:00+00:00,39463.53,39532.4,39410.13,39532.39,0.62889 +2023-12-24 23:45:00+00:00,39539.72,39557.32,39357.88,39404.3,1.08645 +2023-12-25 00:00:00+00:00,39394.84,39497.32,39347.81,39417.88,1.70173 diff --git a/tests/services/test_market_data_source_service.py b/tests/services/test_market_data_source_service.py index 6545c860..7c72dfee 100644 --- a/tests/services/test_market_data_source_service.py +++ b/tests/services/test_market_data_source_service.py @@ -38,7 +38,7 @@ def setUp(self) -> None: csv_file_path=os.path.join( self.resource_dir, "market_data_sources", - "TICKER_BTC-EUR_BITVAVO_2021-06-02:00:00_2021-06-26:00:00.csv" + "TICKER_BTC-EUR_BINANCE_2023-08-23:22:00_2023-12-02:00:00.csv" ) )) algorithm = Algorithm() diff --git a/tests/services/test_order_backtest_service.py b/tests/services/test_order_backtest_service.py index 4564e0ed..5b9b7009 100644 --- a/tests/services/test_order_backtest_service.py +++ b/tests/services/test_order_backtest_service.py @@ -2,7 +2,7 @@ import pandas as pd from decimal import Decimal from datetime import datetime - +from dateutil.tz import tzutc from investing_algorithm_framework import create_app, RESOURCE_DIRECTORY, \ PortfolioConfiguration, Algorithm, MarketCredential, \ BACKTESTING_INDEX_DATETIME @@ -527,7 +527,7 @@ def test_has_executed_buy_order(self): "Low": 0.24262, "Close": 0.24262, "Volume": 0.24262, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -546,7 +546,7 @@ def test_has_executed_buy_order(self): "Low": 0.24162, "Close": 0.24162, "Volume": 0.24162, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -566,7 +566,7 @@ def test_has_executed_buy_order(self): "Low": 0.24362, "Close": 0.24362, "Volume": 0.24362, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -586,7 +586,7 @@ def test_has_executed_buy_order(self): "Low": 0.24462, "Close": 0.24462, "Volume": 0.24462, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) }, { "Open": 0.24300, @@ -594,7 +594,7 @@ def test_has_executed_buy_order(self): "Low": 0.24300, "Close": 0.24300, "Volume": 0.24300, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -613,7 +613,7 @@ def test_has_executed_buy_order(self): "Low": 0.24162, "Close": 0.24162, "Volume": 0.24162, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) }, { "Open": 0.24200, @@ -621,7 +621,7 @@ def test_has_executed_buy_order(self): "Low": 0.24200, "Close": 0.24200, "Volume": 0.24200, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) }, { "Open": 0.24300, @@ -629,7 +629,7 @@ def test_has_executed_buy_order(self): "Low": 0.24300, "Close": 0.24300, "Volume": 0.24300, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -702,7 +702,7 @@ def test_has_executed_sell_order(self): "Low": 0.24262, "Close": 0.24262, "Volume": 0.24262, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -721,7 +721,7 @@ def test_has_executed_sell_order(self): "Low": 0.24362, "Close": 0.24362, "Volume": 0.24362, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -741,7 +741,7 @@ def test_has_executed_sell_order(self): "Low": 0.24162, "Close": 0.24162, "Volume": 0.24162, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -761,7 +761,7 @@ def test_has_executed_sell_order(self): "Low": 0.24162, "Close": 0.24162, "Volume": 0.24162, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) }, { "Open": 0.24000, @@ -769,7 +769,7 @@ def test_has_executed_sell_order(self): "Low": 0.24000, "Close": 0.24000, "Volume": 0.24000, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame( @@ -788,7 +788,7 @@ def test_has_executed_sell_order(self): "Low": 0.24300, "Close": 0.24300, "Volume": 0.24300, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) }, { "Open": 0.24162, @@ -796,7 +796,7 @@ def test_has_executed_sell_order(self): "Low": 0.24162, "Close": 0.24162, "Volume": 0.24162, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) }, { "Open": 0.24000, @@ -804,7 +804,7 @@ def test_has_executed_sell_order(self): "Low": 0.24000, "Close": 0.24000, "Volume": 0.24000, - "Timestamp": datetime.utcnow() + "Timestamp": datetime.now(tz=tzutc()) } ] ohlcv_df = pd.DataFrame(