Remove gaps in intraday charts when the market is not open

This commit is contained in:
moshferatu 2024-01-31 12:57:12 -08:00
parent 23d5ffb391
commit 1a76ae8c47

View File

@ -1,4 +1,4 @@
from pandas import date_range, Series from pandas import date_range, Series, to_datetime
from plotly.basedatatypes import BaseTraceType from plotly.basedatatypes import BaseTraceType
from typing import List from typing import List
@ -15,5 +15,16 @@ class Chart:
start_date = self.x.min() start_date = self.x.min()
end_date = self.x.max() end_date = self.x.max()
all_dates = date_range(start = start_date, end = end_date) all_dates = date_range(start = start_date, end = end_date)
missing_dates = all_dates.difference(self.x) missing_dates = all_dates.difference(self.x)
return [dict(values = missing_dates)] range_breaks = [dict(values = missing_dates)]
if self.is_intraday():
# Assuming US Eastern time zone.
range_breaks.append(dict(bounds = [16, 9.5], pattern = 'hour'))
return range_breaks
def is_intraday(self) -> bool:
# Check if the x-axis series has a time component other than midnight.
return any(to_datetime(self.x).dt.time != to_datetime(self.x).dt.normalize().dt.time)