Files
trading_bot_v3/test-ai-consolidation.js
mindesbunister 236e2b0d31 feat: Complete AI Learning Integration & Position Scaling DCA System
- Integrated SimplifiedStopLossLearner into automation
- Every AI decision now recorded for learning (stop loss, take profit, confidence)
- Trade outcomes tracked and compared to AI predictions
- Learning patterns improve future AI decisions
- Enhanced status dashboard with learning insights

- Proper DCA: increase position size + adjust existing SL/TP (not create new)
- AI-calculated optimal levels for scaled positions
- Prevents order fragmentation (fixes 24+ order problem)
- Unified risk management for entire scaled position

 TIMEFRAME-AWARE INTERVALS:
- Scalping (5m/15m): 5-15 minute analysis intervals
- Day Trading (1h/4h): 10-30 minute intervals
- Swing Trading (4h/1d): 23-68 minute intervals
- Perfect for 5-minute scalping with DCA protection

- 2-hour DCA cooldown prevents order spam
- Position existence checks before new trades
- Direction matching validation
- Learning-based decision improvements

- AI calculates ALL levels (entry, SL, TP, leverage, scaling)
- Every calculation recorded and learned from
- Position scaling uses AI intelligence
- Timeframe-appropriate analysis frequency
- Professional order management
- Continuous learning and improvement

 ADDRESSES ALL USER CONCERNS:
- 5-minute scalping compatibility 
- Position scaling DCA (adjust existing SL/TP) 
- AI calculations being learned from 
- No order fragmentation 
- Intelligent automation with learning 

Files: automation, consolidation APIs, learning integration, tests, documentation
2025-07-27 23:46:52 +02:00

131 lines
5.5 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env node
/**
* AI-Enhanced Position Consolidation Test
* Shows difference between AI-calculated vs adaptive levels
*/
async function testAIConsolidation() {
console.log('🧹 TESTING AI-ENHANCED POSITION CONSOLIDATION');
console.log('='.repeat(60));
try {
// 1. Get current position
console.log('1⃣ Fetching current position...');
const positionResponse = await fetch('http://localhost:9001/api/drift/positions');
const positionData = await positionResponse.json();
if (!positionData.success || !positionData.positions.length) {
console.log('❌ No active positions found');
return;
}
const position = positionData.positions[0];
console.log(` 📊 Position: ${position.side.toUpperCase()} ${position.size} ${position.symbol}`);
console.log(` 💰 Entry: $${position.entryPrice.toFixed(4)}`);
console.log(` 📈 Current: $${(position.markPrice || position.entryPrice).toFixed(4)}`);
console.log(` 💸 P&L: $${position.unrealizedPnl.toFixed(2)}`);
// 2. Get current orders count
console.log('\n2⃣ Checking current orders...');
const ordersResponse = await fetch('http://localhost:9001/api/drift/orders');
const ordersData = await ordersResponse.json();
const activeOrders = ordersData.orders.filter(o => o.status === 'OPEN');
console.log(` 📋 Active orders: ${activeOrders.length}`);
// 3. Test ADAPTIVE LEVELS (no AI analysis)
console.log('\n3⃣ ADAPTIVE LEVELS (No AI Analysis):');
console.log('-'.repeat(40));
const adaptiveResult = await fetch('http://localhost:9001/api/drift/consolidate-position', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
dryRun: true,
analysis: null
})
});
const adaptiveData = await adaptiveResult.json();
if (adaptiveData.success) {
const plan = adaptiveData.plan;
console.log(` 🛑 Stop Loss: $${plan.stopLoss.toFixed(4)} (${plan.stopLossPercent.toFixed(1)}% risk)`);
console.log(` 🎯 Take Profit 1: $${plan.takeProfit1.toFixed(4)} (${plan.tp1Percent.toFixed(1)}% gain) - ${plan.tp1Size} SOL`);
console.log(` 🚀 Take Profit 2: $${plan.takeProfit2.toFixed(4)} (${plan.tp2Percent.toFixed(1)}% gain) - ${plan.tp2Size} SOL`);
console.log(` ⚖️ Risk/Reward: ${plan.riskReward.toFixed(1)}:1`);
}
// 4. Test AI-CALCULATED LEVELS
console.log('\n4⃣ AI-CALCULATED LEVELS (Mock AI Analysis):');
console.log('-'.repeat(40));
// Mock AI analysis with tighter, more optimal levels
const mockAIAnalysis = {
stopLoss: { price: 185.50 }, // AI suggests tighter 1% stop loss
takeProfits: {
tp1: { price: 191.25 }, // AI suggests 2.1% first TP
tp2: { price: 194.80 } // AI suggests 3.9% second TP
},
confidence: 85,
marketConditions: { volatility: 'LOW' }
};
const aiResult = await fetch('http://localhost:9001/api/drift/consolidate-position', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
dryRun: true,
analysis: mockAIAnalysis
})
});
const aiData = await aiResult.json();
if (aiData.success) {
const plan = aiData.plan;
console.log(` 🛑 Stop Loss: $${plan.stopLoss.toFixed(4)} (${plan.stopLossPercent.toFixed(1)}% risk)`);
console.log(` 🎯 Take Profit 1: $${plan.takeProfit1.toFixed(4)} (${plan.tp1Percent.toFixed(1)}% gain) - ${plan.tp1Size} SOL`);
console.log(` 🚀 Take Profit 2: $${plan.takeProfit2.toFixed(4)} (${plan.tp2Percent.toFixed(1)}% gain) - ${plan.tp2Size} SOL`);
console.log(` ⚖️ Risk/Reward: ${plan.riskReward.toFixed(1)}:1`);
}
// 5. Comparison and benefits
console.log('\n5⃣ CONSOLIDATION BENEFITS:');
console.log(' 📉 BEFORE: 24+ fragmented orders');
console.log(' 📈 AFTER: 3 clean orders (adaptive OR AI-optimized)');
console.log(' ✅ Benefits:');
console.log(' • AI calculates optimal entry/exit levels');
console.log(' • Falls back to adaptive levels when AI unavailable');
console.log(' • Clear risk management structure');
console.log(' • Lower transaction costs');
console.log(' • Better profit optimization');
console.log(' • Easier monitoring');
console.log('\n💡 EXECUTION OPTIONS:');
console.log('🧠 WITH AI: Send analysis data for optimal levels');
console.log('📊 WITHOUT AI: Uses adaptive levels based on position size');
console.log('🚀 LIVE EXECUTION: Set dryRun: false to execute');
return {
success: true,
currentOrders: activeOrders.length,
consolidatedOrders: 3,
aiLevelsAvailable: aiData.success,
adaptiveLevelsAvailable: adaptiveData.success
};
} catch (error) {
console.error('❌ AI consolidation test failed:', error.message);
return { success: false, error: error.message };
}
}
// Run the test
testAIConsolidation().then(result => {
if (result.success) {
console.log('\n✅ AI-ENHANCED CONSOLIDATION ANALYSIS COMPLETE');
console.log(`📊 Reduction: ${result.currentOrders}${result.consolidatedOrders} orders`);
console.log(`🧠 AI Levels: ${result.aiLevelsAvailable ? 'Available' : 'Not available'}`);
console.log(`📊 Adaptive Levels: ${result.adaptiveLevelsAvailable ? 'Available' : 'Not available'}`);
}
}).catch(console.error);