blob: cf5e6e47222bb385bfb1cc19fa3013f69b55801d (
plain)
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
|
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
def validate_params(self, params: dict) -> list[str]:
"""Validate parameters and return list of error messages. Empty = valid."""
return []
|