fix: expose display_score/gate_passed as top-level fields in /api/signals/latest for v53_btc

This commit is contained in:
root 2026-03-03 15:45:09 +00:00
parent 67f68f8756
commit 546fae39d0
2 changed files with 13 additions and 2 deletions

View File

@ -464,6 +464,15 @@ async def get_signal_latest(user: dict = Depends(get_current_user), strategy: st
data["factors"] = json.loads(data["factors"])
except Exception:
pass
# 对 v53_btc把 alt_score_ref 提升为顶层字段,方便前端直接读
if strategy == "v53_btc" and isinstance(data.get("factors"), dict):
f = data["factors"]
if data.get("score", 0) == 0 and f.get("alt_score_ref") is not None:
data["display_score"] = f["alt_score_ref"]
data["gate_passed"] = f.get("gate_passed", True)
else:
data["display_score"] = data.get("score", 0)
data["gate_passed"] = f.get("gate_passed", True)
result[sym.replace("USDT", "")] = data
return result

View File

@ -36,6 +36,8 @@ interface LatestIndicator {
p95_qty: number;
p99_qty: number;
score: number;
display_score?: number; // v53_btc: alt_score_ref参考分
gate_passed?: boolean; // v53_btc顶层字段
signal: string | null;
tier?: "light" | "standard" | "heavy" | null;
factors?: {
@ -307,11 +309,11 @@ function IndicatorCards({ symbol }: { symbol: Symbol }) {
{isBTC ? (
<>
<p className="font-mono font-bold text-lg text-slate-800">
{data.factors?.alt_score_ref ?? data.score}/100
{data.display_score ?? data.factors?.alt_score_ref ?? data.score}/100
<span className="text-[10px] font-normal text-slate-400 ml-1"></span>
</p>
<p className="text-[10px] text-slate-500">
{(data.factors?.gate_passed) ? (data.tier === "standard" ? "标准" : "不开仓") : "Gate否决"}
{(data.gate_passed ?? data.factors?.gate_passed) ? (data.tier === "standard" ? "标准" : "不开仓") : "Gate否决"}
</p>
</>
) : (