This commit is contained in:
2026-03-10 18:24:14 +08:00
parent ab91804be1
commit 075932d6a6
17 changed files with 72668 additions and 0 deletions

30
strategy/strategy.py Normal file
View File

@@ -0,0 +1,30 @@
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