Read risk_loss_pct exit base and option lev from strategy settings.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-30 15:03:26 +08:00
parent 67f22626e9
commit c05478015d
2 changed files with 49 additions and 16 deletions
+23 -9
View File
@@ -80,19 +80,33 @@ function riskLines(strat: Record<string, unknown>): RiskLines {
const exitMode = String(strat.exit_mode || "fixed_usdt");
let exit: string;
if (riskBased) {
exit = `基数${unitLabel(strat.risk_exit_unit ?? 15)}`;
// 必须读策略机 risk_exit_unit,禁止写死 15
exit =
strat.risk_exit_unit != null && Number.isFinite(Number(strat.risk_exit_unit))
? `基数${unitLabel(strat.risk_exit_unit)}`
: "基数—";
} else if (exitMode === "premium_multiple") {
exit = `权利金×${fmt(strat.premium_exit_multiple ?? 1, 2)}`;
exit =
strat.premium_exit_multiple != null
? `权利金×${fmt(strat.premium_exit_multiple, 2)}`
: "权利金×—";
} else {
exit = `固定 ${fmt(strat.net_profit_target ?? strat.exit_target_usdt, 2)}U`;
const t = strat.net_profit_target ?? strat.exit_target_usdt;
exit =
t != null && Number.isFinite(Number(t))
? `固定 ${fmt(t, 2)}U`
: "固定 —";
}
const lossN = Number(strat.risk_loss_pct);
const lossPct =
riskBased && Number.isFinite(lossN)
// 以损定仓必显风险比例(risk_loss_pct);手动隐藏
let lossPct: string | null = null;
if (riskBased) {
const lossN = Number(strat.risk_loss_pct);
lossPct = Number.isFinite(lossN)
? `${fmt(lossN, lossN % 1 === 0 ? 0 : 2)}%`
: null;
: "—";
}
const openRatio = riskBased
? `${unitLabel(strat.risk_perp_unit ?? 1)}:${unitLabel(strat.risk_option_unit ?? 2)}`
? `${unitLabel(strat.risk_perp_unit)}:${unitLabel(strat.risk_option_unit)}`
: null;
return {
riskBased,
@@ -114,7 +128,7 @@ function RiskParamsBox({ strat }: { strat: Record<string, unknown> }) {
<dt></dt>
<dd>{r.sizing}</dd>
</div>
{r.lossPct ? (
{r.lossPct != null ? (
<div>
<dt></dt>
<dd>{r.lossPct}</dd>