โฌข TRADING JOURNAL v4 - KI-POWERED ANALYSIS

Setup-Verfolgung + KI-Analyse + Psychology Tracking

๐Ÿ“Š Performance Overview

Total Trades
0
Win Rate
0%
Avg Setup Score
0
Net P&L
โ‚ฌ0

โšก Quick Trade Entry

๐Ÿ“ˆ Your Trades

Noch keine Trades. Fรผge einen hinzu! ๐Ÿ‘†

`; downloadFile(html, 'trading-journal.html', 'text/html'); showToast('โœ… HTML Export erfolgreich!', 'success'); } // ===== PDF EXPORT ===== function exportToPDF() { alert('๐Ÿ“„ PDF Export wird vorbereitet... (รถffne DevTools fรผr Details)'); // Fรผr echte PDF brauchen wir eine Library wie jsPDF // Hier: Fallback zu Print-Dialog const timestamp = new Date().toLocaleString('de-DE'); const stats = { total: trades.length, wins: trades.filter(t => t.pnl > 0).length, losses: trades.filter(t => t.pnl < 0).length, winRate: trades.length > 0 ? ((trades.filter(t => t.pnl > 0).length / trades.length) * 100).toFixed(2) : 0, totalPnL: trades.reduce((sum, t) => sum + (t.pnl || 0), 0).toFixed(2) }; let printContent = ` Trading Journal PDF

๐Ÿ“Š Trading Journal Report

Exportiert: ${timestamp}

Total Trades
${stats.total}
Win Rate
${stats.winRate}%
Wins/Losses
${stats.wins}/${stats.losses}
Total P&L
โ‚ฌ${stats.totalPnL}
${trades.map(t => { const duration = new Date(t.exitTime) - new Date(t.entryTime); const durationHours = (duration / (1000 * 60 * 60)).toFixed(1); const pnlClass = (t.pnl || 0) >= 0 ? 'positive' : 'negative'; return ``; }).join('')}
SymbolSetupEntryExitQty P&L%ConfEmotionDuration
${t.symbol} ${t.setupType || 'N/A'} โ‚ฌ${t.entryPrice} โ‚ฌ${t.exitPrice} ${t.quantity} โ‚ฌ${(t.pnl || 0).toFixed(2)} ${(t.pnlPercent || 0).toFixed(2)}% ${t.confidenceLevel}/10 ${t.emotionalState || 'N/A'} ${durationHours}h
`; const printWindow = window.open('', '', 'width=1200,height=800'); printWindow.document.write(printContent); printWindow.document.close(); printWindow.print(); showToast('๐Ÿ“„ PDF Print-Dialog geรถffnet!', 'success'); } // ===== HELPER: Download File ===== function downloadFile(content, filename, type) { const blob = new Blob([content], { type }); const url = URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; link.download = filename; document.body.appendChild(link); link.click(); document.body.removeChild(link); URL.revokeObjectURL(url); } // Initial render renderTrades(); updateStats();