/
fgtmenow
/
tb
Обзор
Документация
Войти
/
fgtmenow
/
tb
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
_common/data/repository/BacktestRepository.py
130 строк
3 KB
Azarev Artem
add base bot sources
25 мар 2025, 20:11
25 мар 2025, 20:11
184b0c6
Код
Авторство
О чём код?
import datetime from _common.domain.enums.BacktestPeriod import BacktestPeriod class BacktestConfig: """ Backtesting config """ start = None config_name = None def __init__(self): self.start = 0 self.config_name = "" class DayConfig(BacktestConfig): """ Backtesting config from - 1 day """ def __init__(self): super().__init__() start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=1) self.start = int(start.timestamp() * 1000) self.config_name = "day" class ThreeDaysConfig(BacktestConfig): """ Backtesting config from - 3 day """ def __init__(self): super().__init__() start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=3) self.start = int(start.timestamp() * 1000) self.config_name = "3day" class WeekConfig(BacktestConfig): """ Backtesting config from - 7 days """ def __init__(self): super().__init__() start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=7) self.start = int(start.timestamp() * 1000) self.config_name = "week" class TwoWeekConfig(BacktestConfig): """ Backtesting config from - 7 days """ def __init__(self): super().__init__() start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=14) self.start = int(start.timestamp() * 1000) self.config_name = "2week" class MonthConfig(BacktestConfig): """ Backtesting config from - 30 days """ def __init__(self): super().__init__() start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=30) self.start = int(start.timestamp() * 1000) self.config_name = "month" class ThreeMonthConfig(BacktestConfig): """ Backtesting config from - 90 days """ def __init__(self): super().__init__() start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=90) self.start = int(start.timestamp() * 1000) self.config_name = "3month" class SixMonthConfig(BacktestConfig): """ Backtesting config from - 180 days """ def __init__(self): super().__init__() start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=180) self.start = int(start.timestamp() * 1000) self.config_name = "6month" class YearConfig(BacktestConfig): """ Backtesting config from - 365 days """ def __init__(self): super().__init__() self.start = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=365) self.config_name = "year" def getBacktestPeriodConfig(period: BacktestPeriod) -> BacktestConfig.__bases__: match period: case BacktestPeriod.DAY: return DayConfig() case BacktestPeriod.THREE_DAY: return ThreeDaysConfig() case BacktestPeriod.WEEK: return WeekConfig() case BacktestPeriod.TWO_WEEK: return TwoWeekConfig() case BacktestPeriod.MONTH: return MonthConfig() case BacktestPeriod.THREE_MONTH: return ThreeMonthConfig() case BacktestPeriod.SIX_MONTH: return SixMonthConfig() case BacktestPeriod.YEAR: return YearConfig()