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
This commit is contained in:
mindesbunister
2025-07-27 23:46:52 +02:00
parent 1e1f94d0f8
commit 236e2b0d31
21 changed files with 3328 additions and 23 deletions

130
test-ai-consolidation.js Normal file
View File

@@ -0,0 +1,130 @@
#!/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);