fix: harden drift verifier and validation flow

This commit is contained in:
mindesbunister
2025-12-10 15:05:44 +01:00
parent 0a45279c64
commit 4e286c91ef
12 changed files with 620 additions and 579 deletions

View File

@@ -102,9 +102,9 @@ class SmartValidationQueue {
},
qualityScore: params.qualityScore,
blockedAt: Date.now(),
entryWindowMinutes: 30, // Watch for 30 minutes (extended from 10 - Dec 7, 2025)
confirmationThreshold: 0.3, // Need +0.3% move to confirm
maxDrawdown: -0.4, // Abandon if -0.4% against direction
entryWindowMinutes: 90, // Two-stage: watch for 90 minutes
confirmationThreshold: 0.15, // Two-stage: need +0.15% move to confirm
maxDrawdown: -0.4, // Abandon if -0.4% against direction (unchanged)
highestPrice: params.originalPrice,
lowestPrice: params.originalPrice,
status: 'pending',
@@ -112,7 +112,7 @@ class SmartValidationQueue {
this.queue.set(signalId, queuedSignal)
console.log(`⏰ Smart validation queued: ${params.symbol} ${params.direction.toUpperCase()} @ $${params.originalPrice.toFixed(2)} (quality: ${params.qualityScore})`)
console.log(` Watching for ${queuedSignal.entryWindowMinutes}min: +${queuedSignal.confirmationThreshold}% confirms, ${queuedSignal.maxDrawdown}% abandons`)
console.log(` Two-stage watch ${queuedSignal.entryWindowMinutes}min: +${queuedSignal.confirmationThreshold}% confirms, ${queuedSignal.maxDrawdown}% abandons`)
// Send Telegram notification
await sendValidationNotification({
@@ -463,14 +463,14 @@ export async function startSmartValidation(): Promise<void> {
const { getPrismaClient } = await import('../database/trades')
const prisma = getPrismaClient()
// Find signals blocked within last 30 minutes (entry window)
const thirtyMinutesAgo = new Date(Date.now() - 30 * 60 * 1000)
// Find signals blocked within last 90 minutes (two-stage entry window)
const ninetyMinutesAgo = new Date(Date.now() - 90 * 60 * 1000)
const recentBlocked = await prisma.blockedSignal.findMany({
where: {
blockReason: 'QUALITY_SCORE_TOO_LOW',
signalQualityScore: { gte: 50, lt: 90 }, // Marginal quality range
createdAt: { gte: thirtyMinutesAgo },
createdAt: { gte: ninetyMinutesAgo },
},
orderBy: { createdAt: 'desc' },
})