3957a83761
Co-authored-by: Cursor <cursoragent@cursor.com>
24 lines
562 B
Python
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, "")
|