Add OKX trading-account USDC auto-swap and lock exit target while in position.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-30 00:16:47 +08:00
parent f0b0b91f1b
commit 0837982714
16 changed files with 626 additions and 36 deletions
+15 -6
View File
@@ -147,7 +147,12 @@ export default function PlanPage() {
const exitMode = plan?.exit_mode ?? "fixed_usdt";
const riskBased =
plan?.risk_based === true || plan?.sizing_mode === "risk_based";
const riskLiveOk = !riskBased || plan?.risk_sizing_preview?.ok === true;
const riskLocked =
open &&
(plan?.risk_sizing_locked === true ||
plan?.risk_sizing_preview?.locked === true);
const riskLiveOk =
!riskBased || riskLocked || plan?.risk_sizing_preview?.ok === true;
const displayPerpQty = riskLiveOk ? (plan?.perp_qty_eth ?? 1) : null;
const displayOptQty = riskLiveOk ? (plan?.option_qty_eth ?? 2) : null;
const exitTarget = riskLiveOk
@@ -160,7 +165,7 @@ export default function PlanPage() {
? `权利金×${fmt(plan?.premium_exit_multiple ?? 1, 2)}`
: riskBased
? exitTarget != null
? `固定 ${fmt(exitTarget)} U(基数${fmt(plan?.risk_exit_unit ?? 15)})`
? `${riskLocked ? "锁定 " : "固定 "}${fmt(exitTarget)} U(基数${fmt(plan?.risk_exit_unit ?? 15)})`
: `待估算(基数${fmt(plan?.risk_exit_unit ?? 15)})`
: `固定 ${fmt(plan?.net_profit_target ?? 15)} U`;
const riskRatioLabel = `比例${Number(plan?.risk_perp_unit ?? 1)}:${Number(plan?.risk_option_unit ?? 2)}`;
@@ -169,10 +174,14 @@ export default function PlanPage() {
"以损定仓",
riskRatioLabel,
plan?.risk_last_k != null ? `k=${fmt(plan.risk_last_k, 1)}` : null,
plan?.risk_sizing_preview?.budget != null
? `预算${fmt(plan.risk_sizing_preview.budget, 2)}U`
: null,
plan?.risk_sizing_preview?.ok === false
riskLocked
? exitTarget != null
? `目标锁定${fmt(exitTarget, 2)}U`
: "目标已锁定"
: plan?.risk_sizing_preview?.budget != null
? `预算${fmt(plan.risk_sizing_preview.budget, 2)}U`
: null,
!riskLocked && plan?.risk_sizing_preview?.ok === false
? String(plan.risk_sizing_preview.detail || "预览失败")
: null,
]
+6 -2
View File
@@ -1474,14 +1474,18 @@ export default function SettingsPage() {
onToggle={() => setFundsRulesOpen((v) => !v)}
>
<p>
币种兑换:对齐 OKX 现货市价 USDC-USDT,在<strong>资金账户</strong>
内完成 USDT↔USDC。参考价{" "}
币种兑换:对齐 OKX 现货市价 USDC-USDT,手动兑换在<strong>资金账户</strong>
内完成。参考价{" "}
{usdcRate != null ? `1 USDC ≈ ${usdcRate.toFixed(4)} USDT` : "—"}。
</p>
<p>
账户划转:仅<strong>资金账户 ↔ 交易账户</strong>
(USDT/USDC)。OKX 永续与期权均在交易账户,无单独期权资金/期权交易账户。
</p>
<p>
自动兑 USDC(仅 OKX SIM/LIVE):开仓前若<strong>交易账户</strong> USDC
不够当前期权所需,则在交易账户内市价 USDT→USDC,目标约「所需×2」;已够开仓则不兑;并预留永续保证金。币安不生效。
</p>
</RulesFold>
<section className="settings-section">