Add fixed-direction switch for perp/option open side.
When enabled, lock perp long→buy Put or short→buy Call with ITM/ATM only; off keeps ATM/ask rules. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -28,6 +28,26 @@ def test_signal_equal() -> None:
|
||||
assert decide(10.0, 10.0) is None
|
||||
|
||||
|
||||
def test_decide_fixed_long_put() -> None:
|
||||
from app.strategy.signal import decide_fixed
|
||||
|
||||
s = decide_fixed(20.0, 15.0, perp_side="long")
|
||||
assert s is not None
|
||||
assert s.option_side == "put"
|
||||
assert s.perp_side == "long"
|
||||
assert s.bias == "fixed_long_put"
|
||||
|
||||
|
||||
def test_decide_fixed_short_call() -> None:
|
||||
from app.strategy.signal import decide_fixed
|
||||
|
||||
s = decide_fixed(20.0, 15.0, perp_side="short")
|
||||
assert s is not None
|
||||
assert s.option_side == "call"
|
||||
assert s.perp_side == "short"
|
||||
assert s.bias == "fixed_short_call"
|
||||
|
||||
|
||||
def test_signal_strike_below_spot_call_short() -> None:
|
||||
# 现价 1859、ATM 1850:即使 Put 卖一更高,也走 Call+空
|
||||
s = decide(10.0, 20.0, strike=1850, mark_px=1859)
|
||||
|
||||
Reference in New Issue
Block a user