diff --git a/lib/startup/init-position-manager.ts b/lib/startup/init-position-manager.ts index 6d3eeb2..2040d4f 100644 --- a/lib/startup/init-position-manager.ts +++ b/lib/startup/init-position-manager.ts @@ -29,7 +29,29 @@ export async function initializePositionManagerOnStartup() { logger.log('๐Ÿš€ Initializing Position Manager on startup...') try { - // CRITICAL: Run database sync validator FIRST to clean up duplicates + // CRITICAL (Dec 5, 2025): Start services FIRST, before validation + // Bug fix: validateOpenTrades() returns early if no trades, skipping services + // Services must run regardless of open trades count + + // CRITICAL (Dec 2, 2025): Start data cleanup service for 4-week retention + // User directive: "we want to store the data for 4 weeks" + // Runs daily at 3 AM to delete MarketData records older than 28 days + logger.log('๐Ÿงน Starting data cleanup service...') + startDataCleanup() + + // Start blocked signal price tracking + logger.log('๐Ÿ”ฌ Starting blocked signal price tracker...') + startBlockedSignalTracking() + + // Start stop hunt revenge tracker + logger.log('๐ŸŽฏ Starting stop hunt revenge tracker...') + await startStopHuntTracking() + + // Start smart entry validation queue (Nov 30, 2025) + logger.log('๐Ÿง  Starting smart entry validation system...') + await startSmartValidation() + + // CRITICAL: Run database sync validator to clean up duplicates const { validateAllOpenTrades } = await import('../database/sync-validator') logger.log('๐Ÿ” Running database sync validation before Position Manager init...') const validationResult = await validateAllOpenTrades() @@ -52,24 +74,6 @@ export async function initializePositionManagerOnStartup() { if (status.activeTradesCount > 0) { logger.log(`๐Ÿ“Š Monitoring: ${status.symbols.join(', ')}`) } - - // CRITICAL (Dec 2, 2025): Start data cleanup service for 4-week retention - // User directive: "we want to store the data for 4 weeks" - // Runs daily at 3 AM to delete MarketData records older than 28 days - logger.log('๐Ÿงน Starting data cleanup service...') - startDataCleanup() - - // Start blocked signal price tracking - logger.log('๐Ÿ”ฌ Starting blocked signal price tracker...') - startBlockedSignalTracking() - - // Start stop hunt revenge tracker - logger.log('๐ŸŽฏ Starting stop hunt revenge tracker...') - await startStopHuntTracking() - - // Start smart entry validation queue (Nov 30, 2025) - logger.log('๐Ÿง  Starting smart entry validation system...') - await startSmartValidation() } catch (error) { console.error('โŒ Failed to initialize Position Manager on startup:', error) }