summaryrefslogtreecommitdiff
path: root/services/strategy-engine/strategies/base.py
blob: fdf49edaf9f9cf13393f7562e529b1a9f18994bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from abc import ABC, abstractmethod
from shared.models import Candle, Signal


class BaseStrategy(ABC):
    name: str = "base"

    @property
    @abstractmethod
    def warmup_period(self) -> int:
        pass

    @abstractmethod
    def on_candle(self, candle: Candle) -> Signal | None:
        pass

    @abstractmethod
    def configure(self, params: dict) -> None:
        pass

    def reset(self) -> None:
        pass