Files
eth_hedge_sim/frontend/src/labels.ts
T
dekun 4994aaab16 Implement dual target-close paths and residual option expiry.
Document and enforce: A full dual-leg close, B perp-only when deep OTM with residual archive that does not block next open, and expiry settlement when target is missed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 18:32:05 +08:00

71 lines
2.0 KiB
TypeScript

/** 交易相关英文码 → 中文展示(库内仍存英文)。 */
const STATUS_ZH: Record<string, string> = {
open: "持仓中",
closed: "已平仓",
option_residual: "期权残留待到期",
};
const SIDE_ZH: Record<string, string> = {
long: "多",
short: "空",
call: "看涨",
put: "看跌",
};
const LEG_ZH: Record<string, string> = {
perp: "永续",
option: "期权",
};
const ACTION_ZH: Record<string, string> = {
open: "开仓",
close: "平仓",
};
const CLOSE_REASON_ZH: Record<string, string> = {
fixed_usdt: "固定净盈利达标·双腿全平",
premium_multiple: "权利金倍数达标·双腿全平",
target_perp_only: "净盈利达标·只平永续(期权归档)",
expiry: "到期结算",
emergency: "紧急全平",
manual: "手动平仓",
liquidity_retry: "流动性等待后续平仓",
unknown: "未知",
};
export function statusZh(v: string | null | undefined): string {
if (!v) return "—";
return STATUS_ZH[v] || v;
}
export function sideZh(v: string | null | undefined): string {
if (!v) return "—";
return SIDE_ZH[v] || v;
}
/** 永续方向 / 期权方向,如「多/看跌」 */
export function positionSidesZh(
perp: string | null | undefined,
option: string | null | undefined,
): string {
return `${sideZh(perp)}/${sideZh(option)}`;
}
export function fillDescZh(leg: string, action: string, side: string): string {
const l = LEG_ZH[leg] || leg;
const a = ACTION_ZH[action] || action;
const s = SIDE_ZH[side] || side;
// 期权买入开仓:「期权开多」;永续:「永续开多/开空」
if (leg === "option" && action === "open") return "期权开多";
if (leg === "option" && action === "close") return "期权平多";
if (leg === "perp" && action === "open") return s === "多" ? "永续开多" : "永续开空";
if (leg === "perp" && action === "close") return s === "多" ? "永续平多" : "永续平空";
return `${l}${a}${s}`;
}
export function closeReasonZh(v: string | null | undefined): string {
if (!v) return "—";
return CLOSE_REASON_ZH[v] || v;
}