Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_invest-bot-main/trade_system/strategies/base_strategy.py
5933 views
1
import abc
2
import logging
3
from typing import Optional
4
5
from tinkoff.invest import HistoricCandle
6
7
from configuration.settings import StrategySettings
8
from trade_system.signal import Signal
9
10
__all__ = ("IStrategy")
11
12
logger = logging.getLogger(__name__)
13
14
15
class IStrategy(abc.ABC):
16
@property
17
@abc.abstractmethod
18
def settings(self) -> StrategySettings:
19
pass
20
21
@abc.abstractmethod
22
def analyze_candles(self, candles: list[HistoricCandle]) -> Optional[Signal]:
23
pass
24
25
@abc.abstractmethod
26
def update_lot_count(self, lot: int) -> None:
27
pass
28
29
@abc.abstractmethod
30
def update_short_status(self, status: bool) -> None:
31
pass
32
33