Files
v2realbot/testy/dash_backtest_results.py
David Brazda af9e944928 first commit
2023-04-12 21:00:03 +02:00

9916 lines
221 KiB
Python

import os,sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import dash
import pandas as pd
import dash_bootstrap_components as dbc
from dash.dependencies import Input, Output
from dash import dcc, html, dash_table
from uuid import UUID, uuid4
from alpaca.trading.enums import OrderSide, OrderStatus, TradeEvent, OrderType
from common.model import TradeUpdate, Order
from rich import print
import threading
import asyncio
from config import BT_DELAYS
from utils.utils import AttributeDict, ltp, zoneNY, trunc, count_decimals
from utils.tlog import tlog
from datetime import datetime
import pandas as pd
import matplotlib.pyplot as plt
import seaborn; seaborn.set()
import mplfinance as mpf
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import numpy as np
from bisect import bisect_left
from backtesting.backtester import Backtester
from uuid import UUID
import datetime
from html.parser import HTMLParser
import requests
###html saver
def patch_file(file_path: str, content: bytes, extra: dict = None) -> bytes:
if file_path == 'index.html':
index_html_content = content.decode('utf8')
extra_jsons = f'''
var patched_jsons_content={{
{','.join(["'/" + k + "':" + v.decode("utf8") + "" for k, v in extra.items()])}
}};
'''
patched_content = index_html_content.replace(
'<footer>',
f'''
<footer>
<script>
''' + extra_jsons + '''
const origFetch = window.fetch;
window.fetch = function () {
const e = arguments[0]
if (patched_jsons_content.hasOwnProperty(e)) {
return Promise.resolve({
json: () => Promise.resolve(patched_jsons_content[e]),
headers: new Headers({'content-type': 'application/json'}),
status: 200,
});
} else {
return origFetch.apply(this, arguments)
}
}
</script>
'''
).replace(
'href="/',
'href="'
).replace(
'src="/',
'src="'
)
return patched_content.encode('utf8')
else:
return content
def write_file(file_path: str, content: bytes, target_dir='target', ):
target_file_path = os.path.join(target_dir, file_path.lstrip('/').split('?')[0])
target_leaf_dir = os.path.dirname(target_file_path)
os.makedirs(target_leaf_dir, exist_ok=True)
with open(target_file_path, 'wb') as f:
f.write(content)
pass
class ExternalResourceParser(HTMLParser):
def __init__(self):
super().__init__()
self.resources = []
def handle_starttag(self, tag, attrs):
if tag == 'link':
for k, v in attrs:
if k == 'href':
self.resources.append(v)
if tag == 'script':
for k, v in attrs:
if k == 'src':
self.resources.append(v)
def make_static(base_url, target_dir='target'):
index_html_bytes = requests.get(base_url).content
json_paths = ['_dash-layout', '_dash-dependencies', ]
extra_json = {}
for json_path in json_paths:
json_content = requests.get(base_url + json_path).content
extra_json[json_path] = json_content
patched_bytes = patch_file('index.html', index_html_bytes, extra=extra_json)
write_file('index.html', patched_bytes, target_dir)
parser = ExternalResourceParser()
parser.feed(patched_bytes.decode('utf8'))
extra_js = [
'_dash-component-suites/dash/dcc/async-graph.js',
'_dash-component-suites/dash/dcc/async-plotlyjs.js',
'_dash-component-suites/dash/dash_table/async-table.js',
'_dash-component-suites/dash/dash_table/async-highlight.js'
]
for resource_url in parser.resources + extra_js:
resource_url_full = base_url + resource_url
print(f'get {resource_url_full}')
resource_bytes = requests.get(resource_url_full).content
patched_bytes = patch_file(resource_url, resource_bytes)
write_file(resource_url, patched_bytes, target_dir)
#html saver
class Neco:
bars = {
'high': [
42.59,
42.6,
42.58,
42.58,
42.585,
42.58,
42.59,
42.62,
42.61,
42.6,
42.6,
42.59,
42.585,
42.58,
42.58,
42.58,
42.58,
42.56,
42.55,
42.54,
42.52,
42.535,
42.54,
42.525,
42.535,
42.5188,
42.52,
42.485,
42.465,
42.4626,
42.46,
42.455,
42.465,
42.4655,
42.469,
42.46,
42.48,
42.52,
42.52,
42.521,
42.5287,
42.5,
42.51,
42.505,
42.485,
42.475,
42.49,
42.4834,
42.465,
42.45,
42.4688,
42.455,
42.455,
42.4472,
42.43,
42.42,
42.39,
42.38,
42.4,
42.395,
42.4085,
42.4,
42.395,
42.395,
42.4,
42.38,
42.42,
42.41,
42.4001,
42.41,
42.4186,
42.42,
42.44,
42.4394,
42.43,
42.42,
42.43,
42.4,
42.395,
42.4,
42.4,
42.405,
42.41,
42.4469,
42.47,
42.5,
42.5059,
42.57,
42.59,
42.585,
42.56,
42.57,
42.565,
42.58,
42.6099,
42.63,
42.676,
42.68,
42.72,
42.85,
42.845,
42.79,
42.78,
42.78,
42.77,
42.77,
42.72,
42.715,
42.73,
42.7699,
42.76,
42.76,
42.75,
42.74,
42.75,
42.735,
42.73,
42.74,
42.76,
42.8,
42.815,
42.83,
42.8498,
42.87,
42.88,
42.855,
42.84,
42.87,
42.8799,
42.8999,
42.93,
42.93,
42.94,
42.96,
42.99,
43.03,
43.05,
43.03,
43.04,
43.05,
43.045,
43.07,
43.105,
43.113,
43.0867,
43.1,
43.035,
43.01,
43.025,
43.01,
43.015,
43.025,
43.025,
43.02,
43.04,
43.05,
43.06,
43.045,
43.045,
43.045,
43.05,
43.0302,
43.03,
43.0289,
43.03,
42.98,
42.96,
42.9581,
42.96,
42.935,
42.96,
42.98,
42.98,
42.94,
42.9176,
42.89,
42.905,
42.9,
42.9,
42.92,
42.93,
42.93,
42.925,
42.93,
42.955,
42.945,
42.955,
42.96,
42.955,
42.945,
42.925,
42.92,
42.935,
42.93,
42.92,
42.92,
42.92,
42.91,
42.9175,
42.92,
42.92,
42.96,
42.95,
42.932,
42.945,
42.945,
42.925,
42.92,
42.92,
42.94,
42.925,
42.91,
42.9099,
42.9199,
42.92,
42.91,
42.92,
42.89,
42.88,
42.84,
42.8219,
42.83,
42.83,
42.805,
42.82,
42.865,
42.908,
42.92,
42.92,
42.905,
42.8952,
42.915,
42.92,
42.93,
42.92,
42.91,
42.91,
42.92,
42.9194,
42.92,
42.92,
42.93,
42.93,
42.95,
43,
42.995,
42.98,
43,
43.0372,
43.04,
43.055,
43.03,
42.99,
42.975,
42.995,
42.995,
42.99,
42.985,
42.97,
42.975,
42.99,
43.015,
42.99,
42.975,
42.97,
43.01,
43.02,
43.05,
43.04,
43.025,
42.965,
42.97,
43,
43.005,
43.005,
42.98,
42.965,
42.985,
42.99,
42.965,
42.985,
42.985,
42.955,
42.9401,
42.945,
42.92,
42.91,
42.92,
42.925,
42.93,
42.94,
42.94,
42.975,
42.965,
42.95,
42.955,
42.975,
42.975,
42.96,
42.95,
42.97,
42.975,
42.98,
43.03,
43.0799,
43.07,
43.08,
43.07,
43.04,
43.035,
43,
43,
43.035,
43.035,
43.03,
43.03,
43.05,
43.06,
43.08,
43.08,
43.065,
43.05,
43.05,
43.07,
43.035,
43.04,
43.01,
42.99,
42.99,
43,
43,
42.995,
43.01,
43.01,
43.015,
43.015,
43.05,
43.1,
43.095,
43.11,
43.07,
43.045,
43.035,
43.02,
43.03,
43.05,
43.035,
43.02,
42.9901,
42.9711,
43.01,
43.01,
42.98,
42.985,
42.99,
42.96,
42.96,
42.955,
42.93,
42.9181,
42.9203,
42.92,
42.92,
42.91,
42.905,
42.885,
42.88,
42.89,
42.935,
42.945,
42.945,
42.94,
42.925,
42.9,
42.895,
42.9066,
42.91,
42.89,
42.885,
42.8501,
42.86,
42.86,
42.85,
42.84,
42.8563,
42.855,
42.86,
42.86,
42.87,
42.86,
42.87,
42.87,
42.895,
42.905,
42.9002,
42.89,
42.88,
42.88,
42.9,
42.88,
42.86,
42.845,
42.855,
42.835,
42.845,
42.845,
42.825,
42.82,
42.81,
42.82,
42.815,
42.81,
42.8,
42.8,
42.82,
42.8193,
42.83,
42.83,
42.825,
42.815,
42.78,
42.78,
42.795,
42.79,
42.755,
42.75,
42.765,
42.79,
42.785,
42.79,
42.81,
42.78,
42.7999,
42.805,
42.8399,
42.835,
42.825,
42.87,
42.88,
42.86,
42.8572,
42.8562,
42.845,
42.855,
42.887,
42.915,
42.92,
42.96,
42.955,
42.96,
42.975,
42.965,
42.955,
42.92,
42.92,
42.93,
42.89,
42.89,
42.88,
42.895,
42.895,
42.895,
42.9,
42.886,
42.87,
42.865,
42.885,
42.915,
42.935,
42.96,
42.97,
42.985,
42.97,
42.995,
43.01,
42.99,
42.975,
42.98,
42.995,
42.995,
42.97,
42.955,
42.935,
42.925,
42.9299,
42.93,
42.93,
42.915,
42.9,
42.925,
42.94,
42.94,
42.94,
42.945,
42.96,
43.005,
43.005,
43.005,
42.995,
42.96,
42.9375,
42.95,
42.945,
42.955,
42.96,
42.96,
42.955,
42.925,
42.92,
42.92,
42.945,
42.96,
42.975,
42.965,
42.96,
42.97,
43,
42.9956,
42.98,
42.9799,
42.97,
42.93,
42.93,
42.96,
42.94,
42.925,
42.89,
42.93,
42.93,
42.945,
42.975,
42.965,
42.995,
43,
42.985,
43.0279,
43.035,
43.02,
43.01,
43.005,
43.015,
43,
43.015,
43.01,
43.005,
42.995,
42.9956,
42.99,
42.97,
43.005,
43.02,
43.03,
43.07,
43.07,
43.07,
43.095,
43.1,
43.07,
43.11,
43.11
],
'low': [
42.57,
42.5777,
42.555,
42.57,
42.57,
42.565,
42.565,
42.6,
42.59,
42.5734,
42.5734,
42.565,
42.565,
42.57,
42.57,
42.57,
42.56,
42.54,
42.53,
42.52,
42.5001,
42.51,
42.5271,
42.51,
42.51,
42.495,
42.48,
42.455,
42.44,
42.46,
42.4423,
42.44,
42.45,
42.46,
42.455,
42.45,
42.46,
42.48,
42.51,
42.51,
42.51,
42.49,
42.495,
42.4542,
42.46,
42.465,
42.47,
42.47,
42.43,
42.44,
42.445,
42.45,
42.44,
42.4362,
42.41,
42.39,
42.36,
42.36,
42.3857,
42.38,
42.38,
42.39,
42.395,
42.3876,
42.379,
42.37,
42.375,
42.39,
42.3942,
42.39,
42.409,
42.4,
42.41,
42.425,
42.41,
42.41,
42.395,
42.39,
42.38,
42.385,
42.3899,
42.38,
42.3999,
42.405,
42.435,
42.475,
42.49,
42.51,
42.57,
42.5634,
42.545,
42.545,
42.54,
42.56,
42.58,
42.61,
42.635,
42.655,
42.665,
42.72,
42.77,
42.77,
42.74,
42.74,
42.73,
42.68,
42.7,
42.6879,
42.7,
42.72,
42.74,
42.73,
42.73,
42.73,
42.71,
42.71,
42.71,
42.695,
42.74,
42.76,
42.8,
42.81,
42.82,
42.835,
42.855,
42.8218,
42.8279,
42.84,
42.8601,
42.8717,
42.895,
42.92,
42.925,
42.935,
42.965,
42.9801,
43.0005,
43.015,
42.985,
43.04,
43.03,
43.0395,
43.0778,
43.0843,
43.07,
43.02,
42.98,
42.97,
43.0024,
42.99,
42.99,
43,
43.0014,
43.01,
43.005,
43.03,
43.02,
43.02,
42.99,
42.99,
43.01,
43.0055,
42.985,
42.99,
42.98,
42.94,
42.95,
42.94,
42.925,
42.915,
42.94,
42.94,
42.935,
42.905,
42.87,
42.87,
42.88,
42.87,
42.87,
42.91,
42.9,
42.9,
42.91,
42.91,
42.93,
42.93,
42.935,
42.945,
42.935,
42.9101,
42.92,
42.9,
42.915,
42.9,
42.9,
42.91,
42.9,
42.895,
42.905,
42.9023,
42.91,
42.91,
42.915,
42.92,
42.92,
42.91,
42.91,
42.905,
42.895,
42.915,
42.893,
42.895,
42.895,
42.905,
42.89,
42.88,
42.9,
42.86,
42.83,
42.82,
42.8,
42.8029,
42.77,
42.785,
42.8048,
42.84,
42.86,
42.9093,
42.9,
42.89,
42.895,
42.8925,
42.9,
42.91,
42.91,
42.9,
42.905,
42.9,
42.91,
42.915,
42.91,
42.91,
42.91,
42.91,
42.955,
42.97,
42.94,
42.9689,
43.01,
43.02,
43.04,
42.99,
42.96,
42.97,
42.9764,
42.98,
42.98,
42.96,
42.95,
42.96,
42.9601,
42.98,
42.96,
42.965,
42.96,
42.9647,
43.01,
43.015,
43.02,
42.9501,
42.95,
42.96,
42.965,
42.9945,
42.98,
42.925,
42.94,
42.97,
42.96,
42.95,
42.965,
42.93,
42.937,
42.93,
42.915,
42.905,
42.9,
42.91,
42.92,
42.92,
42.93,
42.91,
42.94,
42.94,
42.92,
42.95,
42.955,
42.95,
42.94,
42.945,
42.94,
42.9534,
42.955,
42.99,
43.0275,
43.04,
43.06,
43.011,
43.03,
42.9901,
42.985,
42.985,
43,
43.0101,
43.002,
43.01,
43.02,
43.05,
43.05,
43.06,
43.04,
43.025,
43.02,
43.02,
43.02,
43,
42.99,
42.955,
42.965,
42.985,
42.985,
42.985,
42.9925,
42.99,
43,
43,
43,
43.05,
43.0699,
43.07,
43.0338,
43.03,
43.0237,
43,
43.015,
43.03,
43.0201,
42.99,
42.965,
42.96,
42.975,
42.98,
42.96,
42.98,
42.96,
42.95,
42.94,
42.9227,
42.915,
42.9,
42.9,
42.9,
42.9,
42.89,
42.885,
42.865,
42.8601,
42.87,
42.89,
42.93,
42.94,
42.925,
42.9,
42.87,
42.8725,
42.89,
42.875,
42.8719,
42.85,
42.83,
42.845,
42.84,
42.82,
42.825,
42.8225,
42.84,
42.845,
42.845,
42.86,
42.84,
42.8582,
42.86,
42.86,
42.885,
42.88,
42.88,
42.85,
42.845,
42.86,
42.86,
42.84,
42.83,
42.83,
42.8228,
42.825,
42.83,
42.815,
42.8,
42.8,
42.81,
42.805,
42.77,
42.775,
42.775,
42.79,
42.8,
42.805,
42.805,
42.81,
42.775,
42.77,
42.77,
42.775,
42.73,
42.7478,
42.74,
42.74,
42.755,
42.77,
42.7707,
42.78,
42.76,
42.77,
42.7838,
42.81,
42.82,
42.805,
42.825,
42.85,
42.84,
42.84,
42.835,
42.84,
42.84,
42.85,
42.88,
42.915,
42.92,
42.94,
42.95,
42.945,
42.94,
42.91,
42.905,
42.905,
42.88,
42.88,
42.87,
42.87,
42.865,
42.885,
42.88,
42.89,
42.855,
42.85,
42.85,
42.87,
42.875,
42.91,
42.925,
42.95,
42.94,
42.94,
42.965,
42.9899,
42.95,
42.95,
42.96,
42.965,
42.96,
42.945,
42.935,
42.88,
42.9,
42.9,
42.9138,
42.915,
42.895,
42.89,
42.895,
42.925,
42.93,
42.925,
42.935,
42.945,
42.955,
42.99,
42.98,
42.95,
42.91,
42.92,
42.93,
42.925,
42.935,
42.935,
42.95,
42.92,
42.9,
42.9,
42.9,
42.905,
42.945,
42.96,
42.93,
42.945,
42.9452,
42.955,
42.96,
42.96,
42.945,
42.92,
42.91,
42.91,
42.925,
42.915,
42.88,
42.875,
42.8825,
42.91,
42.905,
42.94,
42.935,
42.96,
42.98,
42.96,
42.965,
43,
42.99,
43,
42.97,
42.98,
42.975,
42.98,
42.9925,
42.99,
42.97,
42.975,
42.9425,
42.94,
42.965,
42.995,
43.0133,
43.025,
43.054,
43.05,
43.06,
43.06,
43.06,
43.055,
43.0801
],
'volume': [
17877,
12448,
20553,
2600,
6480,
2274,
23966,
15992,
12708,
5752,
2876,
21889,
44456,
8353,
40058,
29548,
28712,
18674,
9961,
18418,
6927,
22374,
10339,
10906,
11321,
13798,
11182,
21038,
9725,
4085,
5597,
13923,
7642,
1821,
2939,
3694,
26729,
28065,
3131,
3863,
5349,
4136,
7338,
14122,
8109,
7513,
9345,
1627,
29623,
1701,
6631,
5022,
3331,
1438,
3022,
6636,
4700,
14144,
6866,
2769,
11720,
2385,
867,
2906,
3266,
3449,
17050,
2231,
3214,
6103,
3221,
11709,
22736,
8583,
7700,
517,
12188,
4778,
3975,
3500,
5238,
11725,
1725,
13538,
21423,
30402,
7114,
21025,
21254,
5296,
5128,
11007,
15519,
21704,
18982,
40080,
23474,
13551,
22490,
102410,
19932,
9673,
19141,
31825,
38985,
248591,
24309,
31088,
52864,
9925,
10773,
17063,
7916,
2462,
35053,
3964,
14346,
19809,
10072,
12631,
4410,
10474,
22355,
20857,
8587,
16214,
14066,
5410,
6475,
22909,
178593,
10300,
18145,
23925,
25427,
35876,
45092,
4876,
11148,
9742,
4274,
10116,
26180,
20561,
25149,
42778,
9838,
18454,
5368,
9755,
11392,
15493,
6916,
4500,
36164,
15359,
12633,
15531,
24471,
15764,
12900,
9135,
15515,
16946,
11668,
32218,
3100,
3390,
13088,
5948,
11186,
10657,
58863,
16310,
23428,
8711,
12220,
14306,
46224,
17256,
14520,
3800,
8103,
4449,
8648,
5423,
8988,
12241,
8800,
8250,
900,
6700,
7996,
41416,
11120,
21517,
11928,
5151,
15281,
4782,
3802,
51438,
6771,
7224,
53037,
18287,
2702,
9852,
11760,
22833,
5628,
4254,
6120,
4623,
15141,
9365,
6301,
5574,
14584,
8692,
16402,
9040,
70085,
33648,
8673,
4700,
10624,
23947,
7578,
1500,
1565,
9112,
18785,
52022,
20147,
16257,
500,
7100,
800,
7971,
5087,
71558,
16996,
27097,
40366,
9096,
20856,
6918,
14511,
4543,
14363,
26965,
3340,
3300,
13975,
2149,
10973,
13727,
3920,
1050,
23112,
35950,
25230,
601,
5324,
17767,
3400,
22077,
21135,
9601,
3532,
1885,
8543,
4126,
2801,
36817,
7369,
6893,
6148,
3762,
3655,
67858,
4541,
5706,
4079,
6432,
8398,
4400,
3853,
1903,
900,
11574,
25137,
2265,
7511,
4283,
15901,
7087,
6877,
3462,
7598,
6862,
12899,
47686,
29427,
10267,
17777,
12815,
2616,
12321,
4702,
9900,
27904,
9676,
5724,
5680,
8540,
1736,
22877,
4507,
3518,
19232,
5639,
15776,
5387,
7992,
9784,
18323,
3257,
3701,
14470,
1480,
17394,
18205,
11450,
4338,
13402,
29682,
17324,
29025,
5625,
5753,
4791,
8095,
2400,
6640,
5588,
5125,
7079,
2597,
8925,
5292,
4300,
1000,
7206,
7092,
9077,
12703,
2873,
20645,
14163,
8925,
3506,
27481,
6322,
19637,
20438,
19559,
11506,
7663,
1926,
2920,
8434,
7015,
10702,
5548,
25704,
3613,
6891,
17409,
7405,
3066,
24836,
4200,
14529,
6609,
3166,
24293,
7434,
6046,
3547,
2339,
10745,
17395,
5843,
2157,
14287,
3609,
13928,
5202,
9761,
5333,
9999,
4250,
5117,
5714,
5031,
3897,
2533,
8500,
5693,
122437,
22024,
6476,
11603,
26026,
16025,
6039,
8248,
10475,
2352,
11436,
9171,
36183,
2806,
10360,
7926,
6169,
18755,
13092,
8682,
5370,
30456,
5314,
10813,
9369,
9282,
17907,
16060,
9668,
4589,
5008,
2681,
4428,
23369,
13098,
3800,
10748,
10177,
10026,
30238,
8799,
22369,
8189,
13099,
20121,
5318,
15591,
1450,
14659,
8444,
11893,
5195,
7722,
4728,
6785,
6641,
30961,
3346,
21770,
39917,
19003,
7492,
11819,
13542,
17348,
12413,
2613,
6053,
8426,
10785,
7380,
23553,
7465,
6092,
4337,
5054,
9169,
3758,
12644,
13395,
8554,
5849,
17606,
9824,
28481,
6728,
7421,
28486,
25376,
5963,
21621,
9609,
9708,
8135,
3689,
10706,
14595,
19081,
13103,
32776,
6919,
15626,
14907,
8788,
17395,
38710,
20371,
11332,
31903,
25221,
7109,
35978,
37117,
36497,
28814,
23701,
38914,
41401,
44565,
41255,
53303,
11299,
12039,
28530,
54523,
59422,
24118,
9669,
29428,
45628,
24600,
42713,
20663,
27810,
38048,
18861,
30217,
70017,
76637,
34470,
41509,
71427,
58590,
33380,
72700,
80660,
24254,
181265,
53128
],
'close': [
42.585,
42.5777,
42.58,
42.57,
42.58,
42.565,
42.59,
42.61,
42.59,
42.5734,
42.5734,
42.58,
42.58,
42.58,
42.57,
42.57,
42.565,
42.55,
42.54,
42.53,
42.505,
42.535,
42.53,
42.52,
42.52,
42.5,
42.4807,
42.469,
42.46,
42.46,
42.45,
42.44,
42.465,
42.465,
42.46,
42.46,
42.475,
42.51,
42.515,
42.521,
42.51,
42.4982,
42.5,
42.455,
42.475,
42.465,
42.485,
42.47,
42.45,
42.44,
42.46,
42.45,
42.44,
42.445,
42.415,
42.395,
42.36,
42.38,
42.39,
42.39,
42.39,
42.4,
42.395,
42.395,
42.379,
42.3799,
42.4065,
42.4,
42.4,
42.405,
42.41,
42.41,
42.44,
42.427,
42.415,
42.41,
42.395,
42.4,
42.3801,
42.4,
42.4,
42.4,
42.4,
42.44,
42.47,
42.495,
42.5059,
42.56,
42.58,
42.5634,
42.55,
42.565,
42.565,
42.57,
42.6,
42.63,
42.66,
42.66,
42.72,
42.84,
42.77,
42.79,
42.75,
42.765,
42.735,
42.71,
42.71,
42.7001,
42.72,
42.74,
42.74,
42.745,
42.74,
42.73,
42.72,
42.72,
42.73,
42.738,
42.75,
42.795,
42.81,
42.825,
42.845,
42.87,
42.855,
42.83,
42.84,
42.8633,
42.8799,
42.89,
42.9263,
42.9265,
42.935,
42.96,
42.99,
43.03,
43.02,
43.02,
43.04,
43.045,
43.03,
43.07,
43.1,
43.0843,
43.08,
43.03,
42.98,
43,
43.004,
43.01,
43,
43.01,
43.015,
43.01,
43.035,
43.045,
43.025,
43.045,
42.99,
43.045,
43.0192,
43.0201,
42.9955,
43.0289,
42.985,
42.96,
42.95,
42.945,
42.925,
42.935,
42.94,
42.98,
42.935,
42.91,
42.875,
42.88,
42.8903,
42.875,
42.9,
42.9188,
42.91,
42.93,
42.91,
42.9285,
42.94,
42.9401,
42.955,
42.96,
42.935,
42.9101,
42.925,
42.92,
42.935,
42.91,
42.91,
42.92,
42.91,
42.91,
42.91,
42.91,
42.9121,
42.945,
42.92,
42.93,
42.93,
42.93,
42.91,
42.91,
42.91,
42.925,
42.91,
42.905,
42.9,
42.915,
42.891,
42.91,
42.9,
42.86,
42.84,
42.82,
42.805,
42.825,
42.795,
42.8,
42.82,
42.865,
42.908,
42.915,
42.905,
42.89,
42.895,
42.91,
42.915,
42.92,
42.9104,
42.91,
42.905,
42.92,
42.915,
42.915,
42.915,
42.92,
42.92,
42.945,
42.99,
42.97,
42.9699,
43,
43.0359,
43.03,
43.04,
42.99,
42.97,
42.9701,
42.99,
42.99,
42.99,
42.96,
42.96,
42.96,
42.99,
42.98,
42.975,
42.965,
42.9645,
43.01,
43.015,
43.03,
43.02,
42.9599,
42.96,
42.9646,
43,
43.005,
42.98,
42.945,
42.965,
42.98,
42.96,
42.96,
42.985,
42.95,
42.94,
42.94,
42.92,
42.91,
42.9,
42.92,
42.921,
42.93,
42.93,
42.93,
42.96,
42.945,
42.95,
42.95,
42.9694,
42.955,
42.95,
42.9485,
42.97,
42.9534,
42.98,
43.02,
43.05,
43.06,
43.065,
43.035,
43.035,
42.995,
42.985,
43,
43.025,
43.0101,
43.005,
43.028,
43.045,
43.06,
43.075,
43.06,
43.045,
43.04,
43.05,
43.025,
43.025,
43.01,
42.9918,
42.97,
42.99,
42.985,
42.99,
42.9936,
43.01,
43.0012,
43.015,
43.005,
43.05,
43.07,
43.095,
43.078,
43.0338,
43.03,
43.025,
43.015,
43.03,
43.0316,
43.0296,
42.995,
42.965,
42.9711,
43.005,
42.985,
42.97,
42.985,
42.96,
42.955,
42.96,
42.9227,
42.915,
42.91,
42.9,
42.915,
42.92,
42.905,
42.8923,
42.8664,
42.87,
42.885,
42.93,
42.935,
42.94,
42.925,
42.905,
42.87,
42.89,
42.9061,
42.88,
42.89,
42.85,
42.845,
42.86,
42.84,
42.8401,
42.8263,
42.85,
42.845,
42.8507,
42.86,
42.86,
42.85,
42.87,
42.86,
42.881,
42.89,
42.885,
42.885,
42.85,
42.88,
42.87,
42.86,
42.84,
42.84,
42.83,
42.83,
42.845,
42.83,
42.825,
42.805,
42.81,
42.815,
42.805,
42.78,
42.79,
42.79,
42.82,
42.8005,
42.82,
42.81,
42.815,
42.775,
42.775,
42.775,
42.785,
42.76,
42.755,
42.745,
42.76,
42.79,
42.775,
42.79,
42.795,
42.78,
42.79,
42.805,
42.83,
42.825,
42.825,
42.865,
42.85,
42.85,
42.8438,
42.835,
42.845,
42.8448,
42.875,
42.915,
42.92,
42.95,
42.95,
42.95,
42.97,
42.9532,
42.91,
42.91,
42.92,
42.885,
42.885,
42.87,
42.875,
42.8901,
42.895,
42.89,
42.89,
42.86,
42.855,
42.865,
42.885,
42.91,
42.9268,
42.96,
42.965,
42.94,
42.97,
42.995,
42.995,
42.95,
42.9702,
42.965,
42.995,
42.97,
42.945,
42.94,
42.91,
42.9075,
42.925,
42.92,
42.9175,
42.9,
42.895,
42.925,
42.94,
42.935,
42.93,
42.94,
42.9599,
43,
42.9976,
42.9801,
42.95,
42.92,
42.93,
42.93,
42.94,
42.95,
42.9525,
42.955,
42.92,
42.91,
42.91,
42.92,
42.945,
42.96,
42.965,
42.9439,
42.955,
42.955,
42.99,
42.9626,
42.977,
42.9602,
42.925,
42.91,
42.93,
42.93,
42.92,
42.88,
42.885,
42.925,
42.92,
42.945,
42.965,
42.96,
42.995,
42.985,
42.97,
43.0279,
43,
43.01,
43.005,
42.99,
42.985,
42.99,
42.99,
43,
42.995,
42.995,
42.985,
42.955,
42.97,
42.995,
43.02,
43.025,
43.07,
43.055,
43.065,
43.085,
43.065,
43.06,
43.08,
43.105
],
'hlcc4': [
42.583,
42.583,
42.574,
42.572,
42.579,
42.569,
42.584,
42.61,
42.595,
42.58,
42.58,
42.579,
42.578,
42.578,
42.572,
42.572,
42.567,
42.55,
42.54,
42.53,
42.508,
42.529,
42.532,
42.519,
42.521,
42.503,
42.49,
42.469,
42.456,
42.461,
42.451,
42.444,
42.461,
42.464,
42.461,
42.458,
42.472,
42.505,
42.515,
42.518,
42.515,
42.497,
42.501,
42.467,
42.474,
42.468,
42.483,
42.473,
42.449,
42.442,
42.458,
42.451,
42.444,
42.443,
42.417,
42.4,
42.367,
42.375,
42.391,
42.389,
42.392,
42.398,
42.395,
42.393,
42.384,
42.377,
42.402,
42.4,
42.399,
42.403,
42.412,
42.41,
42.432,
42.43,
42.417,
42.412,
42.404,
42.398,
42.384,
42.396,
42.397,
42.396,
42.402,
42.433,
42.461,
42.491,
42.502,
42.55,
42.58,
42.569,
42.551,
42.561,
42.559,
42.57,
42.597,
42.625,
42.658,
42.664,
42.706,
42.812,
42.789,
42.785,
42.755,
42.763,
42.743,
42.718,
42.71,
42.701,
42.718,
42.742,
42.745,
42.745,
42.74,
42.732,
42.725,
42.721,
42.725,
42.728,
42.75,
42.788,
42.809,
42.823,
42.84,
42.861,
42.861,
42.834,
42.837,
42.859,
42.875,
42.888,
42.919,
42.926,
42.934,
42.954,
42.984,
43.018,
43.023,
43.021,
43.026,
43.045,
43.034,
43.062,
43.096,
43.091,
43.079,
43.045,
42.994,
42.995,
43.009,
43.005,
43.001,
43.011,
43.014,
43.012,
43.029,
43.043,
43.033,
43.039,
43.004,
43.031,
43.025,
43.019,
43.002,
43.019,
42.995,
42.96,
42.953,
42.947,
42.934,
42.93,
42.945,
42.97,
42.946,
42.916,
42.884,
42.88,
42.891,
42.88,
42.892,
42.917,
42.913,
42.922,
42.914,
42.924,
42.941,
42.939,
42.95,
42.956,
42.94,
42.919,
42.924,
42.915,
42.93,
42.913,
42.91,
42.918,
42.91,
42.906,
42.911,
42.911,
42.914,
42.94,
42.926,
42.928,
42.931,
42.929,
42.914,
42.911,
42.909,
42.926,
42.91,
42.904,
42.901,
42.914,
42.898,
42.902,
42.905,
42.868,
42.848,
42.825,
42.808,
42.821,
42.797,
42.797,
42.816,
42.859,
42.896,
42.915,
42.907,
42.894,
42.895,
42.907,
42.912,
42.92,
42.913,
42.907,
42.906,
42.915,
42.915,
42.916,
42.915,
42.92,
42.92,
42.938,
42.984,
42.976,
42.965,
42.992,
43.03,
43.03,
43.044,
43.0,
42.973,
42.971,
42.988,
42.989,
42.988,
42.966,
42.96,
42.964,
42.983,
42.989,
42.975,
42.968,
42.965,
42.999,
43.015,
43.031,
43.025,
42.974,
42.959,
42.965,
42.991,
43.002,
42.986,
42.949,
42.959,
42.979,
42.968,
42.959,
42.98,
42.954,
42.943,
42.938,
42.925,
42.911,
42.903,
42.918,
42.922,
42.928,
42.933,
42.928,
42.959,
42.949,
42.942,
42.951,
42.967,
42.959,
42.95,
42.948,
42.962,
42.959,
42.974,
43.015,
43.052,
43.058,
43.067,
43.038,
43.035,
43.004,
42.989,
42.996,
43.021,
43.016,
43.011,
43.024,
43.04,
43.058,
43.07,
43.065,
43.049,
43.039,
43.043,
43.035,
43.026,
43.015,
42.996,
42.971,
42.984,
42.989,
42.991,
42.992,
43.006,
43.001,
43.011,
43.006,
43.037,
43.072,
43.089,
43.084,
43.043,
43.034,
43.027,
43.013,
43.026,
43.036,
43.029,
43.0,
42.971,
42.968,
42.999,
42.99,
42.97,
42.984,
42.968,
42.955,
42.955,
42.931,
42.919,
42.91,
42.905,
42.912,
42.915,
42.902,
42.894,
42.871,
42.87,
42.882,
42.921,
42.936,
42.941,
42.929,
42.909,
42.877,
42.887,
42.902,
42.886,
42.885,
42.859,
42.843,
42.856,
42.845,
42.838,
42.829,
42.845,
42.846,
42.852,
42.856,
42.862,
42.85,
42.867,
42.862,
42.879,
42.892,
42.888,
42.885,
42.858,
42.871,
42.875,
42.865,
42.845,
42.839,
42.836,
42.829,
42.84,
42.834,
42.823,
42.808,
42.808,
42.815,
42.808,
42.785,
42.789,
42.789,
42.812,
42.805,
42.819,
42.814,
42.816,
42.785,
42.775,
42.775,
42.785,
42.76,
42.753,
42.745,
42.756,
42.781,
42.776,
42.785,
42.795,
42.775,
42.787,
42.8,
42.827,
42.826,
42.82,
42.856,
42.858,
42.85,
42.846,
42.84,
42.844,
42.846,
42.872,
42.906,
42.919,
42.945,
42.949,
42.953,
42.965,
42.953,
42.921,
42.911,
42.916,
42.895,
42.885,
42.875,
42.875,
42.885,
42.893,
42.889,
42.892,
42.865,
42.857,
42.861,
42.881,
42.902,
42.925,
42.951,
42.962,
42.951,
42.962,
42.988,
42.997,
42.96,
42.966,
42.968,
42.988,
42.974,
42.951,
42.942,
42.909,
42.91,
42.92,
42.921,
42.92,
42.903,
42.895,
42.918,
42.936,
42.935,
42.931,
42.94,
42.956,
42.99,
42.998,
42.986,
42.961,
42.928,
42.929,
42.935,
42.938,
42.948,
42.95,
42.955,
42.929,
42.911,
42.91,
42.915,
42.935,
42.956,
42.966,
42.946,
42.954,
42.956,
42.984,
42.97,
42.974,
42.961,
42.935,
42.915,
42.925,
42.936,
42.924,
42.891,
42.884,
42.916,
42.92,
42.935,
42.961,
42.955,
42.986,
42.987,
42.971,
43.012,
43.009,
43.008,
43.005,
42.989,
42.991,
42.989,
42.994,
43.001,
42.996,
42.989,
42.985,
42.961,
42.962,
42.99,
43.014,
43.023,
43.059,
43.059,
43.062,
43.081,
43.072,
43.062,
43.081,
43.1
],
'open': [
42.585,
42.59,
42.57,
42.575,
42.58,
42.58,
42.565,
42.6,
42.6,
42.585,
42.58,
42.575,
42.585,
42.57,
42.57,
42.57,
42.58,
42.56,
42.54,
42.535,
42.52,
42.51,
42.53,
42.52,
42.515,
42.515,
42.5,
42.48,
42.465,
42.46,
42.46,
42.45,
42.45,
42.46,
42.46,
42.45,
42.47,
42.48,
42.515,
42.51,
42.52,
42.5,
42.5,
42.505,
42.47,
42.47,
42.47,
42.4816,
42.465,
42.45,
42.45,
42.45,
42.445,
42.4362,
42.43,
42.41,
42.39,
42.365,
42.39,
42.395,
42.39,
42.3981,
42.395,
42.39,
42.395,
42.37,
42.375,
42.4,
42.4,
42.4,
42.41,
42.41,
42.41,
42.4394,
42.43,
42.42,
42.42,
42.395,
42.39,
42.39,
42.4,
42.4,
42.3999,
42.4084,
42.44,
42.475,
42.49,
42.51,
42.57,
42.575,
42.56,
42.555,
42.56,
42.565,
42.58,
42.61,
42.635,
42.66,
42.665,
42.72,
42.845,
42.775,
42.78,
42.755,
42.77,
42.735,
42.705,
42.71,
42.705,
42.72,
42.74,
42.74,
42.73,
42.74,
42.73,
42.7286,
42.72,
42.72,
42.74,
42.76,
42.8,
42.8103,
42.83,
42.845,
42.865,
42.8509,
42.84,
42.84,
42.865,
42.8717,
42.8975,
42.925,
42.93,
42.935,
42.9658,
42.9801,
43.025,
43.02,
43.02,
43.045,
43.045,
43.04,
43.0791,
43.105,
43.0867,
43.09,
43.03,
42.9801,
43.01,
43.01,
43.015,
43.0024,
43.02,
43.01,
43.0088,
43.039,
43.05,
43.02,
43.045,
43,
43.04,
43.015,
43.0248,
43,
43.03,
42.98,
42.96,
42.9481,
42.9469,
42.93,
42.94,
42.94,
42.975,
42.94,
42.9176,
42.87,
42.88,
42.895,
42.875,
42.91,
42.92,
42.91,
42.9206,
42.91,
42.93,
42.94,
42.94,
42.96,
42.955,
42.935,
42.92,
42.91,
42.92,
42.93,
42.91,
42.91,
42.92,
42.91,
42.9057,
42.91,
42.915,
42.91,
42.95,
42.92,
42.94,
42.94,
42.925,
42.905,
42.91,
42.915,
42.925,
42.91,
42.9,
42.905,
42.915,
42.89,
42.92,
42.89,
42.8621,
42.84,
42.8219,
42.8029,
42.825,
42.8,
42.8048,
42.84,
42.8666,
42.91,
42.92,
42.9,
42.895,
42.8925,
42.92,
42.91,
42.92,
42.91,
42.91,
42.905,
42.91,
42.9199,
42.9199,
42.915,
42.92,
42.92,
42.96,
42.9908,
42.98,
42.9689,
43.01,
43.035,
43.04,
43.03,
42.99,
42.97,
42.9764,
42.99,
42.99,
42.985,
42.97,
42.965,
42.9601,
42.9961,
42.99,
42.972,
42.965,
42.965,
43.015,
43.02,
43.035,
43.025,
42.95,
42.9655,
42.97,
42.995,
43.005,
42.98,
42.95,
42.97,
42.9819,
42.965,
42.965,
42.98,
42.95,
42.935,
42.9428,
42.92,
42.91,
42.91,
42.92,
42.925,
42.93,
42.935,
42.94,
42.965,
42.9474,
42.955,
42.955,
42.97,
42.955,
42.95,
42.945,
42.975,
42.955,
42.99,
43.03,
43.05,
43.065,
43.07,
43.035,
43.03,
42.99,
42.99,
43,
43.034,
43.015,
43.01,
43.02,
43.05,
43.06,
43.075,
43.065,
43.04,
43.03,
43.05,
43.03,
43.03,
43,
42.99,
42.97,
42.9999,
42.99,
42.99,
42.995,
43,
43.005,
43.01,
43.01,
43.05,
43.0776,
43.1,
43.07,
43.03,
43.025,
43.02,
43.015,
43.03,
43.03,
43.02,
42.99,
42.96,
42.975,
43.005,
42.98,
42.98,
42.985,
42.96,
42.955,
42.955,
42.925,
42.915,
42.92,
42.9,
42.91,
42.91,
42.905,
42.88,
42.8601,
42.87,
42.89,
42.93,
42.94,
42.935,
42.925,
42.9,
42.875,
42.89,
42.91,
42.89,
42.885,
42.8501,
42.845,
42.8565,
42.845,
42.84,
42.83,
42.85,
42.845,
42.85,
42.865,
42.86,
42.86,
42.87,
42.87,
42.888,
42.9,
42.885,
42.88,
42.85,
42.8799,
42.87,
42.86,
42.84,
42.845,
42.83,
42.835,
42.845,
42.825,
42.815,
42.8,
42.81,
42.8143,
42.81,
42.775,
42.79,
42.8,
42.8193,
42.805,
42.82,
42.81,
42.81,
42.775,
42.7775,
42.78,
42.785,
42.75,
42.75,
42.74,
42.76,
42.78,
42.78,
42.795,
42.77,
42.77,
42.7864,
42.81,
42.83,
42.825,
42.825,
42.87,
42.85,
42.855,
42.85,
42.84,
42.845,
42.85,
42.88,
42.915,
42.92,
42.955,
42.96,
42.95,
42.96,
42.955,
42.9125,
42.91,
42.925,
42.88,
42.88,
42.875,
42.87,
42.895,
42.89,
42.89,
42.886,
42.87,
42.85,
42.87,
42.875,
42.91,
42.925,
42.95,
42.965,
42.9425,
42.97,
42.995,
42.99,
42.955,
42.98,
42.965,
42.9888,
42.97,
42.945,
42.93,
42.91,
42.9,
42.925,
42.92,
42.91,
42.9,
42.9,
42.93,
42.93,
42.935,
42.94,
42.95,
42.955,
43,
43,
42.99,
42.95,
42.93,
42.935,
42.925,
42.94,
42.95,
42.955,
42.954,
42.92,
42.905,
42.91,
42.915,
42.9458,
42.96,
42.965,
42.945,
42.95,
42.955,
42.985,
42.96,
42.97,
42.965,
42.93,
42.91,
42.925,
42.925,
42.925,
42.88,
42.885,
42.92,
42.915,
42.94,
42.96,
42.965,
42.9917,
42.98,
42.965,
43.02,
43,
43.0075,
43.005,
42.98,
42.985,
42.995,
42.995,
43.005,
42.995,
42.99,
42.98,
42.955,
42.97,
43,
43.02,
43.025,
43.07,
43.055,
43.065,
43.085,
43.065,
43.06,
43.085
],
'time': [
datetime.datetime(2023, 3, 24, 17, 53),
datetime.datetime(2023, 3, 24, 17, 53, 20),
datetime.datetime(2023, 3, 24, 17, 53, 40),
datetime.datetime(2023, 3, 24, 17, 54),
datetime.datetime(2023, 3, 24, 17, 54, 20),
datetime.datetime(2023, 3, 24, 17, 54, 40),
datetime.datetime(2023, 3, 24, 17, 55),
datetime.datetime(2023, 3, 24, 17, 55, 20),
datetime.datetime(2023, 3, 24, 17, 55, 40),
datetime.datetime(2023, 3, 24, 17, 56),
datetime.datetime(2023, 3, 24, 17, 56, 20),
datetime.datetime(2023, 3, 24, 17, 56, 40),
datetime.datetime(2023, 3, 24, 17, 57),
datetime.datetime(2023, 3, 24, 17, 57, 20),
datetime.datetime(2023, 3, 24, 17, 57, 40),
datetime.datetime(2023, 3, 24, 17, 58),
datetime.datetime(2023, 3, 24, 17, 58, 20),
datetime.datetime(2023, 3, 24, 17, 58, 40),
datetime.datetime(2023, 3, 24, 17, 59),
datetime.datetime(2023, 3, 24, 17, 59, 20),
datetime.datetime(2023, 3, 24, 17, 59, 40),
datetime.datetime(2023, 3, 24, 18, 0),
datetime.datetime(2023, 3, 24, 18, 0, 20),
datetime.datetime(2023, 3, 24, 18, 0, 40),
datetime.datetime(2023, 3, 24, 18, 1),
datetime.datetime(2023, 3, 24, 18, 1, 20),
datetime.datetime(2023, 3, 24, 18, 1, 40),
datetime.datetime(2023, 3, 24, 18, 2),
datetime.datetime(2023, 3, 24, 18, 2, 20),
datetime.datetime(2023, 3, 24, 18, 2, 40),
datetime.datetime(2023, 3, 24, 18, 3),
datetime.datetime(2023, 3, 24, 18, 3, 20),
datetime.datetime(2023, 3, 24, 18, 3, 40),
datetime.datetime(2023, 3, 24, 18, 4),
datetime.datetime(2023, 3, 24, 18, 4, 20),
datetime.datetime(2023, 3, 24, 18, 4, 40),
datetime.datetime(2023, 3, 24, 18, 5),
datetime.datetime(2023, 3, 24, 18, 5, 20),
datetime.datetime(2023, 3, 24, 18, 5, 40),
datetime.datetime(2023, 3, 24, 18, 6),
datetime.datetime(2023, 3, 24, 18, 6, 20),
datetime.datetime(2023, 3, 24, 18, 6, 40),
datetime.datetime(2023, 3, 24, 18, 7),
datetime.datetime(2023, 3, 24, 18, 7, 20),
datetime.datetime(2023, 3, 24, 18, 7, 40),
datetime.datetime(2023, 3, 24, 18, 8),
datetime.datetime(2023, 3, 24, 18, 8, 20),
datetime.datetime(2023, 3, 24, 18, 8, 40),
datetime.datetime(2023, 3, 24, 18, 9),
datetime.datetime(2023, 3, 24, 18, 9, 20),
datetime.datetime(2023, 3, 24, 18, 9, 40),
datetime.datetime(2023, 3, 24, 18, 10),
datetime.datetime(2023, 3, 24, 18, 10, 20),
datetime.datetime(2023, 3, 24, 18, 10, 40),
datetime.datetime(2023, 3, 24, 18, 11),
datetime.datetime(2023, 3, 24, 18, 11, 20),
datetime.datetime(2023, 3, 24, 18, 11, 40),
datetime.datetime(2023, 3, 24, 18, 12),
datetime.datetime(2023, 3, 24, 18, 12, 20),
datetime.datetime(2023, 3, 24, 18, 12, 40),
datetime.datetime(2023, 3, 24, 18, 13),
datetime.datetime(2023, 3, 24, 18, 13, 20),
datetime.datetime(2023, 3, 24, 18, 13, 40),
datetime.datetime(2023, 3, 24, 18, 14),
datetime.datetime(2023, 3, 24, 18, 14, 20),
datetime.datetime(2023, 3, 24, 18, 14, 40),
datetime.datetime(2023, 3, 24, 18, 15),
datetime.datetime(2023, 3, 24, 18, 15, 20),
datetime.datetime(2023, 3, 24, 18, 15, 40),
datetime.datetime(2023, 3, 24, 18, 16),
datetime.datetime(2023, 3, 24, 18, 16, 20),
datetime.datetime(2023, 3, 24, 18, 16, 40),
datetime.datetime(2023, 3, 24, 18, 17),
datetime.datetime(2023, 3, 24, 18, 17, 20),
datetime.datetime(2023, 3, 24, 18, 17, 40),
datetime.datetime(2023, 3, 24, 18, 18),
datetime.datetime(2023, 3, 24, 18, 18, 20),
datetime.datetime(2023, 3, 24, 18, 18, 40),
datetime.datetime(2023, 3, 24, 18, 19),
datetime.datetime(2023, 3, 24, 18, 19, 20),
datetime.datetime(2023, 3, 24, 18, 19, 40),
datetime.datetime(2023, 3, 24, 18, 20),
datetime.datetime(2023, 3, 24, 18, 20, 20),
datetime.datetime(2023, 3, 24, 18, 20, 40),
datetime.datetime(2023, 3, 24, 18, 21),
datetime.datetime(2023, 3, 24, 18, 21, 20),
datetime.datetime(2023, 3, 24, 18, 21, 40),
datetime.datetime(2023, 3, 24, 18, 22),
datetime.datetime(2023, 3, 24, 18, 22, 20),
datetime.datetime(2023, 3, 24, 18, 22, 40),
datetime.datetime(2023, 3, 24, 18, 23),
datetime.datetime(2023, 3, 24, 18, 23, 20),
datetime.datetime(2023, 3, 24, 18, 23, 40),
datetime.datetime(2023, 3, 24, 18, 24),
datetime.datetime(2023, 3, 24, 18, 24, 20),
datetime.datetime(2023, 3, 24, 18, 24, 40),
datetime.datetime(2023, 3, 24, 18, 25),
datetime.datetime(2023, 3, 24, 18, 25, 20),
datetime.datetime(2023, 3, 24, 18, 25, 40),
datetime.datetime(2023, 3, 24, 18, 26),
datetime.datetime(2023, 3, 24, 18, 26, 20),
datetime.datetime(2023, 3, 24, 18, 26, 40),
datetime.datetime(2023, 3, 24, 18, 27),
datetime.datetime(2023, 3, 24, 18, 27, 20),
datetime.datetime(2023, 3, 24, 18, 27, 40),
datetime.datetime(2023, 3, 24, 18, 28),
datetime.datetime(2023, 3, 24, 18, 28, 20),
datetime.datetime(2023, 3, 24, 18, 28, 40),
datetime.datetime(2023, 3, 24, 18, 29),
datetime.datetime(2023, 3, 24, 18, 29, 20),
datetime.datetime(2023, 3, 24, 18, 29, 40),
datetime.datetime(2023, 3, 24, 18, 30),
datetime.datetime(2023, 3, 24, 18, 30, 20),
datetime.datetime(2023, 3, 24, 18, 30, 40),
datetime.datetime(2023, 3, 24, 18, 31),
datetime.datetime(2023, 3, 24, 18, 31, 20),
datetime.datetime(2023, 3, 24, 18, 31, 40),
datetime.datetime(2023, 3, 24, 18, 32),
datetime.datetime(2023, 3, 24, 18, 32, 20),
datetime.datetime(2023, 3, 24, 18, 32, 40),
datetime.datetime(2023, 3, 24, 18, 33),
datetime.datetime(2023, 3, 24, 18, 33, 20),
datetime.datetime(2023, 3, 24, 18, 33, 40),
datetime.datetime(2023, 3, 24, 18, 34),
datetime.datetime(2023, 3, 24, 18, 34, 20),
datetime.datetime(2023, 3, 24, 18, 34, 40),
datetime.datetime(2023, 3, 24, 18, 35),
datetime.datetime(2023, 3, 24, 18, 35, 20),
datetime.datetime(2023, 3, 24, 18, 35, 40),
datetime.datetime(2023, 3, 24, 18, 36),
datetime.datetime(2023, 3, 24, 18, 36, 20),
datetime.datetime(2023, 3, 24, 18, 36, 40),
datetime.datetime(2023, 3, 24, 18, 37),
datetime.datetime(2023, 3, 24, 18, 37, 20),
datetime.datetime(2023, 3, 24, 18, 37, 40),
datetime.datetime(2023, 3, 24, 18, 38),
datetime.datetime(2023, 3, 24, 18, 38, 20),
datetime.datetime(2023, 3, 24, 18, 38, 40),
datetime.datetime(2023, 3, 24, 18, 39),
datetime.datetime(2023, 3, 24, 18, 39, 20),
datetime.datetime(2023, 3, 24, 18, 39, 40),
datetime.datetime(2023, 3, 24, 18, 40),
datetime.datetime(2023, 3, 24, 18, 40, 20),
datetime.datetime(2023, 3, 24, 18, 40, 40),
datetime.datetime(2023, 3, 24, 18, 41),
datetime.datetime(2023, 3, 24, 18, 41, 20),
datetime.datetime(2023, 3, 24, 18, 41, 40),
datetime.datetime(2023, 3, 24, 18, 42),
datetime.datetime(2023, 3, 24, 18, 42, 20),
datetime.datetime(2023, 3, 24, 18, 42, 40),
datetime.datetime(2023, 3, 24, 18, 43),
datetime.datetime(2023, 3, 24, 18, 43, 20),
datetime.datetime(2023, 3, 24, 18, 43, 40),
datetime.datetime(2023, 3, 24, 18, 44),
datetime.datetime(2023, 3, 24, 18, 44, 20),
datetime.datetime(2023, 3, 24, 18, 44, 40),
datetime.datetime(2023, 3, 24, 18, 45),
datetime.datetime(2023, 3, 24, 18, 45, 20),
datetime.datetime(2023, 3, 24, 18, 45, 40),
datetime.datetime(2023, 3, 24, 18, 46),
datetime.datetime(2023, 3, 24, 18, 46, 20),
datetime.datetime(2023, 3, 24, 18, 46, 40),
datetime.datetime(2023, 3, 24, 18, 47),
datetime.datetime(2023, 3, 24, 18, 47, 20),
datetime.datetime(2023, 3, 24, 18, 47, 40),
datetime.datetime(2023, 3, 24, 18, 48),
datetime.datetime(2023, 3, 24, 18, 48, 20),
datetime.datetime(2023, 3, 24, 18, 48, 40),
datetime.datetime(2023, 3, 24, 18, 49),
datetime.datetime(2023, 3, 24, 18, 49, 20),
datetime.datetime(2023, 3, 24, 18, 49, 40),
datetime.datetime(2023, 3, 24, 18, 50),
datetime.datetime(2023, 3, 24, 18, 50, 20),
datetime.datetime(2023, 3, 24, 18, 50, 40),
datetime.datetime(2023, 3, 24, 18, 51),
datetime.datetime(2023, 3, 24, 18, 51, 20),
datetime.datetime(2023, 3, 24, 18, 51, 40),
datetime.datetime(2023, 3, 24, 18, 52),
datetime.datetime(2023, 3, 24, 18, 52, 20),
datetime.datetime(2023, 3, 24, 18, 52, 40),
datetime.datetime(2023, 3, 24, 18, 53),
datetime.datetime(2023, 3, 24, 18, 53, 20),
datetime.datetime(2023, 3, 24, 18, 53, 40),
datetime.datetime(2023, 3, 24, 18, 54),
datetime.datetime(2023, 3, 24, 18, 54, 20),
datetime.datetime(2023, 3, 24, 18, 54, 40),
datetime.datetime(2023, 3, 24, 18, 55),
datetime.datetime(2023, 3, 24, 18, 55, 20),
datetime.datetime(2023, 3, 24, 18, 55, 40),
datetime.datetime(2023, 3, 24, 18, 56),
datetime.datetime(2023, 3, 24, 18, 56, 20),
datetime.datetime(2023, 3, 24, 18, 56, 40),
datetime.datetime(2023, 3, 24, 18, 57),
datetime.datetime(2023, 3, 24, 18, 57, 20),
datetime.datetime(2023, 3, 24, 18, 57, 40),
datetime.datetime(2023, 3, 24, 18, 58),
datetime.datetime(2023, 3, 24, 18, 58, 20),
datetime.datetime(2023, 3, 24, 18, 58, 40),
datetime.datetime(2023, 3, 24, 18, 59),
datetime.datetime(2023, 3, 24, 18, 59, 20),
datetime.datetime(2023, 3, 24, 18, 59, 40),
datetime.datetime(2023, 3, 24, 19, 0),
datetime.datetime(2023, 3, 24, 19, 0, 20),
datetime.datetime(2023, 3, 24, 19, 0, 40),
datetime.datetime(2023, 3, 24, 19, 1),
datetime.datetime(2023, 3, 24, 19, 1, 20),
datetime.datetime(2023, 3, 24, 19, 1, 40),
datetime.datetime(2023, 3, 24, 19, 2),
datetime.datetime(2023, 3, 24, 19, 2, 20),
datetime.datetime(2023, 3, 24, 19, 2, 40),
datetime.datetime(2023, 3, 24, 19, 3),
datetime.datetime(2023, 3, 24, 19, 3, 20),
datetime.datetime(2023, 3, 24, 19, 3, 40),
datetime.datetime(2023, 3, 24, 19, 4),
datetime.datetime(2023, 3, 24, 19, 4, 20),
datetime.datetime(2023, 3, 24, 19, 4, 40),
datetime.datetime(2023, 3, 24, 19, 5),
datetime.datetime(2023, 3, 24, 19, 5, 20),
datetime.datetime(2023, 3, 24, 19, 5, 40),
datetime.datetime(2023, 3, 24, 19, 6),
datetime.datetime(2023, 3, 24, 19, 6, 20),
datetime.datetime(2023, 3, 24, 19, 6, 40),
datetime.datetime(2023, 3, 24, 19, 7),
datetime.datetime(2023, 3, 24, 19, 7, 20),
datetime.datetime(2023, 3, 24, 19, 7, 40),
datetime.datetime(2023, 3, 24, 19, 8),
datetime.datetime(2023, 3, 24, 19, 8, 20),
datetime.datetime(2023, 3, 24, 19, 8, 40),
datetime.datetime(2023, 3, 24, 19, 9),
datetime.datetime(2023, 3, 24, 19, 9, 20),
datetime.datetime(2023, 3, 24, 19, 9, 40),
datetime.datetime(2023, 3, 24, 19, 10),
datetime.datetime(2023, 3, 24, 19, 10, 20),
datetime.datetime(2023, 3, 24, 19, 10, 40),
datetime.datetime(2023, 3, 24, 19, 11),
datetime.datetime(2023, 3, 24, 19, 11, 20),
datetime.datetime(2023, 3, 24, 19, 11, 40),
datetime.datetime(2023, 3, 24, 19, 12),
datetime.datetime(2023, 3, 24, 19, 12, 20),
datetime.datetime(2023, 3, 24, 19, 12, 40),
datetime.datetime(2023, 3, 24, 19, 13),
datetime.datetime(2023, 3, 24, 19, 13, 20),
datetime.datetime(2023, 3, 24, 19, 13, 40),
datetime.datetime(2023, 3, 24, 19, 14),
datetime.datetime(2023, 3, 24, 19, 14, 20),
datetime.datetime(2023, 3, 24, 19, 14, 40),
datetime.datetime(2023, 3, 24, 19, 15),
datetime.datetime(2023, 3, 24, 19, 15, 20),
datetime.datetime(2023, 3, 24, 19, 15, 40),
datetime.datetime(2023, 3, 24, 19, 16),
datetime.datetime(2023, 3, 24, 19, 16, 20),
datetime.datetime(2023, 3, 24, 19, 16, 40),
datetime.datetime(2023, 3, 24, 19, 17),
datetime.datetime(2023, 3, 24, 19, 17, 20),
datetime.datetime(2023, 3, 24, 19, 17, 40),
datetime.datetime(2023, 3, 24, 19, 18),
datetime.datetime(2023, 3, 24, 19, 18, 20),
datetime.datetime(2023, 3, 24, 19, 18, 40),
datetime.datetime(2023, 3, 24, 19, 19),
datetime.datetime(2023, 3, 24, 19, 19, 20),
datetime.datetime(2023, 3, 24, 19, 19, 40),
datetime.datetime(2023, 3, 24, 19, 20),
datetime.datetime(2023, 3, 24, 19, 20, 20),
datetime.datetime(2023, 3, 24, 19, 20, 40),
datetime.datetime(2023, 3, 24, 19, 21),
datetime.datetime(2023, 3, 24, 19, 21, 20),
datetime.datetime(2023, 3, 24, 19, 21, 40),
datetime.datetime(2023, 3, 24, 19, 22),
datetime.datetime(2023, 3, 24, 19, 22, 20),
datetime.datetime(2023, 3, 24, 19, 22, 40),
datetime.datetime(2023, 3, 24, 19, 23),
datetime.datetime(2023, 3, 24, 19, 23, 20),
datetime.datetime(2023, 3, 24, 19, 23, 40),
datetime.datetime(2023, 3, 24, 19, 24),
datetime.datetime(2023, 3, 24, 19, 24, 20),
datetime.datetime(2023, 3, 24, 19, 24, 40),
datetime.datetime(2023, 3, 24, 19, 25),
datetime.datetime(2023, 3, 24, 19, 25, 20),
datetime.datetime(2023, 3, 24, 19, 25, 40),
datetime.datetime(2023, 3, 24, 19, 26),
datetime.datetime(2023, 3, 24, 19, 26, 20),
datetime.datetime(2023, 3, 24, 19, 26, 40),
datetime.datetime(2023, 3, 24, 19, 27),
datetime.datetime(2023, 3, 24, 19, 27, 20),
datetime.datetime(2023, 3, 24, 19, 27, 40),
datetime.datetime(2023, 3, 24, 19, 28),
datetime.datetime(2023, 3, 24, 19, 28, 20),
datetime.datetime(2023, 3, 24, 19, 28, 40),
datetime.datetime(2023, 3, 24, 19, 29),
datetime.datetime(2023, 3, 24, 19, 29, 20),
datetime.datetime(2023, 3, 24, 19, 29, 40),
datetime.datetime(2023, 3, 24, 19, 30),
datetime.datetime(2023, 3, 24, 19, 30, 20),
datetime.datetime(2023, 3, 24, 19, 30, 40),
datetime.datetime(2023, 3, 24, 19, 31),
datetime.datetime(2023, 3, 24, 19, 31, 20),
datetime.datetime(2023, 3, 24, 19, 31, 40),
datetime.datetime(2023, 3, 24, 19, 32),
datetime.datetime(2023, 3, 24, 19, 32, 20),
datetime.datetime(2023, 3, 24, 19, 32, 40),
datetime.datetime(2023, 3, 24, 19, 33),
datetime.datetime(2023, 3, 24, 19, 33, 20),
datetime.datetime(2023, 3, 24, 19, 33, 40),
datetime.datetime(2023, 3, 24, 19, 34),
datetime.datetime(2023, 3, 24, 19, 34, 20),
datetime.datetime(2023, 3, 24, 19, 34, 40),
datetime.datetime(2023, 3, 24, 19, 35),
datetime.datetime(2023, 3, 24, 19, 35, 20),
datetime.datetime(2023, 3, 24, 19, 35, 40),
datetime.datetime(2023, 3, 24, 19, 36),
datetime.datetime(2023, 3, 24, 19, 36, 20),
datetime.datetime(2023, 3, 24, 19, 36, 40),
datetime.datetime(2023, 3, 24, 19, 37),
datetime.datetime(2023, 3, 24, 19, 37, 20),
datetime.datetime(2023, 3, 24, 19, 37, 40),
datetime.datetime(2023, 3, 24, 19, 38),
datetime.datetime(2023, 3, 24, 19, 38, 20),
datetime.datetime(2023, 3, 24, 19, 38, 40),
datetime.datetime(2023, 3, 24, 19, 39),
datetime.datetime(2023, 3, 24, 19, 39, 20),
datetime.datetime(2023, 3, 24, 19, 39, 40),
datetime.datetime(2023, 3, 24, 19, 40),
datetime.datetime(2023, 3, 24, 19, 40, 20),
datetime.datetime(2023, 3, 24, 19, 40, 40),
datetime.datetime(2023, 3, 24, 19, 41),
datetime.datetime(2023, 3, 24, 19, 41, 20),
datetime.datetime(2023, 3, 24, 19, 41, 40),
datetime.datetime(2023, 3, 24, 19, 42),
datetime.datetime(2023, 3, 24, 19, 42, 20),
datetime.datetime(2023, 3, 24, 19, 42, 40),
datetime.datetime(2023, 3, 24, 19, 43),
datetime.datetime(2023, 3, 24, 19, 43, 20),
datetime.datetime(2023, 3, 24, 19, 43, 40),
datetime.datetime(2023, 3, 24, 19, 44),
datetime.datetime(2023, 3, 24, 19, 44, 20),
datetime.datetime(2023, 3, 24, 19, 44, 40),
datetime.datetime(2023, 3, 24, 19, 45),
datetime.datetime(2023, 3, 24, 19, 45, 20),
datetime.datetime(2023, 3, 24, 19, 45, 40),
datetime.datetime(2023, 3, 24, 19, 46),
datetime.datetime(2023, 3, 24, 19, 46, 20),
datetime.datetime(2023, 3, 24, 19, 46, 40),
datetime.datetime(2023, 3, 24, 19, 47),
datetime.datetime(2023, 3, 24, 19, 47, 20),
datetime.datetime(2023, 3, 24, 19, 47, 40),
datetime.datetime(2023, 3, 24, 19, 48),
datetime.datetime(2023, 3, 24, 19, 48, 20),
datetime.datetime(2023, 3, 24, 19, 48, 40),
datetime.datetime(2023, 3, 24, 19, 49),
datetime.datetime(2023, 3, 24, 19, 49, 20),
datetime.datetime(2023, 3, 24, 19, 49, 40),
datetime.datetime(2023, 3, 24, 19, 50),
datetime.datetime(2023, 3, 24, 19, 50, 20),
datetime.datetime(2023, 3, 24, 19, 50, 40),
datetime.datetime(2023, 3, 24, 19, 51),
datetime.datetime(2023, 3, 24, 19, 51, 20),
datetime.datetime(2023, 3, 24, 19, 51, 40),
datetime.datetime(2023, 3, 24, 19, 52),
datetime.datetime(2023, 3, 24, 19, 52, 20),
datetime.datetime(2023, 3, 24, 19, 52, 40),
datetime.datetime(2023, 3, 24, 19, 53),
datetime.datetime(2023, 3, 24, 19, 53, 20),
datetime.datetime(2023, 3, 24, 19, 53, 40),
datetime.datetime(2023, 3, 24, 19, 54),
datetime.datetime(2023, 3, 24, 19, 54, 20),
datetime.datetime(2023, 3, 24, 19, 54, 40),
datetime.datetime(2023, 3, 24, 19, 55),
datetime.datetime(2023, 3, 24, 19, 55, 20),
datetime.datetime(2023, 3, 24, 19, 55, 40),
datetime.datetime(2023, 3, 24, 19, 56),
datetime.datetime(2023, 3, 24, 19, 56, 20),
datetime.datetime(2023, 3, 24, 19, 56, 40),
datetime.datetime(2023, 3, 24, 19, 57),
datetime.datetime(2023, 3, 24, 19, 57, 20),
datetime.datetime(2023, 3, 24, 19, 57, 40),
datetime.datetime(2023, 3, 24, 19, 58),
datetime.datetime(2023, 3, 24, 19, 58, 20),
datetime.datetime(2023, 3, 24, 19, 58, 40),
datetime.datetime(2023, 3, 24, 19, 59),
datetime.datetime(2023, 3, 24, 19, 59, 20),
datetime.datetime(2023, 3, 24, 19, 59, 40),
datetime.datetime(2023, 3, 24, 20, 0),
datetime.datetime(2023, 3, 24, 20, 0, 20),
datetime.datetime(2023, 3, 24, 20, 0, 40),
datetime.datetime(2023, 3, 24, 20, 1),
datetime.datetime(2023, 3, 24, 20, 1, 20),
datetime.datetime(2023, 3, 24, 20, 1, 40),
datetime.datetime(2023, 3, 24, 20, 2),
datetime.datetime(2023, 3, 24, 20, 2, 20),
datetime.datetime(2023, 3, 24, 20, 2, 40),
datetime.datetime(2023, 3, 24, 20, 3),
datetime.datetime(2023, 3, 24, 20, 3, 20),
datetime.datetime(2023, 3, 24, 20, 3, 40),
datetime.datetime(2023, 3, 24, 20, 4),
datetime.datetime(2023, 3, 24, 20, 4, 20),
datetime.datetime(2023, 3, 24, 20, 4, 40),
datetime.datetime(2023, 3, 24, 20, 5),
datetime.datetime(2023, 3, 24, 20, 5, 20),
datetime.datetime(2023, 3, 24, 20, 5, 40),
datetime.datetime(2023, 3, 24, 20, 6),
datetime.datetime(2023, 3, 24, 20, 6, 20),
datetime.datetime(2023, 3, 24, 20, 6, 40),
datetime.datetime(2023, 3, 24, 20, 7),
datetime.datetime(2023, 3, 24, 20, 7, 20),
datetime.datetime(2023, 3, 24, 20, 7, 40),
datetime.datetime(2023, 3, 24, 20, 8),
datetime.datetime(2023, 3, 24, 20, 8, 20),
datetime.datetime(2023, 3, 24, 20, 8, 40),
datetime.datetime(2023, 3, 24, 20, 9),
datetime.datetime(2023, 3, 24, 20, 9, 20),
datetime.datetime(2023, 3, 24, 20, 9, 40),
datetime.datetime(2023, 3, 24, 20, 10),
datetime.datetime(2023, 3, 24, 20, 10, 20),
datetime.datetime(2023, 3, 24, 20, 10, 40),
datetime.datetime(2023, 3, 24, 20, 11),
datetime.datetime(2023, 3, 24, 20, 11, 20),
datetime.datetime(2023, 3, 24, 20, 11, 40),
datetime.datetime(2023, 3, 24, 20, 12),
datetime.datetime(2023, 3, 24, 20, 12, 20),
datetime.datetime(2023, 3, 24, 20, 12, 40),
datetime.datetime(2023, 3, 24, 20, 13),
datetime.datetime(2023, 3, 24, 20, 13, 20),
datetime.datetime(2023, 3, 24, 20, 13, 40),
datetime.datetime(2023, 3, 24, 20, 14),
datetime.datetime(2023, 3, 24, 20, 14, 20),
datetime.datetime(2023, 3, 24, 20, 14, 40),
datetime.datetime(2023, 3, 24, 20, 15),
datetime.datetime(2023, 3, 24, 20, 15, 20),
datetime.datetime(2023, 3, 24, 20, 15, 40),
datetime.datetime(2023, 3, 24, 20, 16),
datetime.datetime(2023, 3, 24, 20, 16, 20),
datetime.datetime(2023, 3, 24, 20, 16, 40),
datetime.datetime(2023, 3, 24, 20, 17),
datetime.datetime(2023, 3, 24, 20, 17, 20),
datetime.datetime(2023, 3, 24, 20, 17, 40),
datetime.datetime(2023, 3, 24, 20, 18),
datetime.datetime(2023, 3, 24, 20, 18, 20),
datetime.datetime(2023, 3, 24, 20, 18, 40),
datetime.datetime(2023, 3, 24, 20, 19),
datetime.datetime(2023, 3, 24, 20, 19, 20),
datetime.datetime(2023, 3, 24, 20, 19, 40),
datetime.datetime(2023, 3, 24, 20, 20),
datetime.datetime(2023, 3, 24, 20, 20, 20),
datetime.datetime(2023, 3, 24, 20, 20, 40),
datetime.datetime(2023, 3, 24, 20, 21),
datetime.datetime(2023, 3, 24, 20, 21, 20),
datetime.datetime(2023, 3, 24, 20, 21, 40),
datetime.datetime(2023, 3, 24, 20, 22),
datetime.datetime(2023, 3, 24, 20, 22, 20),
datetime.datetime(2023, 3, 24, 20, 22, 40),
datetime.datetime(2023, 3, 24, 20, 23),
datetime.datetime(2023, 3, 24, 20, 23, 20),
datetime.datetime(2023, 3, 24, 20, 23, 40),
datetime.datetime(2023, 3, 24, 20, 24),
datetime.datetime(2023, 3, 24, 20, 24, 20),
datetime.datetime(2023, 3, 24, 20, 24, 40),
datetime.datetime(2023, 3, 24, 20, 25),
datetime.datetime(2023, 3, 24, 20, 25, 20),
datetime.datetime(2023, 3, 24, 20, 25, 40),
datetime.datetime(2023, 3, 24, 20, 26),
datetime.datetime(2023, 3, 24, 20, 26, 20),
datetime.datetime(2023, 3, 24, 20, 26, 40),
datetime.datetime(2023, 3, 24, 20, 27),
datetime.datetime(2023, 3, 24, 20, 27, 20),
datetime.datetime(2023, 3, 24, 20, 27, 40),
datetime.datetime(2023, 3, 24, 20, 28),
datetime.datetime(2023, 3, 24, 20, 28, 20),
datetime.datetime(2023, 3, 24, 20, 28, 40),
datetime.datetime(2023, 3, 24, 20, 29),
datetime.datetime(2023, 3, 24, 20, 29, 20),
datetime.datetime(2023, 3, 24, 20, 29, 40),
datetime.datetime(2023, 3, 24, 20, 30),
datetime.datetime(2023, 3, 24, 20, 30, 20),
datetime.datetime(2023, 3, 24, 20, 30, 40),
datetime.datetime(2023, 3, 24, 20, 31),
datetime.datetime(2023, 3, 24, 20, 31, 20),
datetime.datetime(2023, 3, 24, 20, 31, 40),
datetime.datetime(2023, 3, 24, 20, 32),
datetime.datetime(2023, 3, 24, 20, 32, 20),
datetime.datetime(2023, 3, 24, 20, 32, 40),
datetime.datetime(2023, 3, 24, 20, 33),
datetime.datetime(2023, 3, 24, 20, 33, 20),
datetime.datetime(2023, 3, 24, 20, 33, 40),
datetime.datetime(2023, 3, 24, 20, 34),
datetime.datetime(2023, 3, 24, 20, 34, 20),
datetime.datetime(2023, 3, 24, 20, 34, 40),
datetime.datetime(2023, 3, 24, 20, 35),
datetime.datetime(2023, 3, 24, 20, 35, 20),
datetime.datetime(2023, 3, 24, 20, 35, 40),
datetime.datetime(2023, 3, 24, 20, 36),
datetime.datetime(2023, 3, 24, 20, 36, 20),
datetime.datetime(2023, 3, 24, 20, 36, 40),
datetime.datetime(2023, 3, 24, 20, 37),
datetime.datetime(2023, 3, 24, 20, 37, 20),
datetime.datetime(2023, 3, 24, 20, 37, 40),
datetime.datetime(2023, 3, 24, 20, 38),
datetime.datetime(2023, 3, 24, 20, 38, 20),
datetime.datetime(2023, 3, 24, 20, 38, 40),
datetime.datetime(2023, 3, 24, 20, 39),
datetime.datetime(2023, 3, 24, 20, 39, 20),
datetime.datetime(2023, 3, 24, 20, 39, 40),
datetime.datetime(2023, 3, 24, 20, 40),
datetime.datetime(2023, 3, 24, 20, 40, 20),
datetime.datetime(2023, 3, 24, 20, 40, 40),
datetime.datetime(2023, 3, 24, 20, 41),
datetime.datetime(2023, 3, 24, 20, 41, 20),
datetime.datetime(2023, 3, 24, 20, 41, 40),
datetime.datetime(2023, 3, 24, 20, 42),
datetime.datetime(2023, 3, 24, 20, 42, 20),
datetime.datetime(2023, 3, 24, 20, 42, 40),
datetime.datetime(2023, 3, 24, 20, 43),
datetime.datetime(2023, 3, 24, 20, 43, 20),
datetime.datetime(2023, 3, 24, 20, 43, 40),
datetime.datetime(2023, 3, 24, 20, 44),
datetime.datetime(2023, 3, 24, 20, 44, 20),
datetime.datetime(2023, 3, 24, 20, 44, 40),
datetime.datetime(2023, 3, 24, 20, 45),
datetime.datetime(2023, 3, 24, 20, 45, 20),
datetime.datetime(2023, 3, 24, 20, 45, 40),
datetime.datetime(2023, 3, 24, 20, 46),
datetime.datetime(2023, 3, 24, 20, 46, 20),
datetime.datetime(2023, 3, 24, 20, 46, 40),
datetime.datetime(2023, 3, 24, 20, 47),
datetime.datetime(2023, 3, 24, 20, 47, 20),
datetime.datetime(2023, 3, 24, 20, 47, 40),
datetime.datetime(2023, 3, 24, 20, 48),
datetime.datetime(2023, 3, 24, 20, 48, 20),
datetime.datetime(2023, 3, 24, 20, 48, 40),
datetime.datetime(2023, 3, 24, 20, 49),
datetime.datetime(2023, 3, 24, 20, 49, 20),
datetime.datetime(2023, 3, 24, 20, 49, 40),
datetime.datetime(2023, 3, 24, 20, 50),
datetime.datetime(2023, 3, 24, 20, 50, 20),
datetime.datetime(2023, 3, 24, 20, 50, 40),
datetime.datetime(2023, 3, 24, 20, 51),
datetime.datetime(2023, 3, 24, 20, 51, 20),
datetime.datetime(2023, 3, 24, 20, 51, 40),
datetime.datetime(2023, 3, 24, 20, 52),
datetime.datetime(2023, 3, 24, 20, 52, 20),
datetime.datetime(2023, 3, 24, 20, 52, 40),
datetime.datetime(2023, 3, 24, 20, 53),
datetime.datetime(2023, 3, 24, 20, 53, 20),
datetime.datetime(2023, 3, 24, 20, 53, 40),
datetime.datetime(2023, 3, 24, 20, 54),
datetime.datetime(2023, 3, 24, 20, 54, 20),
datetime.datetime(2023, 3, 24, 20, 54, 40),
datetime.datetime(2023, 3, 24, 20, 55),
datetime.datetime(2023, 3, 24, 20, 55, 20),
datetime.datetime(2023, 3, 24, 20, 55, 40),
datetime.datetime(2023, 3, 24, 20, 56),
datetime.datetime(2023, 3, 24, 20, 56, 20),
datetime.datetime(2023, 3, 24, 20, 56, 40),
datetime.datetime(2023, 3, 24, 20, 57),
datetime.datetime(2023, 3, 24, 20, 57, 20),
datetime.datetime(2023, 3, 24, 20, 57, 40),
datetime.datetime(2023, 3, 24, 20, 58),
datetime.datetime(2023, 3, 24, 20, 58, 20),
datetime.datetime(2023, 3, 24, 20, 58, 40),
datetime.datetime(2023, 3, 24, 20, 59),
datetime.datetime(2023, 3, 24, 20, 59, 20)
],
'trades': [
98,
60,
98,
18,
39,
13,
77,
63,
14,
38,
21,
137,
111,
53,
136,
84,
97,
99,
64,
73,
32,
169,
47,
68,
76,
50,
69,
63,
43,
28,
30,
29,
18,
18,
14,
20,
96,
134,
16,
33,
27,
16,
37,
35,
46,
11,
26,
12,
123,
12,
40,
38,
27,
7,
18,
29,
31,
78,
41,
24,
65,
18,
4,
16,
21,
18,
92,
10,
24,
47,
26,
69,
52,
30,
19,
4,
103,
34,
31,
26,
35,
101,
11,
76,
70,
127,
36,
128,
91,
33,
23,
86,
55,
134,
71,
103,
110,
41,
95,
411,
81,
64,
94,
178,
203,
647,
80,
90,
80,
69,
85,
134,
61,
11,
105,
18,
91,
116,
55,
62,
30,
76,
130,
85,
64,
58,
34,
38,
23,
122,
100,
28,
102,
142,
79,
196,
225,
37,
74,
43,
27,
41,
75,
90,
46,
259,
46,
73,
29,
47,
38,
77,
38,
42,
233,
107,
68,
72,
129,
80,
62,
58,
131,
127,
60,
178,
24,
24,
55,
42,
43,
55,
158,
54,
41,
57,
48,
67,
54,
87,
90,
26,
34,
40,
56,
32,
45,
60,
48,
28,
9,
53,
47,
240,
86,
139,
68,
20,
77,
30,
9,
283,
47,
34,
196,
104,
13,
63,
82,
143,
34,
32,
46,
16,
90,
62,
48,
33,
101,
42,
34,
47,
459,
181,
42,
34,
69,
114,
57,
9,
4,
60,
71,
223,
75,
56,
5,
44,
6,
46,
12,
275,
138,
150,
246,
58,
152,
50,
66,
28,
40,
132,
24,
9,
41,
18,
57,
48,
37,
10,
126,
221,
148,
6,
30,
48,
26,
161,
139,
34,
28,
12,
40,
29,
21,
216,
50,
41,
51,
21,
21,
245,
39,
39,
34,
24,
58,
18,
6,
16,
9,
90,
60,
22,
48,
26,
52,
37,
53,
14,
34,
37,
33,
169,
199,
79,
83,
88,
22,
76,
33,
62,
118,
68,
36,
34,
43,
17,
134,
17,
23,
77,
30,
87,
25,
40,
64,
112,
18,
16,
105,
10,
73,
105,
46,
25,
79,
143,
82,
86,
24,
49,
31,
40,
22,
28,
42,
39,
61,
17,
41,
35,
16,
3,
42,
8,
51,
74,
13,
60,
65,
52,
22,
168,
36,
110,
144,
63,
68,
39,
15,
24,
33,
53,
65,
39,
160,
24,
35,
129,
54,
27,
125,
18,
54,
20,
17,
147,
29,
53,
31,
16,
56,
59,
29,
11,
79,
22,
81,
44,
72,
34,
49,
30,
30,
34,
36,
22,
20,
52,
38,
145,
71,
49,
73,
91,
93,
48,
53,
51,
10,
68,
60,
242,
19,
85,
37,
41,
71,
71,
69,
28,
88,
32,
61,
47,
62,
90,
58,
66,
29,
34,
9,
35,
142,
84,
10,
79,
44,
50,
184,
44,
127,
65,
76,
85,
30,
92,
13,
69,
52,
37,
27,
54,
31,
58,
37,
91,
26,
116,
259,
95,
49,
70,
84,
100,
69,
21,
48,
45,
59,
60,
116,
60,
46,
33,
32,
69,
15,
80,
59,
48,
43,
112,
64,
152,
43,
51,
192,
139,
36,
117,
41,
74,
61,
20,
81,
98,
116,
100,
170,
41,
60,
104,
55,
116,
179,
122,
61,
154,
98,
42,
112,
231,
121,
128,
76,
126,
172,
161,
188,
249,
83,
72,
164,
210,
204,
148,
66,
152,
166,
133,
171,
131,
152,
205,
112,
171,
298,
309,
168,
127,
215,
208,
145,
310,
364,
157,
636,
240
],
'resolution': [
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20,
20
],
'confirmed': [
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1
],
'vwap': [
42.58062874084018,
42.58636246786633,
42.565100374641176,
42.57884615384615,
42.575094907407404,
42.57164028144239,
42.573630977217725,
42.60981528264133,
42.591657223796034,
42.58449756606397,
42.58922635605007,
42.57760564667185,
42.57756275868273,
42.57421884352927,
42.57849143741575,
42.5788706511439,
42.5762892170521,
42.54941201670773,
42.53805817688987,
42.53390514713867,
42.51189728598239,
42.51799097166354,
42.53074572008899,
42.52082523381625,
42.521462768306684,
42.509105305116684,
42.5097633071007,
42.46680490065596,
42.444560976863755,
42.4603182374541,
42.453914597105594,
42.443508582920344,
42.453116828055485,
42.46090252608457,
42.461841919020074,
42.45544667027612,
42.4697860974971,
42.492984699804026,
42.51324337272437,
42.51630986280093,
42.5193197980931,
42.49713007736944,
42.5014554374489,
42.48033142614361,
42.472902947342455,
42.470087075735385,
42.480278223649,
42.478126490473265,
42.45012012625325,
42.44529688418577,
42.45671768963957,
42.45044205495818,
42.4493600120084,
42.442027538247565,
42.42134679020516,
42.40235542495479,
42.37559168085106,
42.37046450791855,
42.39233536265657,
42.387215601300106,
42.39760358361775,
42.399465199161426,
42.395,
42.39112181693049,
42.39005511328843,
42.371222093360394,
42.401365870967744,
42.3982967279247,
42.39965606720597,
42.40281337047354,
42.411164234709716,
42.40369971816552,
42.41518956720619,
42.43211814051032,
42.41958571428572,
42.41419729206963,
42.41570807351493,
42.394558392632895,
42.38367257861635,
42.39212571428571,
42.39644807178312,
42.39708528784648,
42.40288695652173,
42.42901167085241,
42.4585991691173,
42.48976366686402,
42.49539755411865,
42.54568497502972,
42.57962741131081,
42.57549188066464,
42.55643525741029,
42.55485600072681,
42.55795379856949,
42.56695744102469,
42.5900326098409,
42.61561839321358,
42.66261949390816,
42.670270681130546,
42.69251111605158,
42.80818646616542,
42.8109040738511,
42.778424066990596,
42.758726832453895,
42.765398586017284,
42.753339874310626,
42.743644299270684,
42.706618742029704,
42.698755725681934,
42.70265055046912,
42.74542194458437,
42.750922212939756,
42.737969290277206,
42.743182162708436,
42.73449350121852,
42.733464468091185,
42.726143087790106,
42.71676564896138,
42.71945479327579,
42.75187653891978,
42.78397268624811,
42.80806689342404,
42.818135144166504,
42.83800603891747,
42.850911444598935,
42.86920111796902,
42.840931293943505,
42.83161879709938,
42.85320181146026,
42.86805433204632,
42.88607933999738,
42.89684408123499,
42.925791262135924,
42.92971893083494,
42.94891014838036,
42.97711770952137,
43.00666505184525,
43.025598999822584,
43.021538146021335,
43.01063329745246,
43.041964688975575,
43.04121467009827,
43.04696816923685,
43.09245874713522,
43.101861164340264,
43.071869259215084,
43.06220910047221,
43.00632496442366,
42.98587056464723,
43.013901397168404,
42.99649677088672,
43.005247428019665,
43.00834363906281,
43.01515876229034,
43.013886666666664,
43.01914611215573,
43.040590207695814,
43.03976371408216,
43.02702898718692,
43.00729945649953,
43.01064514082721,
43.023804651162784,
43.0202415982485,
43.00650460844344,
43.00633272158621,
43.001893854988,
42.9542331057173,
42.95451612903226,
42.94823834808259,
42.94996523533007,
42.924034969737725,
42.94917843733238,
42.96162334615746,
42.952929174523895,
42.91145677498467,
42.87785902339081,
42.87887154172885,
42.89410306873977,
42.880043687963095,
42.873328033056424,
42.91908437644879,
42.91651336088153,
42.90911842105263,
42.917640873750464,
42.91751022701731,
42.942817992599444,
42.93891740733911,
42.945933466844686,
42.95144310105383,
42.94271022727273,
42.919060606060604,
42.92166666666667,
42.910522388059704,
42.92542918959481,
42.91596436159939,
42.91004946043166,
42.91562183389878,
42.912540660630455,
42.89961754999029,
42.911385380537915,
42.90989753241322,
42.91258022093635,
42.944656675998296,
42.92874464628564,
42.928993286267996,
42.935102192808785,
42.93180096243233,
42.91314581791266,
42.917018879415345,
42.90520903911565,
42.92798665090002,
42.907551457000714,
42.90164551010813,
42.89969362745098,
42.914066623404715,
42.910572584373554,
42.894122050186866,
42.905478495476906,
42.88097147470399,
42.850443636862316,
42.8239829728486,
42.80539215949275,
42.81679646017699,
42.7901113519298,
42.794726729671886,
42.814913409431576,
42.84766595744681,
42.883853793298194,
42.91502889297198,
42.91188704143574,
42.897666666666666,
42.895038338658146,
42.90876536435469,
42.91246909768432,
42.919783476221596,
42.917928475703576,
42.903109429784074,
42.909,
42.907676056338026,
42.9154,
42.91937785723246,
42.916640436406524,
42.921713575002094,
42.925667510002356,
42.93766210281582,
42.97284908834167,
42.98481915127528,
42.96205073839663,
42.98298352124892,
43.02609252291365,
43.03671582654634,
43.048424423866884,
43.00181049137771,
42.972721556886235,
42.97022727272727,
42.98824581037567,
42.988024662633784,
42.98359336553358,
42.982519487142135,
42.96278316326531,
42.967971428571424,
42.97059209068882,
42.9907645340751,
42.97525842251288,
42.970332778702165,
42.96639951164538,
42.99262560927563,
43.01470588235294,
43.036055397019524,
43.02585656020818,
42.97200081241538,
42.95916761041902,
42.962844031830244,
42.976543368839984,
42.99906204556471,
42.997500892538376,
42.947994078822276,
42.957485411860496,
42.976252720150875,
42.97731945348081,
42.958139287612966,
42.97039671682627,
42.9437494473754,
42.94814159876679,
42.939226603575186,
42.92898806079921,
42.91552083333333,
42.907180876399146,
42.91886363636364,
42.92090838307812,
42.92802417235943,
42.931666666666665,
42.92075168481079,
42.94753829016987,
42.954039735099336,
42.93992256690188,
42.950679430305854,
42.9661206842337,
42.96163397770565,
42.949389995637624,
42.94779751588677,
42.950961410897605,
42.964012241329065,
42.96970540351964,
43.005803657257886,
43.060641101709315,
43.05285039446771,
43.07032204533949,
43.03550277019118,
43.03644403669725,
43.00745069393719,
42.99029987239473,
42.9959494949495,
43.02048433916284,
43.02629805704837,
43.01424332634521,
43.02169366197183,
43.035142857142866,
43.05538721198157,
43.06132097740088,
43.07261215886399,
43.048240477544056,
43.031673512895175,
43.03779659514098,
43.04243185851927,
43.02688787822535,
43.013902652652654,
43.001208094848735,
42.96803525623533,
42.96888547743322,
42.99350108078898,
42.99412612301313,
42.98897972972973,
42.997696906979414,
42.99876726174128,
43.00726157205241,
43.00954241585985,
43.02284882853305,
43.08125496934169,
43.0771299930732,
43.09273867355728,
43.046896000000004,
43.03616460976882,
43.02996712586099,
43.00763247683755,
43.02291666666667,
43.04104668674698,
43.029770186113105,
43.00312784390244,
42.97834886283373,
42.96823257604929,
42.99168656582633,
42.99054043839758,
42.97220930232558,
42.982,
42.975639050791,
42.9521342357586,
42.951361407954174,
42.939148775879715,
42.919744169857296,
42.90874870428675,
42.912310026124416,
42.91428101960784,
42.9092822589846,
42.89667952403479,
42.893557418538435,
42.87178947904467,
42.878115275467266,
42.8771961756736,
42.907431183730225,
42.93794622210623,
42.940519210799586,
42.93237671232877,
42.912991463125444,
42.88059301496792,
42.88665436367033,
42.89891193222783,
42.89025321350762,
42.879519263769716,
42.86625888840517,
42.84200724337986,
42.85480216070223,
42.854165035877365,
42.83501328716379,
42.83511428571429,
42.83873150251222,
42.849754440913905,
42.851396462413135,
42.856223809327794,
42.86738886198547,
42.85087165067814,
42.86718776430787,
42.86160324925182,
42.87917539320615,
42.891688761138255,
42.88429077528667,
42.883927260083446,
42.86820606145447,
42.86050858963702,
42.88306611143022,
42.864901960784316,
42.84407437762525,
42.838936696043504,
42.8481803180318,
42.828644705882354,
42.839376802814144,
42.83582264613231,
42.82070363744782,
42.80711565306646,
42.807039084090015,
42.818176470588234,
42.81050026348147,
42.79876671267672,
42.7883082637123,
42.786078814082764,
42.801191355683876,
42.809174394835935,
42.81791647425897,
42.81945197880444,
42.818978843355964,
42.78750548926014,
42.7746556972789,
42.77721799580272,
42.783314818449455,
42.745293192935904,
42.752783321454025,
42.74827992277992,
42.75509210194297,
42.77599448857189,
42.77369144228206,
42.782054689886955,
42.79430208477309,
42.76999441340782,
42.7842743630155,
42.7917781708694,
42.82698880976602,
42.82922763368556,
42.81808823529412,
42.8489300273636,
42.87101952054795,
42.849718659495245,
42.8482078012639,
42.84765674920128,
42.841937859007835,
42.84893405600723,
42.871210954683555,
42.893244770193924,
42.91689473684211,
42.94399672497209,
42.9466473420458,
42.95830740075803,
42.956254712613266,
42.955979088532786,
42.925831507890386,
42.91090975699109,
42.91624627834186,
42.9083693653397,
42.88382098533283,
42.87709569623501,
42.875344827586204,
42.882200661709525,
42.88932812648034,
42.885392247540565,
42.89638812319538,
42.86662911162912,
42.853199027072755,
42.85922548268239,
42.87384354765849,
42.89907706469429,
42.92775254034669,
42.947193422140565,
42.96224301675977,
42.95966400042099,
42.9507427923118,
42.976931635502154,
42.9987199232019,
42.97061332718468,
42.967917505840646,
42.97002487562189,
42.975982157607795,
42.97972428198433,
42.952426054705604,
42.946777777777775,
42.90528313166051,
42.91261560616209,
42.91440502298096,
42.92010652524787,
42.920741887613765,
42.90431000109063,
42.895194252261845,
42.906869266055054,
42.93026502426279,
42.934077858311895,
42.93099162249957,
42.94075219811426,
42.951204733306184,
42.98212980583547,
42.99991379310345,
42.99249695458834,
42.97131138102928,
42.9325837090164,
42.92976228408519,
42.93965172748716,
42.93919398480591,
42.94851668726823,
42.94885740626921,
42.955021930062344,
42.93846850364281,
42.91476091812265,
42.90869660919239,
42.90829542852782,
42.92364596045887,
42.95162017632605,
42.965911660053756,
42.94816138055946,
42.955226445152476,
42.955993457890195,
42.97321844484628,
42.979820907171955,
42.9724111366043,
42.96048441212426,
42.94544381269578,
42.91827795751864,
42.91944681472011,
42.94223563326777,
42.93413809354193,
42.90328607621294,
42.884883549217335,
42.91345067327955,
42.92116555155672,
42.92140958375407,
42.96103999515211,
42.94985476427219,
42.97873174617223,
42.98648568818008,
42.97137110059587,
42.99869321203896,
43.01986890377301,
43.00304299278546,
43.00616402937222,
42.98871194100855,
42.99711701148417,
42.98486605691057,
42.99983283777773,
43.00460944683735,
42.99736634304207,
42.9867220221825,
42.98630189279465,
42.96289886487739,
42.95730372623792,
42.98116334146691,
43.00825427908326,
43.024093138837365,
43.04980042560937,
43.06064796210956,
43.06420386458957,
43.079310720770295,
43.084700446317875,
43.06710934278882,
43.07499485504648,
43.09709357400994
],
'updated': [
1679676800.329386,
1679676821.025511,
1679676842.899138,
1679676861.826048,
1679676880.532825,
1679676900.603899,
1679676923.40219,
1679676940.422805,
1679676960.350973,
1679676980.178789,
1679677002.604528,
1679677020.021431,
1679677040.572479,
1679677068.165043,
1679677081.495364,
1679677103.681904,
1679677120.245909,
1679677140.312355,
1679677162.308657,
1679677181.252638,
1679677201.702018,
1679677220.8607,
1679677243.747484,
1679677260.930135,
1679677281.625353,
1679677300.173475,
1679677320.194751,
1679677341.654045,
1679677360.127333,
1679677383.465231,
1679677400.871489,
1679677420.331994,
1679677440.665884,
1679677464.026612,
1679677483.391805,
1679677501.931638,
1679677527.765732,
1679677543.236625,
1679677560.06452,
1679677580.044537,
1679677600.036865,
1679677620.040943,
1679677641.266146,
1679677662.265757,
1679677680.242121,
1679677700.10525,
1679677727.263934,
1679677741.006291,
1679677760.762844,
1679677780.857157,
1679677801.492153,
1679677820.397384,
1679677845.523915,
1679677866.248098,
1679677880.605262,
1679677904.338753,
1679677920.254197,
1679677940.227111,
1679677960.183425,
1679677981.041285,
1679678000.734011,
1679678020.230668,
1679678041.604296,
1679678060.580631,
1679678084.714532,
1679678101.732806,
1679678120.036988,
1679678140.075236,
1679678160.132555,
1679678180.051683,
1679678200.02009,
1679678222.039268,
1679678240.629841,
1679678260.230088,
1679678281.294136,
1679678303.152602,
1679678321.378964,
1679678342.448276,
1679678363.816024,
1679678380.203098,
1679678400.329031,
1679678421.366229,
1679678442.208123,
1679678460.046583,
1679678480.126306,
1679678501.412652,
1679678520.127872,
1679678542.833501,
1679678562.561943,
1679678581.071769,
1679678604.66133,
1679678623.210856,
1679678640.860332,
1679678660.543273,
1679678680.136185,
1679678700.203531,
1679678720.616389,
1679678742.838563,
1679678760.047235,
1679678780.451355,
1679678800.512764,
1679678820.178239,
1679678840.332213,
1679678860.288685,
1679678880.766235,
1679678901.02987,
1679678921.403716,
1679678941.145548,
1679678961.10902,
1679678980.406017,
1679679000.120084,
1679679020.559843,
1679679044.329271,
1679679060.501922,
1679679084.231422,
1679679101.148233,
1679679123.092057,
1679679142.072403,
1679679160.991614,
1679679185.422946,
1679679200.381158,
1679679220.719911,
1679679240.071595,
1679679260.2938,
1679679280.349891,
1679679300.024424,
1679679321.445145,
1679679340.918523,
1679679360.236762,
1679679380.732731,
1679679400.863196,
1679679420.130542,
1679679444.003343,
1679679461.869427,
1679679483.307765,
1679679500.266627,
1679679521.450071,
1679679541.368357,
1679679560.269252,
1679679580.072081,
1679679600.466013,
1679679621.29384,
1679679640.598216,
1679679660.136618,
1679679680.570746,
1679679700.076916,
1679679720.446114,
1679679741.578881,
1679679762.035356,
1679679780.036627,
1679679800.333929,
1679679822.691246,
1679679843.966441,
1679679861.188147,
1679679882.037075,
1679679900.178634,
1679679921.904538,
1679679940.157818,
1679679960.626699,
1679679980.557646,
1679680001.540357,
1679680021.683043,
1679680040.522616,
1679680060.082231,
1679680080.030516,
1679680106.085904,
1679680120.021335,
1679680142.114082,
1679680163.48972,
1679680181.497044,
1679680201.488898,
1679680220.007721,
1679680240.359132,
1679680261.85612,
1679680280.327879,
1679680300.207526,
1679680320.441838,
1679680340.074195,
1679680360.324104,
1679680380.468562,
1679680403.942089,
1679680421.705737,
1679680440.648145,
1679680460.485657,
1679680480.137539,
1679680501.321861,
1679680520.80058,
1679680542.075591,
1679680562.094816,
1679680580.310169,
1679680601.413088,
1679680623.533428,
1679680641.775984,
1679680660.599935,
1679680683.053194,
1679680700.189054,
1679680722.418,
1679680744.799419,
1679680760.566667,
1679680780.482885,
1679680801.529274,
1679680821.846799,
1679680842.246152,
1679680863.909894,
1679680881.555366,
1679680900.386548,
1679680922.033643,
1679680940.829594,
1679680960.598678,
1679680984.794774,
1679681002.570832,
1679681025.247056,
1679681041.06705,
1679681063.04117,
1679681082.300575,
1679681102.7621,
1679681122.401158,
1679681142.841576,
1679681162.728937,
1679681182.350591,
1679681201.047589,
1679681220.236334,
1679681242.066412,
1679681264.971231,
1679681283.083555,
1679681301.20206,
1679681320.82375,
1679681340.011063,
1679681360.982988,
1679681380.528594,
1679681405.153521,
1679681420.773845,
1679681440.030366,
1679681463.331071,
1679681480.084021,
1679681512.159335,
1679681527.151459,
1679681541.135648,
1679681565.565865,
1679681580.415859,
1679681601.106553,
1679681620.110126,
1679681640.652527,
1679681660.850893,
1679681680.07566,
1679681701.05716,
1679681720.794166,
1679681740.018127,
1679681760.008868,
1679681780.595127,
1679681802.95236,
1679681821.429858,
1679681849.709523,
1679681860.050212,
1679681883.043894,
1679681901.553888,
1679681921.879084,
1679681940.873581,
1679681961.046565,
1679681983.773081,
1679682002.203458,
1679682020.151217,
1679682040.126071,
1679682060.054696,
1679682080.229102,
1679682100.904282,
1679682120.190666,
1679682140.668828,
1679682160.060354,
1679682182.513653,
1679682201.537879,
1679682223.10958,
1679682244.900351,
1679682261.179917,
1679682280.247506,
1679682300.545346,
1679682321.043553,
1679682341.852254,
1679682360.57692,
1679682380.667901,
1679682400.560683,
1679682423.676367,
1679682440.165007,
1679682460.699649,
1679682480.755284,
1679682507.657182,
1679682523.625847,
1679682543.308205,
1679682564.049327,
1679682583.233254,
1679682600.445878,
1679682622.38317,
1679682641.487859,
1679682660.313987,
1679682682.523339,
1679682700.510758,
1679682722.235451,
1679682743.000431,
1679682764.717894,
1679682780.435254,
1679682802.799336,
1679682821.927646,
1679682843.084281,
1679682861.470279,
1679682880.946721,
1679682901.275992,
1679682920.569136,
1679682940.577375,
1679682960.524952,
1679682980.935274,
1679683002.793061,
1679683021.040239,
1679683045.371565,
1679683061.365378,
1679683080.882889,
1679683105.712161,
1679683122.192909,
1679683141.446131,
1679683160.90429,
1679683183.440222,
1679683200.952696,
1679683222.703213,
1679683241.307022,
1679683261.16303,
1679683282.890492,
1679683300.338119,
1679683320.081666,
1679683342.554795,
1679683364.441124,
1679683380.001613,
1679683401.780331,
1679683420.590347,
1679683442.602348,
1679683461.23397,
1679683484.875804,
1679683500.133914,
1679683520.056723,
1679683540.52322,
1679683561.709364,
1679683586.546439,
1679683603.620096,
1679683621.466364,
1679683643.172881,
1679683661.231568,
1679683680.037695,
1679683700.417934,
1679683720.743521,
1679683740.402753,
1679683763.269551,
1679683790.073039,
1679683800.018366,
1679683820.5256,
1679683842.230205,
1679683867.213693,
1679683882.772437,
1679683902.499888,
1679683921.057351,
1679683944.178649,
1679683960.229655,
1679683981.406495,
1679684000.616588,
1679684020.46906,
1679684040.454727,
1679684063.776853,
1679684083.397852,
1679684100.213291,
1679684121.002611,
1679684140.229608,
1679684160.884528,
1679684180.056353,
1679684200.392141,
1679684221.735995,
1679684242.414874,
1679684260.125327,
1679684281.830083,
1679684300.12822,
1679684321.765675,
1679684340.172379,
1679684360.924135,
1679684380.414154,
1679684400.429104,
1679684421.406585,
1679684442.637403,
1679684460.627377,
1679684482.538443,
1679684501.870489,
1679684521.182726,
1679684541.589229,
1679684560.587847,
1679684580.478008,
1679684608.706389,
1679684620.106922,
1679684643.903696,
1679684661.684457,
1679684683.650717,
1679684700.386846,
1679684720.132275,
1679684741.154633,
1679684760.037625,
1679684780.595876,
1679684802.130502,
1679684820.01505,
1679684840.099434,
1679684860.320349,
1679684880.491518,
1679684900.227833,
1679684923.415464,
1679684940.141658,
1679684960.768481,
1679684983.512337,
1679685000.433063,
1679685020.104393,
1679685041.251273,
1679685060.8781,
1679685080.770919,
1679685100.809125,
1679685120.964985,
1679685141.401465,
1679685164.011686,
1679685182.030602,
1679685202.672757,
1679685222.320111,
1679685241.456216,
1679685260.868329,
1679685280.487031,
1679685300.245929,
1679685320.01298,
1679685340.142395,
1679685364.12322,
1679685380.343706,
1679685404.375502,
1679685423.902025,
1679685444.282721,
1679685463.016237,
1679685481.510791,
1679685501.890166,
1679685520.274269,
1679685540.316239,
1679685561.068932,
1679685583.865693,
1679685601.336033,
1679685620.888153,
1679685641.30688,
1679685660.541352,
1679685682.595189,
1679685706.078152,
1679685722.284673,
1679685741.004449,
1679685760.330621,
1679685782.581327,
1679685801.220335,
1679685820.068105,
1679685840.01783,
1679685860.703142,
1679685881.450315,
1679685900.02277,
1679685923.954996,
1679685941.142936,
1679685960.611891,
1679685981.066948,
1679686000.12813,
1679686020.757897,
1679686040.959358,
1679686060.994071,
1679686080.321991,
1679686103.683689,
1679686120.849337,
1679686140.158669,
1679686160.063303,
1679686180.041996,
1679686200.025429,
1679686221.607478,
1679686240.278958,
1679686260.155906,
1679686284.168943,
1679686300.018488,
1679686320.073877,
1679686341.282937,
1679686362.425006,
1679686380.610348,
1679686408.447552,
1679686420.487127,
1679686440.087876,
1679686461.880757,
1679686480.873689,
1679686500.10759,
1679686523.282379,
1679686540.526247,
1679686561.84025,
1679686580.0618,
1679686602.065936,
1679686620.094346,
1679686640.119056,
1679686663.626869,
1679686680.160919,
1679686700.458443,
1679686720.210931,
1679686740.061358,
1679686760.220406,
1679686785.472426,
1679686801.972145,
1679686820.445656,
1679686840.33836,
1679686866.120776,
1679686882.090672,
1679686900.752403,
1679686920.241766,
1679686940.604994,
1679686960.003602,
1679686980.172489,
1679687000.26793,
1679687020.60944,
1679687040.540363,
1679687061.819103,
1679687080.112892,
1679687100.696682,
1679687120.047463,
1679687140.330117,
1679687160.325097,
1679687180.018283,
1679687201.315794,
1679687220.070466,
1679687240.045142,
1679687262.821478,
1679687280.423959,
1679687304.994231,
1679687320.014787,
1679687340.338693,
1679687360.90411,
1679687381.842074,
1679687400.011989,
1679687421.645445,
1679687441.207576,
1679687460.80665,
1679687480.461681,
1679687500.023352,
1679687520.002455,
1679687540.674148,
1679687560.264327,
1679687581.026716,
1679687600.117394,
1679687620.370373,
1679687640.340052,
1679687660.400334,
1679687680.426111,
1679687700.04957,
1679687720.114909,
1679687740.02159,
1679687760.017926,
1679687780.478572,
1679687800.336298,
1679687820.559732,
1679687840.087597,
1679687860.188424,
1679687880.010716,
1679687900.045599,
1679687920.264224,
1679687940.168262,
1679687960.107601,
1679687980.802365
],
'index': [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560
]
}
indicators = {
'time': [
datetime.datetime(2023, 3, 24, 17, 53),
datetime.datetime(2023, 3, 24, 17, 53, 20),
datetime.datetime(2023, 3, 24, 17, 53, 40),
datetime.datetime(2023, 3, 24, 17, 54),
datetime.datetime(2023, 3, 24, 17, 54, 20),
datetime.datetime(2023, 3, 24, 17, 54, 40),
datetime.datetime(2023, 3, 24, 17, 55),
datetime.datetime(2023, 3, 24, 17, 55, 20),
datetime.datetime(2023, 3, 24, 17, 55, 40),
datetime.datetime(2023, 3, 24, 17, 56),
datetime.datetime(2023, 3, 24, 17, 56, 20),
datetime.datetime(2023, 3, 24, 17, 56, 40),
datetime.datetime(2023, 3, 24, 17, 57),
datetime.datetime(2023, 3, 24, 17, 57, 20),
datetime.datetime(2023, 3, 24, 17, 57, 40),
datetime.datetime(2023, 3, 24, 17, 58),
datetime.datetime(2023, 3, 24, 17, 58, 20),
datetime.datetime(2023, 3, 24, 17, 58, 40),
datetime.datetime(2023, 3, 24, 17, 59),
datetime.datetime(2023, 3, 24, 17, 59, 20),
datetime.datetime(2023, 3, 24, 17, 59, 40),
datetime.datetime(2023, 3, 24, 18, 0),
datetime.datetime(2023, 3, 24, 18, 0, 20),
datetime.datetime(2023, 3, 24, 18, 0, 40),
datetime.datetime(2023, 3, 24, 18, 1),
datetime.datetime(2023, 3, 24, 18, 1, 20),
datetime.datetime(2023, 3, 24, 18, 1, 40),
datetime.datetime(2023, 3, 24, 18, 2),
datetime.datetime(2023, 3, 24, 18, 2, 20),
datetime.datetime(2023, 3, 24, 18, 2, 40),
datetime.datetime(2023, 3, 24, 18, 3),
datetime.datetime(2023, 3, 24, 18, 3, 20),
datetime.datetime(2023, 3, 24, 18, 3, 40),
datetime.datetime(2023, 3, 24, 18, 4),
datetime.datetime(2023, 3, 24, 18, 4, 20),
datetime.datetime(2023, 3, 24, 18, 4, 40),
datetime.datetime(2023, 3, 24, 18, 5),
datetime.datetime(2023, 3, 24, 18, 5, 20),
datetime.datetime(2023, 3, 24, 18, 5, 40),
datetime.datetime(2023, 3, 24, 18, 6),
datetime.datetime(2023, 3, 24, 18, 6, 20),
datetime.datetime(2023, 3, 24, 18, 6, 40),
datetime.datetime(2023, 3, 24, 18, 7),
datetime.datetime(2023, 3, 24, 18, 7, 20),
datetime.datetime(2023, 3, 24, 18, 7, 40),
datetime.datetime(2023, 3, 24, 18, 8),
datetime.datetime(2023, 3, 24, 18, 8, 20),
datetime.datetime(2023, 3, 24, 18, 8, 40),
datetime.datetime(2023, 3, 24, 18, 9),
datetime.datetime(2023, 3, 24, 18, 9, 20),
datetime.datetime(2023, 3, 24, 18, 9, 40),
datetime.datetime(2023, 3, 24, 18, 10),
datetime.datetime(2023, 3, 24, 18, 10, 20),
datetime.datetime(2023, 3, 24, 18, 10, 40),
datetime.datetime(2023, 3, 24, 18, 11),
datetime.datetime(2023, 3, 24, 18, 11, 20),
datetime.datetime(2023, 3, 24, 18, 11, 40),
datetime.datetime(2023, 3, 24, 18, 12),
datetime.datetime(2023, 3, 24, 18, 12, 20),
datetime.datetime(2023, 3, 24, 18, 12, 40),
datetime.datetime(2023, 3, 24, 18, 13),
datetime.datetime(2023, 3, 24, 18, 13, 20),
datetime.datetime(2023, 3, 24, 18, 13, 40),
datetime.datetime(2023, 3, 24, 18, 14),
datetime.datetime(2023, 3, 24, 18, 14, 20),
datetime.datetime(2023, 3, 24, 18, 14, 40),
datetime.datetime(2023, 3, 24, 18, 15),
datetime.datetime(2023, 3, 24, 18, 15, 20),
datetime.datetime(2023, 3, 24, 18, 15, 40),
datetime.datetime(2023, 3, 24, 18, 16),
datetime.datetime(2023, 3, 24, 18, 16, 20),
datetime.datetime(2023, 3, 24, 18, 16, 40),
datetime.datetime(2023, 3, 24, 18, 17),
datetime.datetime(2023, 3, 24, 18, 17, 20),
datetime.datetime(2023, 3, 24, 18, 17, 40),
datetime.datetime(2023, 3, 24, 18, 18),
datetime.datetime(2023, 3, 24, 18, 18, 20),
datetime.datetime(2023, 3, 24, 18, 18, 40),
datetime.datetime(2023, 3, 24, 18, 19),
datetime.datetime(2023, 3, 24, 18, 19, 20),
datetime.datetime(2023, 3, 24, 18, 19, 40),
datetime.datetime(2023, 3, 24, 18, 20),
datetime.datetime(2023, 3, 24, 18, 20, 20),
datetime.datetime(2023, 3, 24, 18, 20, 40),
datetime.datetime(2023, 3, 24, 18, 21),
datetime.datetime(2023, 3, 24, 18, 21, 20),
datetime.datetime(2023, 3, 24, 18, 21, 40),
datetime.datetime(2023, 3, 24, 18, 22),
datetime.datetime(2023, 3, 24, 18, 22, 20),
datetime.datetime(2023, 3, 24, 18, 22, 40),
datetime.datetime(2023, 3, 24, 18, 23),
datetime.datetime(2023, 3, 24, 18, 23, 20),
datetime.datetime(2023, 3, 24, 18, 23, 40),
datetime.datetime(2023, 3, 24, 18, 24),
datetime.datetime(2023, 3, 24, 18, 24, 20),
datetime.datetime(2023, 3, 24, 18, 24, 40),
datetime.datetime(2023, 3, 24, 18, 25),
datetime.datetime(2023, 3, 24, 18, 25, 20),
datetime.datetime(2023, 3, 24, 18, 25, 40),
datetime.datetime(2023, 3, 24, 18, 26),
datetime.datetime(2023, 3, 24, 18, 26, 20),
datetime.datetime(2023, 3, 24, 18, 26, 40),
datetime.datetime(2023, 3, 24, 18, 27),
datetime.datetime(2023, 3, 24, 18, 27, 20),
datetime.datetime(2023, 3, 24, 18, 27, 40),
datetime.datetime(2023, 3, 24, 18, 28),
datetime.datetime(2023, 3, 24, 18, 28, 20),
datetime.datetime(2023, 3, 24, 18, 28, 40),
datetime.datetime(2023, 3, 24, 18, 29),
datetime.datetime(2023, 3, 24, 18, 29, 20),
datetime.datetime(2023, 3, 24, 18, 29, 40),
datetime.datetime(2023, 3, 24, 18, 30),
datetime.datetime(2023, 3, 24, 18, 30, 20),
datetime.datetime(2023, 3, 24, 18, 30, 40),
datetime.datetime(2023, 3, 24, 18, 31),
datetime.datetime(2023, 3, 24, 18, 31, 20),
datetime.datetime(2023, 3, 24, 18, 31, 40),
datetime.datetime(2023, 3, 24, 18, 32),
datetime.datetime(2023, 3, 24, 18, 32, 20),
datetime.datetime(2023, 3, 24, 18, 32, 40),
datetime.datetime(2023, 3, 24, 18, 33),
datetime.datetime(2023, 3, 24, 18, 33, 20),
datetime.datetime(2023, 3, 24, 18, 33, 40),
datetime.datetime(2023, 3, 24, 18, 34),
datetime.datetime(2023, 3, 24, 18, 34, 20),
datetime.datetime(2023, 3, 24, 18, 34, 40),
datetime.datetime(2023, 3, 24, 18, 35),
datetime.datetime(2023, 3, 24, 18, 35, 20),
datetime.datetime(2023, 3, 24, 18, 35, 40),
datetime.datetime(2023, 3, 24, 18, 36),
datetime.datetime(2023, 3, 24, 18, 36, 20),
datetime.datetime(2023, 3, 24, 18, 36, 40),
datetime.datetime(2023, 3, 24, 18, 37),
datetime.datetime(2023, 3, 24, 18, 37, 20),
datetime.datetime(2023, 3, 24, 18, 37, 40),
datetime.datetime(2023, 3, 24, 18, 38),
datetime.datetime(2023, 3, 24, 18, 38, 20),
datetime.datetime(2023, 3, 24, 18, 38, 40),
datetime.datetime(2023, 3, 24, 18, 39),
datetime.datetime(2023, 3, 24, 18, 39, 20),
datetime.datetime(2023, 3, 24, 18, 39, 40),
datetime.datetime(2023, 3, 24, 18, 40),
datetime.datetime(2023, 3, 24, 18, 40, 20),
datetime.datetime(2023, 3, 24, 18, 40, 40),
datetime.datetime(2023, 3, 24, 18, 41),
datetime.datetime(2023, 3, 24, 18, 41, 20),
datetime.datetime(2023, 3, 24, 18, 41, 40),
datetime.datetime(2023, 3, 24, 18, 42),
datetime.datetime(2023, 3, 24, 18, 42, 20),
datetime.datetime(2023, 3, 24, 18, 42, 40),
datetime.datetime(2023, 3, 24, 18, 43),
datetime.datetime(2023, 3, 24, 18, 43, 20),
datetime.datetime(2023, 3, 24, 18, 43, 40),
datetime.datetime(2023, 3, 24, 18, 44),
datetime.datetime(2023, 3, 24, 18, 44, 20),
datetime.datetime(2023, 3, 24, 18, 44, 40),
datetime.datetime(2023, 3, 24, 18, 45),
datetime.datetime(2023, 3, 24, 18, 45, 20),
datetime.datetime(2023, 3, 24, 18, 45, 40),
datetime.datetime(2023, 3, 24, 18, 46),
datetime.datetime(2023, 3, 24, 18, 46, 20),
datetime.datetime(2023, 3, 24, 18, 46, 40),
datetime.datetime(2023, 3, 24, 18, 47),
datetime.datetime(2023, 3, 24, 18, 47, 20),
datetime.datetime(2023, 3, 24, 18, 47, 40),
datetime.datetime(2023, 3, 24, 18, 48),
datetime.datetime(2023, 3, 24, 18, 48, 20),
datetime.datetime(2023, 3, 24, 18, 48, 40),
datetime.datetime(2023, 3, 24, 18, 49),
datetime.datetime(2023, 3, 24, 18, 49, 20),
datetime.datetime(2023, 3, 24, 18, 49, 40),
datetime.datetime(2023, 3, 24, 18, 50),
datetime.datetime(2023, 3, 24, 18, 50, 20),
datetime.datetime(2023, 3, 24, 18, 50, 40),
datetime.datetime(2023, 3, 24, 18, 51),
datetime.datetime(2023, 3, 24, 18, 51, 20),
datetime.datetime(2023, 3, 24, 18, 51, 40),
datetime.datetime(2023, 3, 24, 18, 52),
datetime.datetime(2023, 3, 24, 18, 52, 20),
datetime.datetime(2023, 3, 24, 18, 52, 40),
datetime.datetime(2023, 3, 24, 18, 53),
datetime.datetime(2023, 3, 24, 18, 53, 20),
datetime.datetime(2023, 3, 24, 18, 53, 40),
datetime.datetime(2023, 3, 24, 18, 54),
datetime.datetime(2023, 3, 24, 18, 54, 20),
datetime.datetime(2023, 3, 24, 18, 54, 40),
datetime.datetime(2023, 3, 24, 18, 55),
datetime.datetime(2023, 3, 24, 18, 55, 20),
datetime.datetime(2023, 3, 24, 18, 55, 40),
datetime.datetime(2023, 3, 24, 18, 56),
datetime.datetime(2023, 3, 24, 18, 56, 20),
datetime.datetime(2023, 3, 24, 18, 56, 40),
datetime.datetime(2023, 3, 24, 18, 57),
datetime.datetime(2023, 3, 24, 18, 57, 20),
datetime.datetime(2023, 3, 24, 18, 57, 40),
datetime.datetime(2023, 3, 24, 18, 58),
datetime.datetime(2023, 3, 24, 18, 58, 20),
datetime.datetime(2023, 3, 24, 18, 58, 40),
datetime.datetime(2023, 3, 24, 18, 59),
datetime.datetime(2023, 3, 24, 18, 59, 20),
datetime.datetime(2023, 3, 24, 18, 59, 40),
datetime.datetime(2023, 3, 24, 19, 0),
datetime.datetime(2023, 3, 24, 19, 0, 20),
datetime.datetime(2023, 3, 24, 19, 0, 40),
datetime.datetime(2023, 3, 24, 19, 1),
datetime.datetime(2023, 3, 24, 19, 1, 20),
datetime.datetime(2023, 3, 24, 19, 1, 40),
datetime.datetime(2023, 3, 24, 19, 2),
datetime.datetime(2023, 3, 24, 19, 2, 20),
datetime.datetime(2023, 3, 24, 19, 2, 40),
datetime.datetime(2023, 3, 24, 19, 3),
datetime.datetime(2023, 3, 24, 19, 3, 20),
datetime.datetime(2023, 3, 24, 19, 3, 40),
datetime.datetime(2023, 3, 24, 19, 4),
datetime.datetime(2023, 3, 24, 19, 4, 20),
datetime.datetime(2023, 3, 24, 19, 4, 40),
datetime.datetime(2023, 3, 24, 19, 5),
datetime.datetime(2023, 3, 24, 19, 5, 20),
datetime.datetime(2023, 3, 24, 19, 5, 40),
datetime.datetime(2023, 3, 24, 19, 6),
datetime.datetime(2023, 3, 24, 19, 6, 20),
datetime.datetime(2023, 3, 24, 19, 6, 40),
datetime.datetime(2023, 3, 24, 19, 7),
datetime.datetime(2023, 3, 24, 19, 7, 20),
datetime.datetime(2023, 3, 24, 19, 7, 40),
datetime.datetime(2023, 3, 24, 19, 8),
datetime.datetime(2023, 3, 24, 19, 8, 20),
datetime.datetime(2023, 3, 24, 19, 8, 40),
datetime.datetime(2023, 3, 24, 19, 9),
datetime.datetime(2023, 3, 24, 19, 9, 20),
datetime.datetime(2023, 3, 24, 19, 9, 40),
datetime.datetime(2023, 3, 24, 19, 10),
datetime.datetime(2023, 3, 24, 19, 10, 20),
datetime.datetime(2023, 3, 24, 19, 10, 40),
datetime.datetime(2023, 3, 24, 19, 11),
datetime.datetime(2023, 3, 24, 19, 11, 20),
datetime.datetime(2023, 3, 24, 19, 11, 40),
datetime.datetime(2023, 3, 24, 19, 12),
datetime.datetime(2023, 3, 24, 19, 12, 20),
datetime.datetime(2023, 3, 24, 19, 12, 40),
datetime.datetime(2023, 3, 24, 19, 13),
datetime.datetime(2023, 3, 24, 19, 13, 20),
datetime.datetime(2023, 3, 24, 19, 13, 40),
datetime.datetime(2023, 3, 24, 19, 14),
datetime.datetime(2023, 3, 24, 19, 14, 20),
datetime.datetime(2023, 3, 24, 19, 14, 40),
datetime.datetime(2023, 3, 24, 19, 15),
datetime.datetime(2023, 3, 24, 19, 15, 20),
datetime.datetime(2023, 3, 24, 19, 15, 40),
datetime.datetime(2023, 3, 24, 19, 16),
datetime.datetime(2023, 3, 24, 19, 16, 20),
datetime.datetime(2023, 3, 24, 19, 16, 40),
datetime.datetime(2023, 3, 24, 19, 17),
datetime.datetime(2023, 3, 24, 19, 17, 20),
datetime.datetime(2023, 3, 24, 19, 17, 40),
datetime.datetime(2023, 3, 24, 19, 18),
datetime.datetime(2023, 3, 24, 19, 18, 20),
datetime.datetime(2023, 3, 24, 19, 18, 40),
datetime.datetime(2023, 3, 24, 19, 19),
datetime.datetime(2023, 3, 24, 19, 19, 20),
datetime.datetime(2023, 3, 24, 19, 19, 40),
datetime.datetime(2023, 3, 24, 19, 20),
datetime.datetime(2023, 3, 24, 19, 20, 20),
datetime.datetime(2023, 3, 24, 19, 20, 40),
datetime.datetime(2023, 3, 24, 19, 21),
datetime.datetime(2023, 3, 24, 19, 21, 20),
datetime.datetime(2023, 3, 24, 19, 21, 40),
datetime.datetime(2023, 3, 24, 19, 22),
datetime.datetime(2023, 3, 24, 19, 22, 20),
datetime.datetime(2023, 3, 24, 19, 22, 40),
datetime.datetime(2023, 3, 24, 19, 23),
datetime.datetime(2023, 3, 24, 19, 23, 20),
datetime.datetime(2023, 3, 24, 19, 23, 40),
datetime.datetime(2023, 3, 24, 19, 24),
datetime.datetime(2023, 3, 24, 19, 24, 20),
datetime.datetime(2023, 3, 24, 19, 24, 40),
datetime.datetime(2023, 3, 24, 19, 25),
datetime.datetime(2023, 3, 24, 19, 25, 20),
datetime.datetime(2023, 3, 24, 19, 25, 40),
datetime.datetime(2023, 3, 24, 19, 26),
datetime.datetime(2023, 3, 24, 19, 26, 20),
datetime.datetime(2023, 3, 24, 19, 26, 40),
datetime.datetime(2023, 3, 24, 19, 27),
datetime.datetime(2023, 3, 24, 19, 27, 20),
datetime.datetime(2023, 3, 24, 19, 27, 40),
datetime.datetime(2023, 3, 24, 19, 28),
datetime.datetime(2023, 3, 24, 19, 28, 20),
datetime.datetime(2023, 3, 24, 19, 28, 40),
datetime.datetime(2023, 3, 24, 19, 29),
datetime.datetime(2023, 3, 24, 19, 29, 20),
datetime.datetime(2023, 3, 24, 19, 29, 40),
datetime.datetime(2023, 3, 24, 19, 30),
datetime.datetime(2023, 3, 24, 19, 30, 20),
datetime.datetime(2023, 3, 24, 19, 30, 40),
datetime.datetime(2023, 3, 24, 19, 31),
datetime.datetime(2023, 3, 24, 19, 31, 20),
datetime.datetime(2023, 3, 24, 19, 31, 40),
datetime.datetime(2023, 3, 24, 19, 32),
datetime.datetime(2023, 3, 24, 19, 32, 20),
datetime.datetime(2023, 3, 24, 19, 32, 40),
datetime.datetime(2023, 3, 24, 19, 33),
datetime.datetime(2023, 3, 24, 19, 33, 20),
datetime.datetime(2023, 3, 24, 19, 33, 40),
datetime.datetime(2023, 3, 24, 19, 34),
datetime.datetime(2023, 3, 24, 19, 34, 20),
datetime.datetime(2023, 3, 24, 19, 34, 40),
datetime.datetime(2023, 3, 24, 19, 35),
datetime.datetime(2023, 3, 24, 19, 35, 20),
datetime.datetime(2023, 3, 24, 19, 35, 40),
datetime.datetime(2023, 3, 24, 19, 36),
datetime.datetime(2023, 3, 24, 19, 36, 20),
datetime.datetime(2023, 3, 24, 19, 36, 40),
datetime.datetime(2023, 3, 24, 19, 37),
datetime.datetime(2023, 3, 24, 19, 37, 20),
datetime.datetime(2023, 3, 24, 19, 37, 40),
datetime.datetime(2023, 3, 24, 19, 38),
datetime.datetime(2023, 3, 24, 19, 38, 20),
datetime.datetime(2023, 3, 24, 19, 38, 40),
datetime.datetime(2023, 3, 24, 19, 39),
datetime.datetime(2023, 3, 24, 19, 39, 20),
datetime.datetime(2023, 3, 24, 19, 39, 40),
datetime.datetime(2023, 3, 24, 19, 40),
datetime.datetime(2023, 3, 24, 19, 40, 20),
datetime.datetime(2023, 3, 24, 19, 40, 40),
datetime.datetime(2023, 3, 24, 19, 41),
datetime.datetime(2023, 3, 24, 19, 41, 20),
datetime.datetime(2023, 3, 24, 19, 41, 40),
datetime.datetime(2023, 3, 24, 19, 42),
datetime.datetime(2023, 3, 24, 19, 42, 20),
datetime.datetime(2023, 3, 24, 19, 42, 40),
datetime.datetime(2023, 3, 24, 19, 43),
datetime.datetime(2023, 3, 24, 19, 43, 20),
datetime.datetime(2023, 3, 24, 19, 43, 40),
datetime.datetime(2023, 3, 24, 19, 44),
datetime.datetime(2023, 3, 24, 19, 44, 20),
datetime.datetime(2023, 3, 24, 19, 44, 40),
datetime.datetime(2023, 3, 24, 19, 45),
datetime.datetime(2023, 3, 24, 19, 45, 20),
datetime.datetime(2023, 3, 24, 19, 45, 40),
datetime.datetime(2023, 3, 24, 19, 46),
datetime.datetime(2023, 3, 24, 19, 46, 20),
datetime.datetime(2023, 3, 24, 19, 46, 40),
datetime.datetime(2023, 3, 24, 19, 47),
datetime.datetime(2023, 3, 24, 19, 47, 20),
datetime.datetime(2023, 3, 24, 19, 47, 40),
datetime.datetime(2023, 3, 24, 19, 48),
datetime.datetime(2023, 3, 24, 19, 48, 20),
datetime.datetime(2023, 3, 24, 19, 48, 40),
datetime.datetime(2023, 3, 24, 19, 49),
datetime.datetime(2023, 3, 24, 19, 49, 20),
datetime.datetime(2023, 3, 24, 19, 49, 40),
datetime.datetime(2023, 3, 24, 19, 50),
datetime.datetime(2023, 3, 24, 19, 50, 20),
datetime.datetime(2023, 3, 24, 19, 50, 40),
datetime.datetime(2023, 3, 24, 19, 51),
datetime.datetime(2023, 3, 24, 19, 51, 20),
datetime.datetime(2023, 3, 24, 19, 51, 40),
datetime.datetime(2023, 3, 24, 19, 52),
datetime.datetime(2023, 3, 24, 19, 52, 20),
datetime.datetime(2023, 3, 24, 19, 52, 40),
datetime.datetime(2023, 3, 24, 19, 53),
datetime.datetime(2023, 3, 24, 19, 53, 20),
datetime.datetime(2023, 3, 24, 19, 53, 40),
datetime.datetime(2023, 3, 24, 19, 54),
datetime.datetime(2023, 3, 24, 19, 54, 20),
datetime.datetime(2023, 3, 24, 19, 54, 40),
datetime.datetime(2023, 3, 24, 19, 55),
datetime.datetime(2023, 3, 24, 19, 55, 20),
datetime.datetime(2023, 3, 24, 19, 55, 40),
datetime.datetime(2023, 3, 24, 19, 56),
datetime.datetime(2023, 3, 24, 19, 56, 20),
datetime.datetime(2023, 3, 24, 19, 56, 40),
datetime.datetime(2023, 3, 24, 19, 57),
datetime.datetime(2023, 3, 24, 19, 57, 20),
datetime.datetime(2023, 3, 24, 19, 57, 40),
datetime.datetime(2023, 3, 24, 19, 58),
datetime.datetime(2023, 3, 24, 19, 58, 20),
datetime.datetime(2023, 3, 24, 19, 58, 40),
datetime.datetime(2023, 3, 24, 19, 59),
datetime.datetime(2023, 3, 24, 19, 59, 20),
datetime.datetime(2023, 3, 24, 19, 59, 40),
datetime.datetime(2023, 3, 24, 20, 0),
datetime.datetime(2023, 3, 24, 20, 0, 20),
datetime.datetime(2023, 3, 24, 20, 0, 40),
datetime.datetime(2023, 3, 24, 20, 1),
datetime.datetime(2023, 3, 24, 20, 1, 20),
datetime.datetime(2023, 3, 24, 20, 1, 40),
datetime.datetime(2023, 3, 24, 20, 2),
datetime.datetime(2023, 3, 24, 20, 2, 20),
datetime.datetime(2023, 3, 24, 20, 2, 40),
datetime.datetime(2023, 3, 24, 20, 3),
datetime.datetime(2023, 3, 24, 20, 3, 20),
datetime.datetime(2023, 3, 24, 20, 3, 40),
datetime.datetime(2023, 3, 24, 20, 4),
datetime.datetime(2023, 3, 24, 20, 4, 20),
datetime.datetime(2023, 3, 24, 20, 4, 40),
datetime.datetime(2023, 3, 24, 20, 5),
datetime.datetime(2023, 3, 24, 20, 5, 20),
datetime.datetime(2023, 3, 24, 20, 5, 40),
datetime.datetime(2023, 3, 24, 20, 6),
datetime.datetime(2023, 3, 24, 20, 6, 20),
datetime.datetime(2023, 3, 24, 20, 6, 40),
datetime.datetime(2023, 3, 24, 20, 7),
datetime.datetime(2023, 3, 24, 20, 7, 20),
datetime.datetime(2023, 3, 24, 20, 7, 40),
datetime.datetime(2023, 3, 24, 20, 8),
datetime.datetime(2023, 3, 24, 20, 8, 20),
datetime.datetime(2023, 3, 24, 20, 8, 40),
datetime.datetime(2023, 3, 24, 20, 9),
datetime.datetime(2023, 3, 24, 20, 9, 20),
datetime.datetime(2023, 3, 24, 20, 9, 40),
datetime.datetime(2023, 3, 24, 20, 10),
datetime.datetime(2023, 3, 24, 20, 10, 20),
datetime.datetime(2023, 3, 24, 20, 10, 40),
datetime.datetime(2023, 3, 24, 20, 11),
datetime.datetime(2023, 3, 24, 20, 11, 20),
datetime.datetime(2023, 3, 24, 20, 11, 40),
datetime.datetime(2023, 3, 24, 20, 12),
datetime.datetime(2023, 3, 24, 20, 12, 20),
datetime.datetime(2023, 3, 24, 20, 12, 40),
datetime.datetime(2023, 3, 24, 20, 13),
datetime.datetime(2023, 3, 24, 20, 13, 20),
datetime.datetime(2023, 3, 24, 20, 13, 40),
datetime.datetime(2023, 3, 24, 20, 14),
datetime.datetime(2023, 3, 24, 20, 14, 20),
datetime.datetime(2023, 3, 24, 20, 14, 40),
datetime.datetime(2023, 3, 24, 20, 15),
datetime.datetime(2023, 3, 24, 20, 15, 20),
datetime.datetime(2023, 3, 24, 20, 15, 40),
datetime.datetime(2023, 3, 24, 20, 16),
datetime.datetime(2023, 3, 24, 20, 16, 20),
datetime.datetime(2023, 3, 24, 20, 16, 40),
datetime.datetime(2023, 3, 24, 20, 17),
datetime.datetime(2023, 3, 24, 20, 17, 20),
datetime.datetime(2023, 3, 24, 20, 17, 40),
datetime.datetime(2023, 3, 24, 20, 18),
datetime.datetime(2023, 3, 24, 20, 18, 20),
datetime.datetime(2023, 3, 24, 20, 18, 40),
datetime.datetime(2023, 3, 24, 20, 19),
datetime.datetime(2023, 3, 24, 20, 19, 20),
datetime.datetime(2023, 3, 24, 20, 19, 40),
datetime.datetime(2023, 3, 24, 20, 20),
datetime.datetime(2023, 3, 24, 20, 20, 20),
datetime.datetime(2023, 3, 24, 20, 20, 40),
datetime.datetime(2023, 3, 24, 20, 21),
datetime.datetime(2023, 3, 24, 20, 21, 20),
datetime.datetime(2023, 3, 24, 20, 21, 40),
datetime.datetime(2023, 3, 24, 20, 22),
datetime.datetime(2023, 3, 24, 20, 22, 20),
datetime.datetime(2023, 3, 24, 20, 22, 40),
datetime.datetime(2023, 3, 24, 20, 23),
datetime.datetime(2023, 3, 24, 20, 23, 20),
datetime.datetime(2023, 3, 24, 20, 23, 40),
datetime.datetime(2023, 3, 24, 20, 24),
datetime.datetime(2023, 3, 24, 20, 24, 20),
datetime.datetime(2023, 3, 24, 20, 24, 40),
datetime.datetime(2023, 3, 24, 20, 25),
datetime.datetime(2023, 3, 24, 20, 25, 20),
datetime.datetime(2023, 3, 24, 20, 25, 40),
datetime.datetime(2023, 3, 24, 20, 26),
datetime.datetime(2023, 3, 24, 20, 26, 20),
datetime.datetime(2023, 3, 24, 20, 26, 40),
datetime.datetime(2023, 3, 24, 20, 27),
datetime.datetime(2023, 3, 24, 20, 27, 20),
datetime.datetime(2023, 3, 24, 20, 27, 40),
datetime.datetime(2023, 3, 24, 20, 28),
datetime.datetime(2023, 3, 24, 20, 28, 20),
datetime.datetime(2023, 3, 24, 20, 28, 40),
datetime.datetime(2023, 3, 24, 20, 29),
datetime.datetime(2023, 3, 24, 20, 29, 20),
datetime.datetime(2023, 3, 24, 20, 29, 40),
datetime.datetime(2023, 3, 24, 20, 30),
datetime.datetime(2023, 3, 24, 20, 30, 20),
datetime.datetime(2023, 3, 24, 20, 30, 40),
datetime.datetime(2023, 3, 24, 20, 31),
datetime.datetime(2023, 3, 24, 20, 31, 20),
datetime.datetime(2023, 3, 24, 20, 31, 40),
datetime.datetime(2023, 3, 24, 20, 32),
datetime.datetime(2023, 3, 24, 20, 32, 20),
datetime.datetime(2023, 3, 24, 20, 32, 40),
datetime.datetime(2023, 3, 24, 20, 33),
datetime.datetime(2023, 3, 24, 20, 33, 20),
datetime.datetime(2023, 3, 24, 20, 33, 40),
datetime.datetime(2023, 3, 24, 20, 34),
datetime.datetime(2023, 3, 24, 20, 34, 20),
datetime.datetime(2023, 3, 24, 20, 34, 40),
datetime.datetime(2023, 3, 24, 20, 35),
datetime.datetime(2023, 3, 24, 20, 35, 20),
datetime.datetime(2023, 3, 24, 20, 35, 40),
datetime.datetime(2023, 3, 24, 20, 36),
datetime.datetime(2023, 3, 24, 20, 36, 20),
datetime.datetime(2023, 3, 24, 20, 36, 40),
datetime.datetime(2023, 3, 24, 20, 37),
datetime.datetime(2023, 3, 24, 20, 37, 20),
datetime.datetime(2023, 3, 24, 20, 37, 40),
datetime.datetime(2023, 3, 24, 20, 38),
datetime.datetime(2023, 3, 24, 20, 38, 20),
datetime.datetime(2023, 3, 24, 20, 38, 40),
datetime.datetime(2023, 3, 24, 20, 39),
datetime.datetime(2023, 3, 24, 20, 39, 20),
datetime.datetime(2023, 3, 24, 20, 39, 40),
datetime.datetime(2023, 3, 24, 20, 40),
datetime.datetime(2023, 3, 24, 20, 40, 20),
datetime.datetime(2023, 3, 24, 20, 40, 40),
datetime.datetime(2023, 3, 24, 20, 41),
datetime.datetime(2023, 3, 24, 20, 41, 20),
datetime.datetime(2023, 3, 24, 20, 41, 40),
datetime.datetime(2023, 3, 24, 20, 42),
datetime.datetime(2023, 3, 24, 20, 42, 20),
datetime.datetime(2023, 3, 24, 20, 42, 40),
datetime.datetime(2023, 3, 24, 20, 43),
datetime.datetime(2023, 3, 24, 20, 43, 20),
datetime.datetime(2023, 3, 24, 20, 43, 40),
datetime.datetime(2023, 3, 24, 20, 44),
datetime.datetime(2023, 3, 24, 20, 44, 20),
datetime.datetime(2023, 3, 24, 20, 44, 40),
datetime.datetime(2023, 3, 24, 20, 45),
datetime.datetime(2023, 3, 24, 20, 45, 20),
datetime.datetime(2023, 3, 24, 20, 45, 40),
datetime.datetime(2023, 3, 24, 20, 46),
datetime.datetime(2023, 3, 24, 20, 46, 20),
datetime.datetime(2023, 3, 24, 20, 46, 40),
datetime.datetime(2023, 3, 24, 20, 47),
datetime.datetime(2023, 3, 24, 20, 47, 20),
datetime.datetime(2023, 3, 24, 20, 47, 40),
datetime.datetime(2023, 3, 24, 20, 48),
datetime.datetime(2023, 3, 24, 20, 48, 20),
datetime.datetime(2023, 3, 24, 20, 48, 40),
datetime.datetime(2023, 3, 24, 20, 49),
datetime.datetime(2023, 3, 24, 20, 49, 20),
datetime.datetime(2023, 3, 24, 20, 49, 40),
datetime.datetime(2023, 3, 24, 20, 50),
datetime.datetime(2023, 3, 24, 20, 50, 20),
datetime.datetime(2023, 3, 24, 20, 50, 40),
datetime.datetime(2023, 3, 24, 20, 51),
datetime.datetime(2023, 3, 24, 20, 51, 20),
datetime.datetime(2023, 3, 24, 20, 51, 40),
datetime.datetime(2023, 3, 24, 20, 52),
datetime.datetime(2023, 3, 24, 20, 52, 20),
datetime.datetime(2023, 3, 24, 20, 52, 40),
datetime.datetime(2023, 3, 24, 20, 53),
datetime.datetime(2023, 3, 24, 20, 53, 20),
datetime.datetime(2023, 3, 24, 20, 53, 40),
datetime.datetime(2023, 3, 24, 20, 54),
datetime.datetime(2023, 3, 24, 20, 54, 20),
datetime.datetime(2023, 3, 24, 20, 54, 40),
datetime.datetime(2023, 3, 24, 20, 55),
datetime.datetime(2023, 3, 24, 20, 55, 20),
datetime.datetime(2023, 3, 24, 20, 55, 40),
datetime.datetime(2023, 3, 24, 20, 56),
datetime.datetime(2023, 3, 24, 20, 56, 20),
datetime.datetime(2023, 3, 24, 20, 56, 40),
datetime.datetime(2023, 3, 24, 20, 57),
datetime.datetime(2023, 3, 24, 20, 57, 20),
datetime.datetime(2023, 3, 24, 20, 57, 40),
datetime.datetime(2023, 3, 24, 20, 58),
datetime.datetime(2023, 3, 24, 20, 58, 20),
datetime.datetime(2023, 3, 24, 20, 58, 40),
datetime.datetime(2023, 3, 24, 20, 59),
datetime.datetime(2023, 3, 24, 20, 59, 20)
],
'ema': [
42.583,
42.583,
42.58,
42.578,
42.578,
42.575,
42.578,
42.587,
42.589,
42.586,
42.584,
42.583,
42.581,
42.58,
42.578,
42.576,
42.573,
42.566,
42.559,
42.55,
42.538,
42.535,
42.534,
42.53,
42.527,
42.52,
42.511,
42.499,
42.487,
42.479,
42.471,
42.463,
42.462,
42.463,
42.462,
42.461,
42.464,
42.475,
42.487,
42.495,
42.501,
42.5,
42.5,
42.49,
42.486,
42.48,
42.481,
42.479,
42.47,
42.462,
42.461,
42.458,
42.454,
42.45,
42.441,
42.429,
42.411,
42.401,
42.398,
42.395,
42.394,
42.395,
42.395,
42.394,
42.391,
42.387,
42.391,
42.394,
42.395,
42.397,
42.401,
42.404,
42.412,
42.417,
42.417,
42.415,
42.412,
42.408,
42.401,
42.399,
42.398,
42.398,
42.399,
42.408,
42.423,
42.442,
42.459,
42.485,
42.512,
42.528,
42.535,
42.542,
42.547,
42.553,
42.566,
42.582,
42.604,
42.621,
42.645,
42.693,
42.72,
42.738,
42.743,
42.749,
42.747,
42.738,
42.73,
42.722,
42.721,
42.727,
42.732,
42.735,
42.737,
42.735,
42.732,
42.729,
42.728,
42.728,
42.734,
42.749,
42.766,
42.782,
42.799,
42.816,
42.829,
42.83,
42.832,
42.84,
42.85,
42.86,
42.877,
42.891,
42.903,
42.917,
42.936,
42.96,
42.978,
42.99,
43.0,
43.013,
43.019,
43.031,
43.049,
43.061,
43.066,
43.06,
43.041,
43.028,
43.022,
43.017,
43.012,
43.012,
43.012,
43.012,
43.017,
43.024,
43.027,
43.03,
43.022,
43.025,
43.025,
43.023,
43.017,
43.017,
43.011,
42.996,
42.984,
42.973,
42.962,
42.953,
42.95,
42.956,
42.953,
42.942,
42.925,
42.912,
42.906,
42.898,
42.896,
42.902,
42.905,
42.91,
42.911,
42.914,
42.922,
42.927,
42.933,
42.94,
42.94,
42.934,
42.931,
42.926,
42.927,
42.923,
42.919,
42.919,
42.916,
42.913,
42.912,
42.912,
42.912,
42.92,
42.922,
42.923,
42.925,
42.926,
42.923,
42.919,
42.916,
42.919,
42.916,
42.913,
42.909,
42.91,
42.907,
42.905,
42.905,
42.894,
42.881,
42.865,
42.848,
42.84,
42.828,
42.819,
42.818,
42.83,
42.848,
42.867,
42.878,
42.883,
42.886,
42.892,
42.898,
42.904,
42.906,
42.906,
42.906,
42.909,
42.91,
42.912,
42.913,
42.915,
42.916,
42.922,
42.94,
42.95,
42.954,
42.965,
42.983,
42.996,
43.01,
43.007,
42.997,
42.989,
42.989,
42.989,
42.988,
42.982,
42.975,
42.972,
42.975,
42.979,
42.978,
42.975,
42.972,
42.979,
42.989,
43.001,
43.008,
42.998,
42.987,
42.98,
42.983,
42.988,
42.988,
42.976,
42.971,
42.973,
42.972,
42.968,
42.971,
42.966,
42.959,
42.953,
42.945,
42.935,
42.926,
42.923,
42.923,
42.924,
42.927,
42.927,
42.936,
42.939,
42.94,
42.943,
42.95,
42.952,
42.951,
42.95,
42.954,
42.955,
42.96,
42.976,
42.997,
43.015,
43.029,
43.032,
43.033,
43.024,
43.014,
43.009,
43.012,
43.013,
43.012,
43.016,
43.022,
43.032,
43.043,
43.049,
43.049,
43.046,
43.045,
43.042,
43.037,
43.031,
43.021,
43.006,
43.0,
42.997,
42.995,
42.994,
42.997,
42.998,
43.002,
43.003,
43.012,
43.029,
43.046,
43.057,
43.053,
43.047,
43.041,
43.033,
43.031,
43.032,
43.031,
43.022,
43.007,
42.996,
42.997,
42.995,
42.987,
42.986,
42.981,
42.973,
42.968,
42.957,
42.946,
42.936,
42.927,
42.922,
42.92,
42.915,
42.909,
42.898,
42.89,
42.887,
42.897,
42.908,
42.917,
42.92,
42.917,
42.905,
42.9,
42.9,
42.896,
42.893,
42.883,
42.871,
42.867,
42.86,
42.854,
42.847,
42.846,
42.846,
42.847,
42.85,
42.853,
42.852,
42.856,
42.858,
42.864,
42.872,
42.876,
42.879,
42.873,
42.872,
42.873,
42.87,
42.863,
42.856,
42.85,
42.844,
42.843,
42.84,
42.835,
42.827,
42.822,
42.82,
42.816,
42.807,
42.802,
42.798,
42.802,
42.803,
42.807,
42.809,
42.811,
42.803,
42.795,
42.789,
42.788,
42.78,
42.772,
42.764,
42.762,
42.767,
42.769,
42.774,
42.78,
42.778,
42.781,
42.786,
42.798,
42.806,
42.81,
42.823,
42.833,
42.837,
42.84,
42.84,
42.841,
42.842,
42.851,
42.866,
42.881,
42.899,
42.913,
42.925,
42.936,
42.941,
42.935,
42.928,
42.924,
42.916,
42.907,
42.898,
42.891,
42.889,
42.89,
42.89,
42.89,
42.883,
42.875,
42.871,
42.874,
42.882,
42.894,
42.91,
42.925,
42.932,
42.941,
42.954,
42.966,
42.964,
42.965,
42.965,
42.972,
42.972,
42.966,
42.959,
42.945,
42.935,
42.93,
42.927,
42.925,
42.919,
42.912,
42.913,
42.92,
42.924,
42.926,
42.93,
42.937,
42.952,
42.965,
42.971,
42.968,
42.956,
42.948,
42.944,
42.942,
42.944,
42.945,
42.948,
42.942,
42.933,
42.927,
42.923,
42.926,
42.935,
42.943,
42.944,
42.947,
42.949,
42.959,
42.962,
42.965,
42.964,
42.956,
42.944,
42.938,
42.937,
42.933,
42.921,
42.91,
42.912,
42.914,
42.92,
42.931,
42.938,
42.952,
42.962,
42.964,
42.978,
42.986,
42.992,
42.996,
42.994,
42.993,
42.992,
42.992,
42.995,
42.995,
42.993,
42.991,
42.982,
42.976,
42.98,
42.99,
42.999,
43.016,
43.028,
43.038,
43.05,
43.056,
43.058,
43.064,
43.074
]
}
vars= AttributeDict(maxpozic = 200, chunk = 10, MA = 6, Trend = 7, profit = 0.02, lastbuyindex=-6, pendingbuys={},limitka = None)
trades = [
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('67affc55-fa98-446f-8ac0-eb0bb494f450'),
order=Order(
id=UUID('ae8b1fff-8a87-4ec2-af7d-48765c62afc5'),
submitted_at=datetime.datetime(2023, 3, 24, 17, 58, 1, 538364),
filled_at=datetime.datetime(2023, 3, 24, 17, 58, 30, 735317),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.56,
side=OrderSide.BUY,
limit_price=42.56
),
timestamp=datetime.datetime(2023, 3, 24, 17, 58, 30, 735317),
position_qty=10.0,
price=42.56,
qty=10.0,
value=425.6,
cash=99574.4,
pos_avg_price=42.56
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('51b872ed-98f1-4540-af13-6d8beb6ab660'),
order=Order(
id=UUID('5cae451b-6c46-47d5-8a43-023569eebcac'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 0, 43, 790484),
filled_at=datetime.datetime(2023, 3, 24, 18, 0, 46, 336552),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.51,
side=OrderSide.BUY,
limit_price=42.51
),
timestamp=datetime.datetime(2023, 3, 24, 18, 0, 46, 336552),
position_qty=20.0,
price=42.51,
qty=10.0,
value=425.09999999999997,
cash=99149.29999999999,
pos_avg_price=42.535000000000004
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('86e67324-8b74-4f67-bac7-16f2564f117d'),
order=Order(
id=UUID('f04a52b4-74e0-4de8-9ec3-a89d608e2c8d'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 3, 20, 914489),
filled_at=datetime.datetime(2023, 3, 24, 18, 3, 22, 529390),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.44,
side=OrderSide.BUY,
limit_price=42.44
),
timestamp=datetime.datetime(2023, 3, 24, 18, 3, 22, 529390),
position_qty=30.0,
price=42.44,
qty=10.0,
value=424.4,
cash=98724.9,
pos_avg_price=42.50333333333333
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('8ef5eb96-9dfa-486b-b52b-bd1cc10ab75d'),
order=Order(
id=UUID('fae4fd0d-d1e4-46e2-85e5-f32708780e77'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 3, 22, 575390),
filled_at=datetime.datetime(2023, 3, 24, 18, 5, 37, 585264),
canceled_at=None,
symbol='C',
qty=30,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=30,
filled_avg_price=42.52,
side=OrderSide.SELL,
limit_price=42.52
),
timestamp=datetime.datetime(2023, 3, 24, 18, 5, 37, 585264),
position_qty=0.0,
price=42.52,
qty=30.0,
value=1275.6000000000001,
cash=100000.5,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('1b3ea95a-b51c-4894-83e1-82364695047a'),
order=Order(
id=UUID('40aef04b-677f-4429-9a6f-05de170df1ae'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 10, 45, 566915),
filled_at=datetime.datetime(2023, 3, 24, 18, 11, 6, 387022),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.42,
side=OrderSide.BUY,
limit_price=42.42
),
timestamp=datetime.datetime(2023, 3, 24, 18, 11, 6, 387022),
position_qty=10.0,
price=42.42,
qty=10.0,
value=424.20000000000005,
cash=99576.3,
pos_avg_price=42.42
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('44baaa7c-4ff6-4e16-ac4a-0ae45a050c03'),
order=Order(
id=UUID('21b961ac-8129-4800-babd-81bb87eccfda'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 13, 20, 777011),
filled_at=datetime.datetime(2023, 3, 24, 18, 14, 38, 586145),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.38,
side=OrderSide.BUY,
limit_price=42.38
),
timestamp=datetime.datetime(2023, 3, 24, 18, 14, 38, 586145),
position_qty=20.0,
price=42.38,
qty=10.0,
value=423.8,
cash=99152.5,
pos_avg_price=42.4
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('28c9f825-4300-46ce-b73e-3af795a836a9'),
order=Order(
id=UUID('28c897f5-cb12-4b2c-9b20-abde056e1b12'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 14, 38, 632145),
filled_at=datetime.datetime(2023, 3, 24, 18, 15, 13, 203500),
canceled_at=None,
symbol='C',
qty=20,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=20,
filled_avg_price=42.42,
side=OrderSide.SELL,
limit_price=42.42
),
timestamp=datetime.datetime(2023, 3, 24, 18, 15, 13, 203500),
position_qty=0.0,
price=42.42,
qty=20.0,
value=848.4000000000001,
cash=100000.9,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('445a98ae-6fbe-415d-88e8-f98f5c6fb411'),
order=Order(
id=UUID('f1e8412c-7e36-4d0c-97a7-88e5dbab9b25'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 20, 0, 372031),
filled_at=datetime.datetime(2023, 3, 24, 18, 20, 10, 239271),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.39,
side=OrderSide.BUY,
limit_price=42.39
),
timestamp=datetime.datetime(2023, 3, 24, 18, 20, 10, 239271),
position_qty=10.0,
price=42.39,
qty=10.0,
value=423.9,
cash=99577.0,
pos_avg_price=42.39
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('e2e5cf75-6517-459b-89f8-f967a3442737'),
order=Order(
id=UUID('cf1cab4c-9e39-46a9-a804-d2e2337340bf'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 20, 10, 285271),
filled_at=datetime.datetime(2023, 3, 24, 18, 20, 31, 861599),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.41,
side=OrderSide.SELL,
limit_price=42.41
),
timestamp=datetime.datetime(2023, 3, 24, 18, 20, 31, 861599),
position_qty=0.0,
price=42.41,
qty=10.0,
value=424.09999999999997,
cash=100001.1,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('0f5308ae-bea1-4412-8922-344f6dac10ef'),
order=Order(
id=UUID('6f16c0c0-a86e-4e6f-b07e-7eb76347b223'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 43, 20, 376929),
filled_at=datetime.datetime(2023, 3, 24, 18, 45, 52, 906738),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.99,
side=OrderSide.BUY,
limit_price=42.99
),
timestamp=datetime.datetime(2023, 3, 24, 18, 45, 52, 906738),
position_qty=10.0,
price=42.99,
qty=10.0,
value=429.90000000000003,
cash=99571.20000000001,
pos_avg_price=42.99
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('98f17b2e-4392-47e5-8697-c23878e1c71a'),
order=Order(
id=UUID('afc5a626-c3cb-4cf9-b887-7571dded2f6c'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 45, 52, 952738),
filled_at=datetime.datetime(2023, 3, 24, 18, 46, 0, 627175),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=43.01,
side=OrderSide.SELL,
limit_price=43.01
),
timestamp=datetime.datetime(2023, 3, 24, 18, 46, 0, 627175),
position_qty=0.0,
price=43.01,
qty=10.0,
value=430.09999999999997,
cash=100001.30000000002,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('5431e393-291c-4828-be51-706acc39deda'),
order=Order(
id=UUID('a3a6a1d1-8bf8-4fc6-995d-0d0766443c55'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 49, 41, 540044),
filled_at=datetime.datetime(2023, 3, 24, 18, 50, 47, 441926),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.93,
side=OrderSide.BUY,
limit_price=42.93
),
timestamp=datetime.datetime(2023, 3, 24, 18, 50, 47, 441926),
position_qty=10.0,
price=42.93,
qty=10.0,
value=429.3,
cash=99572.00000000001,
pos_avg_price=42.93
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('f10ca407-0604-4e2e-b0cf-4e4243e57947'),
order=Order(
id=UUID('246d819c-6e1d-4fc0-a91e-17404fcc5cea'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 50, 47, 487926),
filled_at=datetime.datetime(2023, 3, 24, 18, 54, 23, 727098),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.95,
side=OrderSide.SELL,
limit_price=42.95
),
timestamp=datetime.datetime(2023, 3, 24, 18, 54, 23, 727098),
position_qty=0.0,
price=42.95,
qty=10.0,
value=429.5,
cash=100001.50000000001,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('9fcef2d1-2b55-4a74-9927-8463a74e75e2'),
order=Order(
id=UUID('f250e354-2291-499f-b1f0-d56788211959'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 52, 20, 117195),
filled_at=datetime.datetime(2023, 3, 24, 19, 5, 39, 193071),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.86,
side=OrderSide.BUY,
limit_price=42.86
),
timestamp=datetime.datetime(2023, 3, 24, 19, 5, 39, 193071),
position_qty=10.0,
price=42.86,
qty=10.0,
value=428.6,
cash=99572.90000000001,
pos_avg_price=42.86
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('ea4b0db4-998e-4e2a-b614-98b157106164'),
order=Order(
id=UUID('570e9c37-5c4e-4437-9dd4-a642029ca6a7'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 5, 39, 239071),
filled_at=datetime.datetime(2023, 3, 24, 19, 5, 46, 747462),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.88,
side=OrderSide.SELL,
limit_price=42.88
),
timestamp=datetime.datetime(2023, 3, 24, 19, 5, 46, 747462),
position_qty=0.0,
price=42.88,
qty=10.0,
value=428.8,
cash=100001.70000000001,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('abf993dc-5aee-4b89-b48c-92bbfcb4efe4'),
order=Order(
id=UUID('f3be9459-1c89-4594-bee0-b64ace83a12e'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 7, 22, 109412),
filled_at=datetime.datetime(2023, 3, 24, 19, 7, 25, 509392),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.79,
side=OrderSide.BUY,
limit_price=42.79
),
timestamp=datetime.datetime(2023, 3, 24, 19, 7, 25, 509392),
position_qty=10.0,
price=42.79,
qty=10.0,
value=427.9,
cash=99573.80000000002,
pos_avg_price=42.79
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('b30b01cf-b0da-4166-a5ee-9e398ce0caf7'),
order=Order(
id=UUID('44687505-271f-423d-b5eb-4022a3b0042e'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 7, 25, 555392),
filled_at=datetime.datetime(2023, 3, 24, 19, 7, 49, 238057),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.81,
side=OrderSide.SELL,
limit_price=42.81
),
timestamp=datetime.datetime(2023, 3, 24, 19, 7, 49, 238057),
position_qty=0.0,
price=42.81,
qty=10.0,
value=428.1,
cash=100001.90000000002,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('3d0bde12-75e4-4589-b51d-98f351c27f51'),
order=Order(
id=UUID('b4d1deb5-bedb-4792-87a2-d93d7a791245'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 42, 0, 124666),
filled_at=datetime.datetime(2023, 3, 24, 19, 42, 3, 369522),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.97,
side=OrderSide.BUY,
limit_price=42.97
),
timestamp=datetime.datetime(2023, 3, 24, 19, 42, 3, 369522),
position_qty=10.0,
price=42.97,
qty=10.0,
value=429.7,
cash=99572.20000000003,
pos_avg_price=42.97
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('726bc5e6-94fd-4618-bee0-91339dbfa88c'),
order=Order(
id=UUID('b32bb6d0-c972-45a5-b6ac-144273e956ea'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 42, 3, 415522),
filled_at=datetime.datetime(2023, 3, 24, 19, 42, 34, 428260),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.99,
side=OrderSide.SELL,
limit_price=42.99
),
timestamp=datetime.datetime(2023, 3, 24, 19, 42, 34, 428260),
position_qty=0.0,
price=42.99,
qty=10.0,
value=429.90000000000003,
cash=100002.10000000002,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('0f3ab616-6616-4ba5-b32f-8c7f1a6be8cb'),
order=Order(
id=UUID('345162e0-5e7b-4e0c-b5bf-dffad0508da9'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 42, 44, 484124),
filled_at=datetime.datetime(2023, 3, 24, 19, 49, 6, 219276),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.98,
side=OrderSide.BUY,
limit_price=42.98
),
timestamp=datetime.datetime(2023, 3, 24, 19, 49, 6, 219276),
position_qty=10.0,
price=42.98,
qty=10.0,
value=429.79999999999995,
cash=99572.30000000002,
pos_avg_price=42.98
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('53e0171c-6246-40ee-9dd8-f9155be32f11'),
order=Order(
id=UUID('826b174d-c894-4c7b-a25e-b42b23eaabad'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 49, 6, 265276),
filled_at=datetime.datetime(2023, 3, 24, 19, 49, 57, 528455),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=43.005,
side=OrderSide.SELL,
limit_price=43.0
),
timestamp=datetime.datetime(2023, 3, 24, 19, 49, 57, 528455),
position_qty=0.0,
price=43.005,
qty=10.0,
value=430.05,
cash=100002.35000000002,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('d827dc6f-51e2-4149-acd8-e438a271fa75'),
order=Order(
id=UUID('d931a776-2739-41ba-bd16-d9b45dff59ec'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 52, 1, 100351),
filled_at=datetime.datetime(2023, 3, 24, 19, 52, 7, 321771),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.94,
side=OrderSide.BUY,
limit_price=42.94
),
timestamp=datetime.datetime(2023, 3, 24, 19, 52, 7, 321771),
position_qty=10.0,
price=42.94,
qty=10.0,
value=429.4,
cash=99572.95000000003,
pos_avg_price=42.94
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('20d15c7a-23c0-4815-85df-8a302e2e0f39'),
order=Order(
id=UUID('0419ba73-ad51-4df6-b211-ac4c42a6e032'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 28, 43, 668847),
filled_at=datetime.datetime(2023, 3, 24, 19, 52, 41, 652899),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.9,
side=OrderSide.BUY,
limit_price=42.9
),
timestamp=datetime.datetime(2023, 3, 24, 19, 52, 41, 652899),
position_qty=20.0,
price=42.9,
qty=10.0,
value=429.0,
cash=99143.95000000003,
pos_avg_price=42.92
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('a2f8bc9b-d2ad-4a0a-a5f3-2cc728d2e541'),
order=Order(
id=UUID('36d89e04-fdfc-410d-9608-fa6517a3034d'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 54, 43, 440852),
filled_at=datetime.datetime(2023, 3, 24, 19, 54, 49, 709012),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.87,
side=OrderSide.BUY,
limit_price=42.87
),
timestamp=datetime.datetime(2023, 3, 24, 19, 54, 49, 709012),
position_qty=30.0,
price=42.87,
qty=10.0,
value=428.7,
cash=98715.25000000003,
pos_avg_price=42.903333333333336
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('dace8d0b-6618-498c-aaea-7d6e43903c92'),
order=Order(
id=UUID('57222023-d25e-461b-811a-1abc87390971'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 54, 49, 755012),
filled_at=datetime.datetime(2023, 3, 24, 19, 55, 45, 671150),
canceled_at=None,
symbol='C',
qty=30,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=30,
filled_avg_price=42.92,
side=OrderSide.SELL,
limit_price=42.92
),
timestamp=datetime.datetime(2023, 3, 24, 19, 55, 45, 671150),
position_qty=0.0,
price=42.92,
qty=30.0,
value=1287.6000000000001,
cash=100002.85000000003,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('3ce200d5-3e8d-4af8-818d-41e3f49e91f9'),
order=Order(
id=UUID('09ada304-3920-4d21-a7c5-520116f60161'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 8, 3, 126555),
filled_at=datetime.datetime(2023, 3, 24, 19, 59, 28, 62458),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.83,
side=OrderSide.BUY,
limit_price=42.83
),
timestamp=datetime.datetime(2023, 3, 24, 19, 59, 28, 62458),
position_qty=10.0,
price=42.83,
qty=10.0,
value=428.29999999999995,
cash=99574.55000000003,
pos_avg_price=42.83
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('51b1ef83-e486-44a1-9809-fd5ebca18a50'),
order=Order(
id=UUID('c8894c95-83bc-455e-8501-6622e74ad267'),
submitted_at=datetime.datetime(2023, 3, 24, 19, 59, 28, 108458),
filled_at=datetime.datetime(2023, 3, 24, 19, 59, 40, 517988),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.85,
side=OrderSide.SELL,
limit_price=42.85
),
timestamp=datetime.datetime(2023, 3, 24, 19, 59, 40, 517988),
position_qty=0.0,
price=42.85,
qty=10.0,
value=428.5,
cash=100003.05000000003,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('1a0724f7-53de-42e3-9917-b65ecca4e7a0'),
order=Order(
id=UUID('14783679-6871-496c-8875-60c3d6ae0135'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 0, 21, 449585),
filled_at=datetime.datetime(2023, 3, 24, 20, 0, 25, 189635),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.84,
side=OrderSide.BUY,
limit_price=42.84
),
timestamp=datetime.datetime(2023, 3, 24, 20, 0, 25, 189635),
position_qty=10.0,
price=42.84,
qty=10.0,
value=428.40000000000003,
cash=99574.65000000004,
pos_avg_price=42.84
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('087b5b76-0cc5-4462-971b-782fe4c4c6ad'),
order=Order(
id=UUID('3b5bf7fb-cba2-4bfb-b3b7-74e191caf928'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 0, 25, 235635),
filled_at=datetime.datetime(2023, 3, 24, 20, 1, 49, 107372),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.86,
side=OrderSide.SELL,
limit_price=42.86
),
timestamp=datetime.datetime(2023, 3, 24, 20, 1, 49, 107372),
position_qty=0.0,
price=42.86,
qty=10.0,
value=428.6,
cash=100003.25000000004,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('0302b8e0-d427-4f93-9b23-ee1da32149bd'),
order=Order(
id=UUID('446f4bab-3bd7-4bbb-ba9b-1d0445cc6371'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 8, 0, 534518),
filled_at=datetime.datetime(2023, 3, 24, 20, 8, 18, 36437),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.83,
side=OrderSide.BUY,
limit_price=42.83
),
timestamp=datetime.datetime(2023, 3, 24, 20, 8, 18, 36437),
position_qty=10.0,
price=42.83,
qty=10.0,
value=428.29999999999995,
cash=99574.95000000004,
pos_avg_price=42.83
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('1c191c3f-fe56-4486-92f2-b4ab2e0d1d24'),
order=Order(
id=UUID('cb920785-4520-44e5-b6af-978da3927c59'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 10, 41, 294273),
filled_at=datetime.datetime(2023, 3, 24, 20, 10, 45, 568943),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.78,
side=OrderSide.BUY,
limit_price=42.78
),
timestamp=datetime.datetime(2023, 3, 24, 20, 10, 45, 568943),
position_qty=20.0,
price=42.78,
qty=10.0,
value=427.8,
cash=99147.15000000004,
pos_avg_price=42.80499999999999
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('ec034230-58ba-4300-82c1-7d30399d1be0'),
order=Order(
id=UUID('f111ec92-77d2-4e38-b789-90d6ed471c76'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 10, 45, 614943),
filled_at=datetime.datetime(2023, 3, 24, 20, 11, 12, 853893),
canceled_at=None,
symbol='C',
qty=20,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=20,
filled_avg_price=42.82,
side=OrderSide.SELL,
limit_price=42.82
),
timestamp=datetime.datetime(2023, 3, 24, 20, 11, 12, 853893),
position_qty=0.0,
price=42.82,
qty=20.0,
value=856.4,
cash=100003.55000000003,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('2343a817-dcd9-42a5-8645-bf9e9fcb41a2'),
order=Order(
id=UUID('24f0e7a7-b1ce-42b6-9514-8721b240b31d'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 14, 40, 530031),
filled_at=datetime.datetime(2023, 3, 24, 20, 14, 57, 348700),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.74,
side=OrderSide.BUY,
limit_price=42.74
),
timestamp=datetime.datetime(2023, 3, 24, 20, 14, 57, 348700),
position_qty=10.0,
price=42.74,
qty=10.0,
value=427.40000000000003,
cash=99576.15000000004,
pos_avg_price=42.74
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('57f57435-ff77-4e6f-96d6-b29b725c4693'),
order=Order(
id=UUID('b8470e7b-6773-47bb-984c-ab44832b3b3b'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 14, 57, 394700),
filled_at=datetime.datetime(2023, 3, 24, 20, 15, 12, 621144),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.76,
side=OrderSide.SELL,
limit_price=42.76
),
timestamp=datetime.datetime(2023, 3, 24, 20, 15, 12, 621144),
position_qty=0.0,
price=42.76,
qty=10.0,
value=427.59999999999997,
cash=100003.75000000004,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('069b4a2d-0377-4345-96b6-74e9fae89d9e'),
order=Order(
id=UUID('9a4bbe02-fc9e-4261-95d3-d609737662a9'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 25, 41, 185936),
filled_at=datetime.datetime(2023, 3, 24, 20, 27, 34, 90412),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.86,
side=OrderSide.BUY,
limit_price=42.86
),
timestamp=datetime.datetime(2023, 3, 24, 20, 27, 34, 90412),
position_qty=10.0,
price=42.86,
qty=10.0,
value=428.6,
cash=99575.15000000004,
pos_avg_price=42.86
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('6bdd0e17-b1c2-4080-8f26-c980d615f31f'),
order=Order(
id=UUID('070c371c-f8d4-4437-b42f-6a94d3962d7b'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 27, 34, 136412),
filled_at=datetime.datetime(2023, 3, 24, 20, 28, 24, 695266),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.88,
side=OrderSide.SELL,
limit_price=42.88
),
timestamp=datetime.datetime(2023, 3, 24, 20, 28, 24, 695266),
position_qty=0.0,
price=42.88,
qty=10.0,
value=428.8,
cash=100003.95000000004,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('303bbd02-4d8b-4940-9878-52c1dca92c73'),
order=Order(
id=UUID('247f87b0-4d97-4527-bcf1-2e0679c546b0'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 35, 0, 150590),
filled_at=datetime.datetime(2023, 3, 24, 20, 35, 23, 954682),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.9,
side=OrderSide.BUY,
limit_price=42.9
),
timestamp=datetime.datetime(2023, 3, 24, 20, 35, 23, 954682),
position_qty=10.0,
price=42.9,
qty=10.0,
value=429.0,
cash=99574.95000000004,
pos_avg_price=42.9
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('697ed9c5-40c3-439c-9811-29c9f4d74487'),
order=Order(
id=UUID('3ce9a256-059e-43ed-a290-286fa310fa21'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 35, 24, 682),
filled_at=datetime.datetime(2023, 3, 24, 20, 36, 15, 43220),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.92,
side=OrderSide.SELL,
limit_price=42.92
),
timestamp=datetime.datetime(2023, 3, 24, 20, 36, 15, 43220),
position_qty=0.0,
price=42.92,
qty=10.0,
value=429.20000000000005,
cash=100004.15000000004,
pos_avg_price=0.0
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('e0a33f84-91d1-4e89-95d9-e95a3a90b0fb'),
order=Order(
id=UUID('2889c4db-7c12-4b17-b35f-c81f53625c71'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 48, 0, 466959),
filled_at=datetime.datetime(2023, 3, 24, 20, 48, 0, 901059),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.91,
side=OrderSide.BUY,
limit_price=42.91
),
timestamp=datetime.datetime(2023, 3, 24, 20, 48, 0, 901059),
position_qty=10.0,
price=42.91,
qty=10.0,
value=429.09999999999997,
cash=99575.05000000003,
pos_avg_price=42.91
),
TradeUpdate(
event=TradeEvent.FILL,
execution_id=UUID('bca37e22-3ec2-4cf4-9ce8-779675469324'),
order=Order(
id=UUID('65a65038-7cda-4b18-aa5b-c48af539d1ba'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 48, 0, 947059),
filled_at=datetime.datetime(2023, 3, 24, 20, 48, 55, 262008),
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.FILLED,
order_type=OrderType.LIMIT,
filled_qty=10,
filled_avg_price=42.93,
side=OrderSide.SELL,
limit_price=42.93
),
timestamp=datetime.datetime(2023, 3, 24, 20, 48, 55, 262008),
position_qty=0.0,
price=42.93,
qty=10.0,
value=429.3,
cash=100004.35000000003,
pos_avg_price=0.0
)
]
open_orders = [
Order(
id=UUID('f5dabcea-320e-411f-b21e-ee5c1c1cfd57'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 30),
filled_at=None,
canceled_at=None,
symbol='BAC',
qty=1,
status=OrderStatus.ACCEPTED,
order_type=OrderType.LIMIT,
filled_qty=None,
filled_avg_price=None,
side=OrderSide.BUY,
limit_price=42.75
),
Order(
id=UUID('feb4c6cc-8721-4576-88cf-29003a3246fb'),
submitted_at=datetime.datetime(2023, 3, 24, 18, 32),
filled_at=None,
canceled_at=None,
symbol='BAC',
qty=1,
status=OrderStatus.ACCEPTED,
order_type=OrderType.MARKET,
filled_qty=None,
filled_avg_price=None,
side=OrderSide.BUY,
limit_price=None
),
Order(
id=UUID('ace9d689-f70d-40aa-801e-d600590f27d0'),
submitted_at=datetime.datetime(2023, 3, 24, 20, 15, 20, 55980),
filled_at=None,
canceled_at=None,
symbol='C',
qty=10,
status=OrderStatus.ACCEPTED,
order_type=OrderType.LIMIT,
filled_qty=None,
filled_avg_price=None,
side=OrderSide.BUY,
limit_price=42.75
)
]
btdata = []
b = Backtester("BAC","callback",btdata, cash=200000)
b.backtest_end = datetime.datetime.now()
b.backtest_start = datetime.datetime.now()
#b.display_backtest_result(Neco)
oo_dict = AttributeDict(orderid=[],submitted_at=[],symbol=[],side=[],order_type=[],qty=[],limit_price=[],status=[])
for t in open_orders:
oo_dict.orderid.append(str(t.id))
oo_dict.submitted_at.append(t.submitted_at)
oo_dict.symbol.append(t.symbol)
oo_dict.side.append(t.side)
oo_dict.qty.append(t.qty)
oo_dict.order_type.append(t.order_type)
oo_dict.limit_price.append(t.limit_price)
oo_dict.status.append(t.status)
open_orders_df = pd.DataFrame(oo_dict)
open_orders_df = open_orders_df.set_index('submitted_at', drop=False)
trade_dict = AttributeDict(orderid=[],timestamp=[],symbol=[],side=[],order_type=[],qty=[],price=[],position_qty=[],value=[],cash=[],pos_avg_price=[])
for t in trades:
trade_dict.orderid.append(str(t.order.id))
trade_dict.timestamp.append(t.timestamp)
trade_dict.symbol.append(t.order.symbol)
trade_dict.side.append(t.order.side)
trade_dict.qty.append(t.qty)
trade_dict.price.append(t.price)
trade_dict.position_qty.append(t.position_qty)
trade_dict.value.append(t.value)
trade_dict.cash.append(t.cash)
trade_dict.order_type.append(t.order.order_type)
trade_dict.pos_avg_price.append(t.pos_avg_price)
trade_df = pd.DataFrame(trade_dict)
trade_df = trade_df.set_index('timestamp', drop=False)
#trade_df["id"] = trade_df.index
#ohlcv dataset (TODO podporit i trady)
hist_df = pd.DataFrame(Neco.bars)
hist_df = hist_df.set_index('time', drop=False)
ind_df = pd.DataFrame(Neco.indicators)
ind_df = ind_df.set_index('time', drop=False)
##KONEC přípravy dat
fig = make_subplots(rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.02, row_heights=[0.7, 0.3], specs=[[{"secondary_y": True}],[{"secondary_y": True}]])
# fig.add_trace(go.Scatter(x=trade_df.index,
# y=trade_df.cash,
# mode="lines+text",
# name="Cash"),
# row = 1, col=1, secondary_y=True)
#add_openorders
fig.add_trace(go.Scatter(x=open_orders_df.index,
y=open_orders_df.limit_price,
mode="markers+text",
name="Open orders",
customdata=open_orders_df.orderid,
marker=dict(size=17, color='blue', symbol='arrow-bar-down'),
text=open_orders_df.qty),
row = 1, col=1, secondary_y=False)
#open orders as line - zatim nefunguje
#mozna si pridavat avg price do kazdeho tradu a to zobrazovat
# fig.add_trace(go.Scatter(x=open_orders_df.index,
# y=open_orders_df.limit_price,
# mode="lines",
# name="Open orders",
# text=trade_df.qty),
# row = 1, col=1, secondary_y=False)
# fig.add_trace(go.Scatter(
# name='Open orders',
# x = [open_orders_df.index.min(),open_orders_df.index.max()],
# y = open_orders_df.limit_price,
# mode = "lines",
# marker = dict(color = 'rgba(80, 26, 80, 0.8)')
# ),row=1, col=1, secondary_y=False)
#trade_df['timestamp'] = pd.to_datetime(trade_df['timestamp'])
#add trades
fig.add_trace(go.Scatter(x=trade_df.loc[trade_df.side==OrderSide.BUY].index,
y=trade_df.loc[trade_df.side==OrderSide.BUY].price,
mode="markers+text",
name="BUY Trades",
customdata=trade_df.loc[trade_df.side==OrderSide.BUY].orderid,
marker=dict(size=15, color='green', symbol='arrow-up'),
text=trade_df.loc[trade_df.side==OrderSide.BUY].position_qty),
row = 1, col=1, secondary_y=False)
fig.add_trace(go.Scatter(x=trade_df.loc[trade_df.side==OrderSide.SELL].index,
y=trade_df.loc[trade_df.side==OrderSide.SELL].price,
mode="markers+text",
name="SELL Trades",
customdata=trade_df.loc[trade_df.side==OrderSide.SELL].orderid,
marker=dict(size=15, color='red', symbol='arrow-down'),
text=trade_df.loc[trade_df.side==OrderSide.SELL].qty),
row = 1, col=1, secondary_y=False)
#add avgprices of all buy trades
fig.add_trace(go.Scatter(x=trade_df.loc[trade_df.side==OrderSide.BUY].index,
y=trade_df.loc[trade_df.side==OrderSide.BUY].pos_avg_price,
mode="markers+text",
name="BUY Trades avg prices",
customdata=trade_df.loc[trade_df.side==OrderSide.BUY].orderid,
marker=dict(size=15, color='blue', symbol='diamond-wide'),
text=trade_df.loc[trade_df.side==OrderSide.BUY].position_qty),
row = 1, col=1, secondary_y=False)
#display ohlcv
fig.add_trace(go.Candlestick(x=hist_df.index,
open=hist_df['open'],
high=hist_df['high'],
low=hist_df['low'],
close=hist_df['close'],
name = "OHLC"),
row = 1, col=1, secondary_y=False)
#addvwap
fig.add_trace(go.Scatter(x=hist_df.index,
y=hist_df.vwap,
mode="lines",
opacity=1,
name="VWAP"
),
row = 1, col=1,secondary_y=False)
#display indicators from history
for col in ind_df.columns:
fig.add_trace(go.Scatter(x=ind_df.index, y = ind_df[col], mode = 'lines', name = col),
row = 1, col=1, secondary_y=False)
fig.add_trace(go.Bar(x=hist_df.index, y=hist_df.volume, showlegend=True, marker_color='#ef5350', name='Volume'), row=2,
col=1)
# fig= fig.add_trace([go.Table(header=dict(values=list(open_orders_df.columns),
# align='center',
# font=dict(family='Segoe UI',color='black', size=12)),
# cells=dict(values=open_orders_df.transpose().values.tolist(),
# align='center',
# font=dict(family='Segoe UI',color='black', size=12)))])
# fig.add_trace(
# go.Table(
# header=dict(
# values=list(open_orders_df.columns),
# font=dict(size=10),
# align="left"
# ),
# cells=dict(
# values=open_orders_df.transpose().values.tolist(),
# align = "left")
# ),
# row=3, col=1
# )
fig.update_layout(xaxis_rangeslider_visible=False)
#fig.update_layout(title=f'Backtesting Results '+str(Neco.vars), yaxis_title=f'Price')
fig.update_layout(yaxis_title=f'Price')
fig.update_yaxes(title_text=f'Price', secondary_y=False)
fig.update_yaxes(title_text=f'Cash value', secondary_y=True)
fig.update_yaxes(title_text=f'Volume', row=2, col=1)
fig.update_xaxes(title_text='Date', row=2)
##KONEC PUVODNI FIG
app = dash.Dash(__name__)
## Define the title for the app
mytitle = dcc.Markdown('# Backtesting results')
button = html.Button('save static', id='save', n_clicks=0)
saved = html.Span('', id='saved')
textik1 = html.Div('''
STrategy NAME XXXX''')
textik2 = html.Div('''
Tested period OD -- DO''')
textik3 = html.Div('''
Stratvars:'''+ str(Neco.vars))
textik4 = html.Div('''
Started at:''' + str(datetime.datetime.now())+ " Ended at XXXX" + "Duration: 23min")
textik5 = html.Div('''
Cash start:''' + str(111)+ " Cash final" + "2222")
textik6 = html.Div('''
Open orders:''' + str(len(open_orders)))
textik7 = html.Div('''
Trades:''' + str(len(trades)))
orders_title = dcc.Markdown('## Open orders')
trades_title = dcc.Markdown('## Trades')
## Define the graph
mygraph= dcc.Graph(id = "hlavni-graf", figure=fig)
open_orders_table = dash_table.DataTable(
id="orderstable",
data=open_orders_df.to_dict('records'),
columns=[{'id': c, 'name': c} for c in open_orders_df.columns],
sort_action="native",
row_selectable="single",
column_selectable=False,
fill_width = False,
filter_action = "native",
style_table={
'height': 500,
'overflowY': 'scroll'
},
style_header={
'backgroundColor': 'lightgrey',
'color': 'black'
},
style_data={
'backgroundColor': 'white',
'color': 'black'
},
style_cell={
'overflow': 'hidden',
'textOverflow': 'ellipsis',
'maxWidth': 220,
'minWidth': 5,
'width': 5
}
)
trades_table = dash_table.DataTable(
id="tradestable",
data=trade_df.to_dict('records'),
columns=[{'id': c, 'name': c} for c in trade_df.columns],
sort_action="native",
row_selectable="single",
column_selectable=False,
fill_width = False,
filter_action = "native",
style_table={
'height': 500,
'overflowY': 'scroll'
},
style_header={
'backgroundColor': 'lightgrey',
'color': 'black'
},
style_data={
'backgroundColor': 'white',
'color': 'black'
},
style_cell={
'overflow': 'hidden',
'textOverflow': 'ellipsis',
'maxWidth': 220,
'minWidth': 5,
'width': 5
}
# page_size=15
)
@app.callback(Output("tradestable", "style_data_conditional"),
Input("hlavni-graf", "hoverData"))
def highlight(hoverData):
#print(hoverData)
if hoverData is None:
return None
try:
row = hoverData["points"][0]["customdata"]
except KeyError:
return None
#print(row)
#print({"if": {"filter_query": "{{orderid}}={}".format(row)}, "backgroundColor": "lightgrey"})
return [
{"if": {"filter_query": "{{orderid}}={}".format(row)}, "backgroundColor": "lightgrey"}
]
@app.callback(Output("orderstable", "style_data_conditional"),
Input("hlavni-graf", "hoverData"))
def highlight(hoverData):
#print(hoverData)
if hoverData is None:
return None
try:
row = hoverData["points"][0]["customdata"]
except KeyError:
return None
#print(row)
#print({"if": {"filter_query": "{{orderid}}={}".format(row)}, "backgroundColor": "lightgrey"})
return [
{"if": {"filter_query": "{{orderid}}={}".format(row)}, "backgroundColor": "lightgrey"}
]
@app.callback(
Output('saved', 'children'),
Input('save', 'n_clicks'),
)
def save_result(n_clicks):
if n_clicks == 0:
return 'not saved'
else:
bt_dir = "backtestresults/"+ state.symbol + str(datetime.datetime.now())
make_static(f'http://127.0.0.1:{port}/', bt_dir)
return 'saved'
## Customize your layout
app.layout = dbc.Container([mytitle,button,saved, textik1, textik2, textik3, textik4, textik5, textik6,textik7, mygraph, trades_title, trades_table, orders_title, open_orders_table])
if __name__ == '__main__':
port = 9050
app.run_server(debug=True, port = port)