feat: show hedge starting position summary

This commit is contained in:
Bu5hm4nn
2026-03-24 19:36:37 +01:00
parent 021ce7dd99
commit 24de006adb
2 changed files with 13 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ from nicegui import ui
from app.pages.common import (
dashboard_page,
demo_spot_price,
portfolio_snapshot,
strategy_catalog,
strategy_metrics,
)
@@ -94,11 +95,16 @@ def hedge_page() -> None:
def render_summary() -> None:
metrics = strategy_metrics(selected["strategy"], selected["scenario_pct"])
strategy = metrics["strategy"]
portfolio = portfolio_snapshot()
starting_weight = portfolio["gold_value"] / portfolio["spot_price"]
summary.clear()
with summary:
ui.label("Scenario Summary").classes("text-lg font-semibold text-slate-900 dark:text-slate-100")
with ui.grid(columns=2).classes("w-full gap-4 max-sm:grid-cols-1"):
with ui.grid(columns=3).classes("w-full gap-4 max-lg:grid-cols-2 max-sm:grid-cols-1"):
cards = [
("Start value", f"${portfolio['gold_value']:,.0f}"),
("Start price", f"${portfolio['spot_price']:,.2f}/oz"),
("Weight", f"{starting_weight:,.0f} oz"),
("Scenario spot", f"${metrics['scenario_price']:,.2f}"),
("Hedge cost", f"${strategy['estimated_cost']:,.2f}/oz"),
("Unhedged equity", f"${metrics['unhedged_equity']:,.0f}"),