Polish risk sizing: 2dp money preview, editable ratio/exit, plan badge.

Exit unit and perp/option units scale with k; plan page shows 以损定仓.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-29 23:48:34 +08:00
parent 3a4c8d639c
commit a47a9b6377
8 changed files with 349 additions and 38 deletions
+9
View File
@@ -54,6 +54,9 @@ KEYS = (
"risk_loss_usdt",
"risk_capital_source",
"risk_manual_capital_usdt",
"risk_perp_unit",
"risk_option_unit",
"risk_exit_unit",
)
@@ -88,6 +91,9 @@ class StrategySettingsBody(BaseModel):
default=None, pattern="^(trading_account|manual)$"
)
risk_manual_capital_usdt: float | None = Field(default=None, ge=1, le=100_000_000)
risk_perp_unit: float | None = Field(default=None, ge=0.01, le=100)
risk_option_unit: float | None = Field(default=None, ge=0.01, le=100)
risk_exit_unit: float | None = Field(default=None, ge=0.1, le=1_000_000)
def _as_bool(raw: str | None, default: bool) -> bool:
@@ -244,6 +250,9 @@ def _read_settings() -> dict:
"risk_manual_capital_usdt": float(
db.get_setting("risk_manual_capital_usdt", "10000") or 10000
),
"risk_perp_unit": float(db.get_setting("risk_perp_unit", "1") or 1),
"risk_option_unit": float(db.get_setting("risk_option_unit", "2") or 2),
"risk_exit_unit": float(db.get_setting("risk_exit_unit", "15") or 15),
"risk_sizing_preview": _risk_preview_safe(),
"exchange": rt.exchange,
"perp_inst_id": rt.perp_inst_id,