51b8bb8f8a
Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
891 B
Python
35 lines
891 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass(slots=True)
|
|
class Signal:
|
|
bias: str # call_ask_gt_put | put_ask_gt_call
|
|
option_side: str # call | put
|
|
perp_side: str # long | short
|
|
call_ask: float
|
|
put_ask: float
|
|
|
|
|
|
def decide(call_ask: float | None, put_ask: float | None) -> Signal | None:
|
|
if call_ask is None or put_ask is None:
|
|
return None
|
|
if call_ask > put_ask:
|
|
return Signal(
|
|
bias="call_ask_gt_put",
|
|
option_side="call",
|
|
perp_side="short",
|
|
call_ask=float(call_ask),
|
|
put_ask=float(put_ask),
|
|
)
|
|
if put_ask > call_ask:
|
|
return Signal(
|
|
bias="put_ask_gt_call",
|
|
option_side="put",
|
|
perp_side="long",
|
|
call_ask=float(call_ask),
|
|
put_ask=float(put_ask),
|
|
)
|
|
return None
|