From 8ad19b007b6f7e74aa624abed5d00d5b251b5f59 Mon Sep 17 00:00:00 2001 From: discountry Date: Tue, 7 Oct 2025 16:31:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E5=A5=97=E5=88=A9=E5=BC=95=E6=93=8E=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=89=A3=E8=B4=B9=E5=90=8E=E4=BB=B7=E5=B7=AE=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=85=A5=E5=9C=BA=E6=9C=BA=E4=BC=9A=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/strategy/basis-arb-engine.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/strategy/basis-arb-engine.ts b/src/strategy/basis-arb-engine.ts index 5f4d28e..f17ccdd 100644 --- a/src/strategy/basis-arb-engine.ts +++ b/src/strategy/basis-arb-engine.ts @@ -398,7 +398,8 @@ export class BasisArbEngine { const spotTs = snapshot.spotLastUpdate ?? 0; if (futTs <= readyAt || spotTs <= readyAt) return; const now = this.now(); - const spreadBps = snapshot.spreadBps; + // Use net spread after taker fees to match UI's "扣除 taker 手续费" bp + const spreadBps = snapshot.netSpreadBps; const fundingRate = snapshot.fundingRate; const nextFundingTime = snapshot.nextFundingTime; const msUntilFunding = typeof nextFundingTime === "number" ? nextFundingTime - now : null; @@ -409,7 +410,7 @@ export class BasisArbEngine { this.lastEntrySignalAt = now; const bpTxt = (spreadBps as number).toFixed(2); const minutes = Math.floor(((msUntilFunding as number) / 60000)); - this.tradeLog.push("entry", `入场机会: 价差 ${bpTxt} bp | 距下次资金费约 ${minutes} 分钟`); + this.tradeLog.push("entry", `入场机会: 扣费后价差 ${bpTxt} bp | 距下次资金费约 ${minutes} 分钟`); } }