Files
eth_hedge_sim/backend/app/strategy/exits.py
T

24 lines
562 B
Python

from __future__ import annotations
from dataclasses import dataclass
@dataclass(slots=True)
class ExitDecision:
should_close: bool
reason: str = ""
def check_exits(
*,
perp_upl: float,
initial_premium: float,
move_pct: float,
exit_move_pct: float,
) -> ExitDecision:
if initial_premium > 0 and perp_upl + 1e-9 >= initial_premium:
return ExitDecision(True, "premium_cover")
if exit_move_pct > 0 and move_pct + 1e-9 >= exit_move_pct:
return ExitDecision(True, "move_pct")
return ExitDecision(False, "")