21 lines
669 B
Python
21 lines
669 B
Python
from __future__ import annotations
|
|
|
|
from app.pages.common import strategy_metrics
|
|
|
|
|
|
def test_protective_put_atm_minus_20pct_improves_equity() -> None:
|
|
metrics = strategy_metrics("protective_put_atm", -20)
|
|
|
|
assert metrics["scenario_price"] == 172.0
|
|
assert metrics["unhedged_equity"] == 27_000.0
|
|
assert metrics["hedged_equity"] == 58_750.0
|
|
assert metrics["hedged_equity"] > metrics["unhedged_equity"]
|
|
assert metrics["waterfall_steps"] == [
|
|
("Base equity", 70_000.0),
|
|
("Spot move", -43_000.0),
|
|
("Option payoff", 38_000.0),
|
|
("Call cap", 0.0),
|
|
("Hedge cost", -6_250.0),
|
|
("Net equity", 58_750.0),
|
|
]
|