from abc import ABC, abstractmethod from internal_types.types import Position, Quote # todo: # handle strategy that trades multiple instruments # fractional position/volume for crypto # callback for async order class Strategy(ABC): @abstractmethod def curr_position(self) -> int: pass @abstractmethod def desired_position(self) -> int: pass @abstractmethod def order_filled(self, new_pos: Position): pass @abstractmethod def process_quote(self, quote: Quote): pass @abstractmethod def net_liquid_value(self, closing_price: float) -> float: pass