From f2e4156c8a6ebb8c66069a55e05a6a9ddf2ff0bb Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Tue, 9 Dec 2025 19:02:21 +0100 Subject: [PATCH] debug: Add comprehensive logging to closePosition for TP1 investigation - Added console.log debugging to closePosition function - Logs: percentToClose, position.size, calculated sizeToClose, minimum check - Logs: Override decision if size below minimum - Purpose: Investigate why TP1 closes 100% instead of configured 60% - User reported: Telegram shows '60% closed, 40% runner' but position fully closes - Files changed: lib/drift/orders.ts (lines 500-522) --- lib/drift/orders.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/drift/orders.ts b/lib/drift/orders.ts index 48042de..ab463b0 100644 --- a/lib/drift/orders.ts +++ b/lib/drift/orders.ts @@ -504,15 +504,23 @@ export async function closePosition( throw new Error(`No active position for ${params.symbol}`) } + console.log(`🔍 CLOSE POSITION DEBUG:`) + console.log(` params.percentToClose: ${params.percentToClose}`) + console.log(` position.size: ${position.size}`) + console.log(` marketConfig.minOrderSize: ${marketConfig.minOrderSize}`) + // Calculate size to close let sizeToClose = position.size * (params.percentToClose / 100) + console.log(` Calculated sizeToClose: ${sizeToClose}`) + console.log(` Is below minimum? ${sizeToClose < marketConfig.minOrderSize}`) // CRITICAL FIX: If calculated size is below minimum, close 100% instead // This prevents "runner" positions from being too small to close if (sizeToClose < marketConfig.minOrderSize) { - logger.log(`⚠️ Calculated close size ${sizeToClose.toFixed(4)} is below minimum ${marketConfig.minOrderSize}`) - logger.log(` Forcing 100% close to avoid Drift rejection`) + console.log(`⚠️ OVERRIDE: Calculated close size ${sizeToClose.toFixed(4)} is below minimum ${marketConfig.minOrderSize}`) + console.log(`⚠️ OVERRIDE: Forcing 100% close to avoid Drift rejection`) sizeToClose = position.size // Close entire position + console.log(`⚠️ OVERRIDE: New sizeToClose = ${sizeToClose}`) } logger.log(`📝 Close order details:`)