Files
trading_bot_v3/app/api/automation/start/route.js
mindesbunister d7de856ce0 fix: Enable virtual trading & AI learning - UI improvements and setup guide
- Add comprehensive setup guide (VIRTUAL_TRADING_SETUP_GUIDE.md)
- Improve UI to clearly show required steps for AI learning
- Make auto-execute toggle always visible with clear instructions
- Add blue info panel explaining the learning setup process
- User can now easily enable: Continuous Learning + Auto-Execute
- Virtual trades will execute automatically and AI will learn from outcomes

Resolves issue: AI analyzing without learning due to missing virtual trade execution
2025-08-05 10:23:12 +02:00

70 lines
2.6 KiB
JavaScript

import { NextResponse } from 'next/server'
import { automationService } from '@/lib/automation-service-simple'
export async function POST(request) {
try {
const config = await request.json()
console.log('🚀 Starting automation with config:', config)
// Check for open positions before starting automation
try {
// Temporarily set config for position check
const tempConfig = {
userId: 'default-user',
symbol: config.asset || config.symbol || 'SOLUSD'
};
// Set temporary config for position check
automationService.setTempConfig(tempConfig);
const hasPositions = await automationService.hasOpenPositions();
automationService.clearTempConfig();
if (hasPositions) {
console.log('⏸️ Cannot start automation - open positions detected');
return NextResponse.json({
success: false,
error: 'Cannot start automation while positions are open',
message: 'Please close existing positions before starting new automation'
}, { status: 400 });
}
} catch (error) {
console.error('Error checking positions before automation start:', error);
// Continue if position check fails (fail-safe)
}
// Add a default userId for now (in production, get from auth)
const automationConfig = {
userId: 'default-user',
...config,
// Map asset to symbol if asset is provided
symbol: config.asset || config.symbol,
// Map simulation to mode
mode: config.simulation ? 'SIMULATION' : (config.mode || 'SIMULATION'),
// stopLossPercent and takeProfitPercent removed - AI calculates these automatically
// Map tradeSize to tradingAmount
tradingAmount: config.tradeSize || config.tradingAmount,
// Set defaults for missing fields
maxDailyTrades: config.maxDailyTrades || 5,
dexProvider: config.dexProvider || 'DRIFT',
selectedTimeframes: config.selectedTimeframes || [config.timeframe || '1h']
}
const success = await automationService.startAutomation(automationConfig)
if (success) {
return NextResponse.json({ success: true, message: 'Automation started successfully' })
} else {
return NextResponse.json({ success: false, error: 'Failed to start automation' }, { status: 500 })
}
} catch (error) {
console.error('Start automation error:', error)
return NextResponse.json({
success: false,
error: 'Internal server error',
message: error.message,
stack: error.stack
}, { status: 500 })
}
}