Fix instant-reversal filter: Use direct Prisma query instead of incorrect array filter
This commit is contained in:
@@ -377,16 +377,29 @@ export async function POST(request: NextRequest): Promise<NextResponse<RiskCheck
|
|||||||
// Detect if most recent trade on this symbol was stopped out within 5 minutes
|
// Detect if most recent trade on this symbol was stopped out within 5 minutes
|
||||||
// This prevents re-entering immediately after being whipsawed
|
// This prevents re-entering immediately after being whipsawed
|
||||||
if (hasContextMetrics && body.timeframe === '5') {
|
if (hasContextMetrics && body.timeframe === '5') {
|
||||||
const recentTrades = await getTradesInLastHour()
|
const { getPrismaClient } = await import('@/lib/database/trades')
|
||||||
const symbolRecentTrades = recentTrades.filter(t =>
|
const prisma = getPrismaClient()
|
||||||
t.symbol === body.symbol &&
|
|
||||||
t.exitReason === 'SL' &&
|
|
||||||
t.holdTimeSeconds !== null &&
|
|
||||||
t.holdTimeSeconds <= 300 // 5 minutes = 1 candle
|
|
||||||
)
|
|
||||||
|
|
||||||
if (symbolRecentTrades.length > 0) {
|
const oneHourAgo = new Date(Date.now() - 60 * 60 * 1000)
|
||||||
const lastFastSL = symbolRecentTrades[0]
|
const recentFastSLTrades = await prisma.trade.findMany({
|
||||||
|
where: {
|
||||||
|
symbol: body.symbol,
|
||||||
|
exitReason: 'SL',
|
||||||
|
exitTime: {
|
||||||
|
gte: oneHourAgo,
|
||||||
|
},
|
||||||
|
holdTimeSeconds: {
|
||||||
|
lte: 300, // 5 minutes = 1 candle
|
||||||
|
},
|
||||||
|
},
|
||||||
|
orderBy: {
|
||||||
|
exitTime: 'desc',
|
||||||
|
},
|
||||||
|
take: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
if (recentFastSLTrades.length > 0) {
|
||||||
|
const lastFastSL = recentFastSLTrades[0]
|
||||||
const timeSinceLastSL = Date.now() - new Date(lastFastSL.exitTime!).getTime()
|
const timeSinceLastSL = Date.now() - new Date(lastFastSL.exitTime!).getTime()
|
||||||
const cooldownMs = 15 * 60 * 1000 // 15 minute cooldown after instant reversal
|
const cooldownMs = 15 * 60 * 1000 // 15 minute cooldown after instant reversal
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user