Revise strategy: TTM+ATM+leverage option pick, % exit, perp leverage/margin.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-25 08:38:03 +08:00
parent 7db4c9c8a3
commit 3957a83761
16 changed files with 532 additions and 261 deletions
+20 -16
View File
@@ -75,15 +75,15 @@ export default function PlanPage() {
const pos = plan?.position;
const open = !!pos?.has_position;
const exitN = plan?.exit_move_points ?? 30;
const move = pos?.move_points ?? 0;
const exitPct = plan?.exit_move_pct ?? 2;
const movePct = pos?.move_pct ?? 0;
const phaseLabel = PHASE_ZH[plan?.phase || ""] || plan?.phase || "—";
return (
<div>
<h2 style={{ marginTop: 0 }}></h2>
<p style={{ color: "var(--muted)", marginTop: -8 }}>
SIM · · N
SIM · · ·
</p>
{err ? <div className="err">{err}</div> : null}
@@ -142,14 +142,14 @@ export default function PlanPage() {
)}
<span className="mono">
{" "}
· {phaseLabel} · {plan?.rounds_done ?? 0}/{plan?.max_rounds ?? 3}
· {phaseLabel} · {plan?.rounds_done ?? 0}
</span>
</span>
</div>
<div className="kv">
<span></span>
<span></span>
<span className="mono">
{plan?.can_open ? "可开" : "禁止新开"} · {plan?.window_key || "—"}
{fmt(plan?.min_option_hours, 0)}h · {fmt(plan?.min_option_leverage, 0)}x
</span>
</div>
<div className="kv">
@@ -159,9 +159,10 @@ export default function PlanPage() {
</span>
</div>
<div className="kv">
<span></span>
<span> / </span>
<span className="mono">
{fmt(plan?.ledger?.equity)} / {fmt(plan?.ledger?.available)}
{fmt(plan?.ledger?.equity)} / {fmt(plan?.ledger?.available)} ·{" "}
{fmt(plan?.leverage, 0)}x
</span>
</div>
<div className="kv">
@@ -181,9 +182,9 @@ export default function PlanPage() {
</span>
</div>
<div className="kv">
<span>N </span>
<span></span>
<span className="mono">
{fmt(move, 1)} / {fmt(exitN, 0)}
{fmt(movePct, 2)}% / {fmt(exitPct, 2)}%
</span>
</div>
{plan?.last_error ? (
@@ -217,6 +218,9 @@ export default function PlanPage() {
<span className="pos-meta-item"></span>
<span className="pos-meta-item"> {pos?.group_id}</span>
<span className="pos-meta-item mono"> {fmt(pos?.perp_qty_eth, 2)} ETH</span>
<span className="pos-meta-item mono">
{fmt(pos?.leverage ?? plan?.leverage, 0)}x
</span>
</div>
<div className="pos-grid">
<div className="pos-cell">
@@ -234,16 +238,16 @@ export default function PlanPage() {
</span>
</div>
<div className="pos-cell">
<span className="pos-label"></span>
<span className="pos-value mono">{fmt(pos?.index_px)}</span>
<span className="pos-label"></span>
<span className="pos-value mono">{fmt(pos?.perp_margin)}</span>
</div>
<div className="pos-cell">
<span className="pos-label"></span>
<span className="pos-value mono">{fmt(pos?.entry_index_px)}</span>
<span className="pos-label"></span>
<span className="pos-value mono">{fmt(pos?.perp_notional)}</span>
</div>
<div className="pos-cell">
<span className="pos-label"></span>
<span className="pos-value mono">{fmt(move, 1)}</span>
<span className="pos-label"></span>
<span className="pos-value mono">{fmt(movePct, 2)}%</span>
</div>
</div>
</div>