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)
This commit is contained in:
@@ -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:`)
|
||||
|
||||
Reference in New Issue
Block a user