Fix target-exit mismatch: correct close reason and executable PnL gate.
Locked premium exits no longer label as fixed_usdt; mark/book optimism no longer triggers close into a realized loss. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -5,6 +5,21 @@ from __future__ import annotations
|
||||
from app.strategy.exits import check_exits, resolve_exit_target
|
||||
|
||||
|
||||
def test_locked_premium_mode_keeps_premium_reason() -> None:
|
||||
"""锁定目标金额后,平仓原因仍应按权利金倍数模式标记,而非写死 fixed_usdt。"""
|
||||
d = check_exits(
|
||||
net_pnl=25.0,
|
||||
exit_mode="premium_multiple",
|
||||
net_profit_target=15.0,
|
||||
premium_exit_multiple=1.0,
|
||||
initial_premium=20.0,
|
||||
locked_exit_target=20.0,
|
||||
)
|
||||
assert d.should_close is True
|
||||
assert d.target == 20.0
|
||||
assert d.reason == "premium_multiple"
|
||||
|
||||
|
||||
def test_locked_target_ignores_setting_drift() -> None:
|
||||
d = check_exits(
|
||||
net_pnl=20.0,
|
||||
|
||||
Reference in New Issue
Block a user