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