/** * Test the AI leverage calculation in automation */ async function testLeverageAutomation() { console.log('๐Ÿงช Testing AI Leverage Automation Integration...\n'); try { // Import the simple automation service const SimpleAutomation = require('./lib/simple-automation.js').default; // Create automation instance const automation = new SimpleAutomation(); // Mock configuration automation.config = { symbol: 'SOLUSD', tradingAmount: 49, enableTrading: true }; // Mock analysis with realistic trade data const mockAnalysis = { recommendation: 'BUY', confidence: 75, entry: { price: 178 }, stopLoss: 165, takeProfit: 185, currentPrice: 178 }; console.log('๐Ÿ“Š Mock Analysis:', mockAnalysis); console.log(''); // Test the trade execution logic manually // This should trigger the AI leverage calculation console.log('๐ŸŽฏ Testing AI leverage calculation within automation...'); // Simulate the executeTrade method logic const side = 'BUY'; const stopLoss = 165; const takeProfit = 185; console.log(`๐ŸŽฏ Trade levels - SL: ${stopLoss}, TP: ${takeProfit}`); // Import and test AI Leverage Calculator const { AILeverageCalculator } = await import('./lib/ai-leverage-calculator.js'); if (AILeverageCalculator && stopLoss) { const currentPrice = mockAnalysis.entry?.price || mockAnalysis.currentPrice || 178; // Get real account data const baseUrl = 'http://localhost:9001'; const balanceResponse = await fetch(`${baseUrl}/api/drift/balance`); const balanceData = await balanceResponse.json(); let accountValue = 49; let availableBalance = 49; if (balanceData.success) { accountValue = balanceData.accountValue; availableBalance = balanceData.availableBalance; console.log(`๐Ÿ’ฐ Real account data: $${accountValue.toFixed(2)} total, $${availableBalance.toFixed(2)} available`); } console.log(`๐Ÿงฎ Calculating optimal leverage: Entry=$${currentPrice}, StopLoss=$${stopLoss}`); const leverageResult = AILeverageCalculator.calculateOptimalLeverage({ accountValue, availableBalance, entryPrice: currentPrice, stopLossPrice: stopLoss, side: side === 'BUY' ? 'long' : 'short', maxLeverageAllowed: 10, safetyBuffer: 0.10 }); const optimalLeverage = leverageResult.recommendedLeverage; console.log(`๐ŸŽฏ AI Calculated Leverage: ${optimalLeverage.toFixed(1)}x (Risk: ${leverageResult.riskAssessment})`); console.log(`๐Ÿ“Š Leverage Details: ${leverageResult.reasoning}`); // Create trade payload const tradePayload = { symbol: 'SOLUSD', side: side, amount: 49, leverage: optimalLeverage, stopLoss: stopLoss, takeProfit: takeProfit, useRealDEX: true, analysis: mockAnalysis }; console.log('\n๐Ÿ“Š TRADE PAYLOAD:', tradePayload); console.log('\nโœ… AI Leverage calculation working correctly!'); console.log(`๐Ÿ’ก Instead of 1x leverage, AI calculated ${optimalLeverage.toFixed(1)}x for optimal risk/reward`); } else { console.error('โŒ AI Leverage Calculator not available'); } } catch (error) { console.error('โŒ Test failed:', error); } } // Run the test testLeverageAutomation().catch(console.error);