Show in-position vs flat on control monitor cards with green/red.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -37,6 +37,19 @@ function pnlClass(v: unknown): string {
|
|||||||
return n > 0 ? "pnl-pos" : "pnl-neg";
|
return n > 0 ? "pnl-pos" : "pnl-neg";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const OPEN_STATUSES = new Set([
|
||||||
|
"open",
|
||||||
|
"half_open",
|
||||||
|
"option_closed_perp_pending",
|
||||||
|
"opening",
|
||||||
|
]);
|
||||||
|
|
||||||
|
function hasOpenPosition(position: Record<string, unknown>): boolean {
|
||||||
|
if (position.has_position === true) return true;
|
||||||
|
const st = String(position.status || "").toLowerCase();
|
||||||
|
return OPEN_STATUSES.has(st);
|
||||||
|
}
|
||||||
|
|
||||||
export default function MonitorPage() {
|
export default function MonitorPage() {
|
||||||
const [nodes, setNodes] = useState<NodeCard[]>([]);
|
const [nodes, setNodes] = useState<NodeCard[]>([]);
|
||||||
const [err, setErr] = useState("");
|
const [err, setErr] = useState("");
|
||||||
@@ -163,6 +176,7 @@ export default function MonitorPage() {
|
|||||||
{nodes.map((n) => {
|
{nodes.map((n) => {
|
||||||
const s = pickStrategy(n);
|
const s = pickStrategy(n);
|
||||||
const running = s.running === true || s.running === 1;
|
const running = s.running === true || s.running === 1;
|
||||||
|
const inPos = hasOpenPosition(s.position);
|
||||||
return (
|
return (
|
||||||
<article
|
<article
|
||||||
key={n.id}
|
key={n.id}
|
||||||
@@ -212,6 +226,12 @@ export default function MonitorPage() {
|
|||||||
{running ? "运行中" : "已停"} · {s.phase}
|
{running ? "运行中" : "已停"} · {s.phase}
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<dt>持仓</dt>
|
||||||
|
<dd className={inPos ? "pnl-pos" : "pnl-neg"}>
|
||||||
|
{inPos ? "持仓中" : "无持仓"}
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<dt>轮次</dt>
|
<dt>轮次</dt>
|
||||||
<dd>{s.rounds ?? "-"}</dd>
|
<dd>{s.rounds ?? "-"}</dd>
|
||||||
|
|||||||
Reference in New Issue
Block a user