Files
trading_bot_v3/create-demo-trades.js
mindesbunister aae715dd07 fix: resolve price monitoring display issues - show active trades and current prices
-  No active trades displayed → Now shows demo trades with real-time data
-  No current prices shown → Always fetches base symbols (SOL, BTC, ETH)
-  Monitoring status incorrect → Added isMonitoring() method

- Always fetch prices for SOLUSD, BTCUSD, ETHUSD even without active trades
- Force price updates in API when cache is empty
- Added isMonitoring() method for accurate status reporting
- Enhanced API to handle base symbols + trade symbols

- Created demo trades script for testing price monitoring
- SOLUSD BUY position: Entry 90.82, SL 87.00, TP 02.27
- BTCUSD SELL position: Entry 19,050, SL 21,431, TP 11,907
- Real-time P&L calculations and distance to TP/SL levels

- GET /api/price-monitor now always returns current prices
- Proper monitoring status detection
- Enhanced error handling for price fetching

The Real-Time Price Monitor now shows:
- 💰 Live prices: SOL 90.82, BTC 19,050, ETH ,791
- 📊 Active trades with real-time P&L and position status
- 🎯 Distance calculations to take profit and stop loss levels
- 🟢 Accurate monitoring service status
2025-07-21 10:47:21 +02:00

100 lines
3.0 KiB
JavaScript

const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
async function createDemoTrade() {
try {
console.log('🎯 Creating demo trade for price monitoring...')
// Create a demo user if doesn't exist
const user = await prisma.user.upsert({
where: { id: 'demo-user' },
update: {},
create: {
id: 'demo-user',
email: 'demo@trading-bot.com',
name: 'Demo User'
}
})
// Create a demo trade - SOLUSD Buy position
const currentSolPrice = 190.82 // Current SOL price
const trade = await prisma.trade.create({
data: {
userId: user.id,
symbol: 'SOLUSD',
side: 'BUY',
amount: 100, // $100 investment
price: currentSolPrice,
entryPrice: currentSolPrice,
status: 'OPEN',
stopLoss: currentSolPrice * 0.98, // 2% stop loss
takeProfit: currentSolPrice * 1.06, // 6% take profit
leverage: 1,
timeframe: '1h',
tradingMode: 'SIMULATION',
confidence: 85,
isAutomated: true,
createdAt: new Date(),
updatedAt: new Date()
}
})
console.log('✅ Demo trade created:')
console.log(` ID: ${trade.id}`)
console.log(` Symbol: ${trade.symbol}`)
console.log(` Side: ${trade.side}`)
console.log(` Entry Price: $${trade.entryPrice}`)
console.log(` Stop Loss: $${trade.stopLoss?.toFixed(2)}`)
console.log(` Take Profit: $${trade.takeProfit?.toFixed(2)}`)
console.log(` Amount: $${trade.amount}`)
console.log()
// Also create one for BTC
const currentBtcPrice = 119050
const btcTrade = await prisma.trade.create({
data: {
userId: user.id,
symbol: 'BTCUSD',
side: 'SELL',
amount: 200,
price: currentBtcPrice,
entryPrice: currentBtcPrice,
status: 'OPEN',
stopLoss: currentBtcPrice * 1.02, // 2% stop loss (higher for short)
takeProfit: currentBtcPrice * 0.94, // 6% take profit (lower for short)
leverage: 2,
timeframe: '4h',
tradingMode: 'SIMULATION',
confidence: 78,
isAutomated: true,
createdAt: new Date(),
updatedAt: new Date()
}
})
console.log('✅ Second demo trade created:')
console.log(` ID: ${btcTrade.id}`)
console.log(` Symbol: ${btcTrade.symbol}`)
console.log(` Side: ${btcTrade.side}`)
console.log(` Entry Price: $${btcTrade.entryPrice}`)
console.log(` Stop Loss: $${btcTrade.stopLoss?.toFixed(2)}`)
console.log(` Take Profit: $${btcTrade.takeProfit?.toFixed(2)}`)
console.log(` Amount: $${btcTrade.amount}`)
console.log('\n🎉 Demo trades ready! Now you can test the price monitoring system.')
console.log('💡 Visit http://localhost:9001/automation to see them in action!')
} catch (error) {
console.error('❌ Error creating demo trade:', error)
} finally {
await prisma.$disconnect()
}
}
if (require.main === module) {
createDemoTrade()
}
module.exports = { createDemoTrade }