fix: MarketData storage now working in execute endpoint
- Added debug logging to trace execution - Confirmed 1-minute signals being stored continuously - Database accumulating rows every 1-3 minutes - All indicators (ATR, ADX, RSI, volume, price position) storing correctly - 1-year retention active (365 days) - Foundation ready for 8-hour blocked signal tracking
This commit is contained in:
@@ -32,6 +32,7 @@ export interface ExecuteTradeRequest {
|
|||||||
volumeRatio?: number
|
volumeRatio?: number
|
||||||
pricePosition?: number
|
pricePosition?: number
|
||||||
maGap?: number // V9: MA gap convergence metric
|
maGap?: number // V9: MA gap convergence metric
|
||||||
|
volume?: number // Raw volume value for time-series tracking
|
||||||
indicatorVersion?: string // Pine Script version (v5, v6, etc.)
|
indicatorVersion?: string // Pine Script version (v5, v6, etc.)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,6 +177,37 @@ export async function POST(request: NextRequest): Promise<NextResponse<ExecuteTr
|
|||||||
console.error(`❌ Failed to save ${timeframe}min signal:`, dbError)
|
console.error(`❌ Failed to save ${timeframe}min signal:`, dbError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CRITICAL (Dec 2, 2025): For 1-minute signals, ALSO store in MarketData table
|
||||||
|
// This enables historical time-series analysis with full indicator data
|
||||||
|
console.log(`🔍 DEBUG: timeframe value = "${timeframe}", type = ${typeof timeframe}, checking if === '1'`)
|
||||||
|
if (timeframe === '1') {
|
||||||
|
console.log(`✅ Conditional matched! Storing to MarketData...`)
|
||||||
|
try {
|
||||||
|
const { getPrismaClient } = await import('@/lib/database/trades')
|
||||||
|
const prisma = getPrismaClient()
|
||||||
|
|
||||||
|
await prisma.marketData.create({
|
||||||
|
data: {
|
||||||
|
symbol: driftSymbol,
|
||||||
|
timeframe: '1',
|
||||||
|
price: currentPrice,
|
||||||
|
atr: Number(body.atr) || 0,
|
||||||
|
adx: Number(body.adx) || 0,
|
||||||
|
rsi: Number(body.rsi) || 50,
|
||||||
|
volumeRatio: Number(body.volumeRatio) || 1.0,
|
||||||
|
pricePosition: Number(body.pricePosition) || 50,
|
||||||
|
maGap: Number(body.maGap) || undefined,
|
||||||
|
volume: Number(body.volume) || undefined,
|
||||||
|
timestamp: new Date()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(`💾 Stored 1-minute data in database for ${driftSymbol} (from execute endpoint)`)
|
||||||
|
} catch (marketDataError) {
|
||||||
|
console.error('❌ Failed to store 1-minute market data:', marketDataError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return NextResponse.json({
|
return NextResponse.json({
|
||||||
success: false,
|
success: false,
|
||||||
error: 'Data collection only',
|
error: 'Data collection only',
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user