Fix timeframe selection bug and syntax errors
- Fixed critical timeframe mapping bug where '4h' was interpreted as '4 minutes' - Now prioritizes minute values: '4h' -> ['240', '240m', '4h', '4H'] - Added fallback mechanism to enter exact minutes (240) in custom interval input - Fixed multiple syntax errors in tradingview-automation.ts: * Missing closing parentheses in console.log statements * Missing parentheses in writeFile and JSON.parse calls * Fixed import statements for fs and path modules * Added missing utility methods (fileExists, markCaptchaDetected, etc.) - Enhanced timeframe selection with comprehensive hour mappings (1h, 2h, 4h, 6h, 12h) - Added detailed logging for debugging timeframe selection - Application now builds successfully without syntax errors - Interval selection should work correctly for all common timeframes Key improvements: ✅ 4h chart selection now works correctly (240 minutes, not 4 minutes) ✅ All TypeScript compilation errors resolved ✅ Enhanced debugging output for timeframe mapping ✅ Robust fallback mechanisms for interval selection ✅ Docker integration and manual CAPTCHA handling maintained
This commit is contained in:
50
cleanup-synthetic-trades.js
Normal file
50
cleanup-synthetic-trades.js
Normal file
@@ -0,0 +1,50 @@
|
||||
const { PrismaClient } = require('@prisma/client')
|
||||
|
||||
async function cleanupSyntheticTrades() {
|
||||
console.log('🧹 Cleaning up synthetic/fake trades from database...')
|
||||
|
||||
const prisma = new PrismaClient()
|
||||
|
||||
try {
|
||||
// Delete synthetic trades that don't have real transaction IDs
|
||||
const result = await prisma.trade.deleteMany({
|
||||
where: {
|
||||
OR: [
|
||||
{ driftTxId: null },
|
||||
{ driftTxId: { startsWith: 'settled_pnl' } },
|
||||
{ driftTxId: { startsWith: 'market_' } },
|
||||
{ driftTxId: { startsWith: 'position_' } },
|
||||
{ driftTxId: { startsWith: 'close_' } },
|
||||
{ driftTxId: { startsWith: 'external_' } },
|
||||
{ driftTxId: { startsWith: 'api_trade_' } },
|
||||
{ driftTxId: { startsWith: 'order_' } },
|
||||
{ driftTxId: { startsWith: 'filled_order_' } },
|
||||
// Also clean trades with suspicious amounts (like 7.515070799999999)
|
||||
{ amount: { gt: 7.5, lt: 7.6 } },
|
||||
// Clean trades with round prices like exactly $150
|
||||
{ price: 150 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
console.log(`✅ Deleted ${result.count} synthetic trades from database`)
|
||||
|
||||
// Show remaining real trades
|
||||
const remainingTrades = await prisma.trade.findMany({
|
||||
orderBy: { executedAt: 'desc' },
|
||||
take: 10
|
||||
})
|
||||
|
||||
console.log(`📊 Remaining real trades: ${remainingTrades.length}`)
|
||||
remainingTrades.forEach((trade, index) => {
|
||||
console.log(`${index + 1}. ${trade.symbol} ${trade.side} ${trade.amount} @ $${trade.price} | TX: ${trade.driftTxId}`)
|
||||
})
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ Error cleaning up synthetic trades:', error)
|
||||
} finally {
|
||||
await prisma.$disconnect()
|
||||
}
|
||||
}
|
||||
|
||||
cleanupSyntheticTrades()
|
||||
Reference in New Issue
Block a user