Refine data staleness checks in MakerPointsEngine

- Updated the logic to only consider depth data for staleness checks, excluding account data from the criteria.
- Removed unnecessary account staleness checks from defense mode activation, streamlining the data validation process.
- Enhanced comments for clarity on the rationale behind the changes.
This commit is contained in:
discountry
2026-01-21 16:30:51 +08:00
parent e144c1822f
commit ed855f6859
+4 -10
View File
@@ -1503,24 +1503,23 @@ export class MakerPointsEngine {
/** /**
* 检查数据是否过时,进入或退出防御模式 * 检查数据是否过时,进入或退出防御模式
* 当 StandX 或 Binance 任意一方数据超过 5 秒未更新时,进入防御模式 * 仅检查深度数据(持续推送),账户数据只在变化时推送,不应作为过时判断依据
*/ */
private checkDataStaleAndDefense(): void { private checkDataStaleAndDefense(): void {
const now = Date.now(); const now = Date.now();
const standxDepthStale = this.lastStandxDepthTime > 0 && (now - this.lastStandxDepthTime) > DATA_STALE_THRESHOLD_MS; const standxDepthStale = this.lastStandxDepthTime > 0 && (now - this.lastStandxDepthTime) > DATA_STALE_THRESHOLD_MS;
const standxAccountStale = this.lastStandxAccountTime > 0 && (now - this.lastStandxAccountTime) > DATA_STALE_THRESHOLD_MS; // 账户数据只在有变化时推送,不作为过时判断依据
// const standxAccountStale = this.lastStandxAccountTime > 0 && (now - this.lastStandxAccountTime) > DATA_STALE_THRESHOLD_MS;
const binanceStale = this.lastBinanceDepthTime > 0 && (now - this.lastBinanceDepthTime) > DATA_STALE_THRESHOLD_MS; const binanceStale = this.lastBinanceDepthTime > 0 && (now - this.lastBinanceDepthTime) > DATA_STALE_THRESHOLD_MS;
const shouldDefend = standxDepthStale || standxAccountStale || binanceStale; const shouldDefend = standxDepthStale || binanceStale;
if (shouldDefend && !this.defenseMode) { if (shouldDefend && !this.defenseMode) {
// 进入防御模式 // 进入防御模式
this.enterDefenseMode({ this.enterDefenseMode({
standxDepthStale, standxDepthStale,
standxAccountStale,
binanceStale, binanceStale,
standxDepthAge: now - this.lastStandxDepthTime, standxDepthAge: now - this.lastStandxDepthTime,
standxAccountAge: now - this.lastStandxAccountTime,
binanceAge: now - this.lastBinanceDepthTime, binanceAge: now - this.lastBinanceDepthTime,
}); });
} else if (!shouldDefend && this.defenseMode) { } else if (!shouldDefend && this.defenseMode) {
@@ -1535,10 +1534,8 @@ export class MakerPointsEngine {
*/ */
private enterDefenseMode(staleInfo: { private enterDefenseMode(staleInfo: {
standxDepthStale: boolean; standxDepthStale: boolean;
standxAccountStale: boolean;
binanceStale: boolean; binanceStale: boolean;
standxDepthAge: number; standxDepthAge: number;
standxAccountAge: number;
binanceAge: number; binanceAge: number;
}): void { }): void {
this.defenseMode = true; this.defenseMode = true;
@@ -1548,9 +1545,6 @@ export class MakerPointsEngine {
if (staleInfo.standxDepthStale) { if (staleInfo.standxDepthStale) {
staleItems.push(`StandX深度(${Math.round(staleInfo.standxDepthAge / 1000)}s)`); staleItems.push(`StandX深度(${Math.round(staleInfo.standxDepthAge / 1000)}s)`);
} }
if (staleInfo.standxAccountStale) {
staleItems.push(`StandX账户(${Math.round(staleInfo.standxAccountAge / 1000)}s)`);
}
if (staleInfo.binanceStale) { if (staleInfo.binanceStale) {
staleItems.push(`Binance深度(${Math.round(staleInfo.binanceAge / 1000)}s)`); staleItems.push(`Binance深度(${Math.round(staleInfo.binanceAge / 1000)}s)`);
} }