# ?? TradingBot - Automated Crypto Trading Simulator Un'applicazione Blazor Server avanzata per simulare e testare strategie di trading automatizzato su criptovalute. ## ?? Caratteristiche Principali ### ?? Dashboard - **Panoramica Portfolio**: Visualizzazione completa del valore totale e performance - **Metriche Chiave**: Profitto totale, operazioni eseguite, asset attivi - **Asset Attivi**: Grid dei top 6 asset con performance in tempo reale - **Attivitā Recente**: Storico delle ultime 8 operazioni ### ?? Strategie - **Gestione Strategie**: Crea, modifica ed elimina strategie di trading - **Template Predefiniti**: - Scalping Veloce - Trend Following - Mean Reversion - Conservative - **Strategia Attiva**: RSI + MACD Cross (personalizzabile) - **Parametri Configurabili**: Stop Loss, Take Profit, condizioni BUY/SELL ### ?? Asset (NUOVO!) - **Vista Completa Asset**: Tutti i 15 asset disponibili - **Due Modalitā di Visualizzazione**: - **Grid View**: Card dettagliate con metriche - **List View**: Tabella compatta per overview rapido - **Assegnazione Strategie**: Dropdown per ogni asset - **Toggle On/Off**: Attiva/disattiva trading per asset - **Filtri**: Tutti / Solo Attivi / Solo Inattivi - **Metriche Real-time**: Prezzo, variazione 24h, holdings, profitto - **Azioni Rapide**: Configura e Visualizza Grafico ### ?? Trading - **15 Asset Simulati**: BTC, ETH, BNB, SOL, ADA, XRP, DOT, AVAX, MATIC, LINK, UNI, ATOM, LTC, ALGO, VET - **Gestione Asset**: Toggle on/off per ogni asset - **Monitoraggio Real-time**: Prezzi, holdings, profitti aggiornati ogni 3 secondi - **Tabella Operazioni**: Storico completo con filtri e ricerca ### ?? Analisi Mercato - **Grafici Interattivi**: Visualizzazione prezzi con SVG rendering - **Indicatori Tecnici**: - RSI (14) con stati Overbought/Oversold/Neutral - MACD con signal e histogram - EMA (12, 26) - **Selector Asset**: Cambia asset per analisi dettagliate ### ?? Statistiche - **Overview Portfolio**: Metriche aggregate di tutti gli asset - **Breakdown per Asset**: Tabella dettagliata con ROI, win rate, trades - **Best/Worst Performers**: Identificazione automatica - **Analisi Dettagliata**: Drilldown su singolo asset con: - Performance trading completa - Analisi profitti/perdite - Operazioni recenti ### ?? Impostazioni - **Persistenza Automatica**: Tutte le modifiche salvate su file - **Configurazioni**: - Modalitā simulazione - Notifiche desktop - Auto-start bot - Conferma operazioni manuali - Intervallo aggiornamento (2-10 secondi) - Log level - **Notifiche Visive**: Feedback immediato sui salvataggi ## ??? Architettura ### Frontend - **Blazor Server (.NET 10)**: Rendering server-side con SignalR - **Sidebar Collapsible**: Navigazione verticale espandibile/minimizzabile - **Responsive Design**: Ottimizzato per desktop, tablet e mobile - **Dark Theme**: Design moderno con palette Indigo/Purple ### Backend Services - **TradingBotService**: Core logic per trading automatizzato - **SimulatedMarketDataService**: Generazione dati di mercato realistici - **SettingsService**: Persistenza configurazioni su file JSON - **SimpleMovingAverageStrategy**: Strategia di trading con RSI e MACD ### Models - **AssetConfiguration**: Configurazione per singolo asset - **AssetStatistics**: Metriche e performance tracking - **MarketPrice**: Dati di mercato in tempo reale - **TechnicalIndicators**: RSI, MACD, EMA - **AppSettings**: Configurazioni globali applicazione ## ?? Quick Start ### Prerequisiti - .NET 10 SDK - Visual Studio 2022+ o VS Code ### Installazione Locale ```bash # Clone repository git clone https://192.168.30.23/Alby96/Encelado cd TradingBot # Restore packages dotnet restore # Run application dotnet run ``` ### ?? Deployment Docker #### Development ```sh # Build docker-compose build # Run docker-compose up -d # Access http://localhost:8080 ``` #### Production (Unraid) Vedi documentazione completa: - ?? [UNRAID_DEPLOYMENT.md](UNRAID_DEPLOYMENT.md) - Guida completa Unraid + Gitea - ?? [DOCKER_QUICKSTART.md](DOCKER_QUICKSTART.md) - Quick start rapido ### Uso 1. L'applicazione si avvia automaticamente in modalitā simulazione 2. Tutti i 15 asset sono attivi di default 3. Il bot inizia il trading automaticamente (configurabile in Impostazioni) 4. Usa la sidebar per navigare tra le sezioni ## ?? Struttura Progetto ``` TradingBot/ ??? Components/ ? ??? Layout/ ? ? ??? MainLayout.razor # Layout principale con sidebar ? ? ??? MainLayout.razor.css ? ??? Pages/ ? ? ??? Dashboard.razor # Homepage overview ? ? ??? Strategies.razor # Gestione strategie ? ? ??? Trading.razor # Trading view ? ? ??? Market.razor # Analisi mercato ? ? ??? Statistics.razor # Statistiche dettagliate ? ? ??? Settings.razor # Configurazioni ? ? ??? Assets.razor # Gestione asset (NUOVA PAGINA) ? ??? Shared/ ? ??? AdvancedChart.razor # Componente grafico SVG ? ??? AssetSettings.razor # Config singolo asset ??? Models/ ? ??? AssetConfiguration.cs ? ??? AssetStatistics.cs ? ??? AppSettings.cs ? ??? MarketPrice.cs ? ??? TechnicalIndicators.cs ? ??? ... ??? Services/ ? ??? TradingBotService.cs # Core trading logic ? ??? SimulatedMarketDataService.cs # Simulazione mercato ? ??? SettingsService.cs # Persistenza settings ? ??? ITradingStrategy.cs # Interface strategia ? ??? SimpleMovingAverageStrategy.cs ? ??? TechnicalAnalysis.cs # Calcolo indicatori ??? wwwroot/ ? ??? app.css # Stili globali ??? Program.cs # Entry point + DI ``` ## ?? **STRUTTURA FINALE APPLICAZIONE** ### **7 Sezioni Principali** 1. **?? Dashboard** (`/`) - Overview portfolio completo - 4 summary cards con metriche - Top 6 asset attivi - Ultimi 8 trades 2. **?? Strategie** (`/strategies`) - Gestione strategie di trading - Strategia attiva: RSI + MACD Cross - Template predefiniti - Performance tracking 3. **?? Asset** (`/assets`) **? NUOVA PAGINA!** - Vista completa tutti i 15 asset - Grid view / List view - Assegnazione strategia per asset - Toggle attivazione - Filtri e ricerca - Metriche real-time 4. **?? Trading** (`/trading` - Tutti 15 asset in grid - Toggle on/off per ogni asset - Metriche real-time - Tabella operazioni complete 5. **?? Analisi Mercato** (`/market`) - Grafici interattivi SVG - Indicatori tecnici (RSI, MACD, EMA) - Selector asset - Dati aggiornati ogni 3 secondi 6. **?? Statistiche** (`/statistics`) - Overview portfolio dettagliato - Breakdown per asset - Best/Worst performers - Analisi P&L completa - Drilldown su singolo asset 7. **?? Impostazioni** (`/settings`) - Tutte le configurazioni globali - Salvataggio automatico - Notifiche di conferma - Reset a defaults ## ?? Design System ### Colori - **Primary**: `#6366f1` (Indigo) - **Secondary**: `#8b5cf6` (Purple) - **Success**: `#10b981` (Green) - **Danger**: `#ef4444` (Red) - **Warning**: `#f59e0b` (Amber) - **Background**: `#0a0e27` (Dark Blue) ### Typography - **Headers**: System Font Stack - **Monospace**: Courier New (per valori numerici) ## ?? Configurazione Le impostazioni vengono salvate automaticamente in: ``` %LocalAppData%/TradingBot/appsettings.json ``` ### Esempio appsettings.json ```json { "SimulationMode": true, "DesktopNotifications": false, "AutoStartBot": true, "ConfirmManualTrades": false, "UpdateIntervalSeconds": 3, "LogLevel": "Info", "SidebarCollapsed": false } ``` ## ?? Indicatori Tecnici Implementati ### RSI (Relative Strength Index) - **Periodo**: 14 - **Overbought**: > 70 - **Oversold**: < 30 - **Neutro**: 30-70 ### MACD (Moving Average Convergence Divergence) - **Fast EMA**: 12 periodi - **Slow EMA**: 26 periodi - **Signal**: 9 periodi - **Histogram**: MACD - Signal ### EMA (Exponential Moving Average) - **EMA 12**: Media breve termine - **EMA 26**: Media lungo termine ## ?? Strategia di Trading ### Condizioni BUY - RSI < 40 (asset ipervenduto) - MACD Histogram > 0 (momentum positivo) - Budget disponibile >= MinTradeAmount ### Condizioni SELL - RSI > 60 (asset ipercomprato) - MACD Histogram < 0 (momentum negativo) - Holdings > 0 - **Oppure**: - Profitto >= Take Profit (10%) - Perdita >= Stop Loss (5%) ### Risk Management - **Max Daily Trades**: 50 per asset - **Max Position Size**: $5000 per asset - **Min Trade Amount**: $10 - **Trade Size**: 30% del balance disponibile (max) - **Min Interval**: 10 secondi tra trades ## ?? Aggiornamenti Real-time - **Prezzi**: Ogni 3 secondi (configurabile) - **Indicatori**: Calcolati ad ogni aggiornamento prezzo - **Stats Portfolio**: Aggiornate ad ogni trade - **UI**: SignalR per aggiornamenti istantanei ## ?? Responsive Breakpoints - **Desktop**: > 1024px (full features) - **Tablet**: 768px - 1024px (layout adattato) - **Mobile**: < 768px (sidebar collapsible automatico) ## ?? Debug & Logging I log vengono stampati nella console del browser e nel terminal di Visual Studio. Livelli disponibili: - **Error**: Solo errori critici - **Warning**: Warning e errori - **Info**: Informazioni generali (default) - **Debug**: Dettagli completi per debugging ## ?? Note Importanti 1. **Modalitā Simulazione**: Sempre attiva, dati non reali 2. **Dati Persistenti**: Solo impostazioni, non trades storici 3. **Reset Dati**: Riavvio applicazione = reset portfolio 4. **Performance**: Ottimizzata per 15 asset simultanei ## ?? Future Enhancements - [ ] Backtesting su dati storici - [ ] Multi-strategy support - [ ] Export/import configurazioni - [ ] Alert system con notifiche - [ ] Paper trading con dati reali - [ ] Machine learning per ottimizzazione strategie ## ????? Sviluppatore **Alberto** - Encelado Project ## ?? Licenza Progetto privato - Tutti i diritti riservati --- **Note**: Questa č un'applicazione di simulazione a scopo educativo. Non utilizzare con denaro reale senza test approfonditi e comprensione completa dei rischi del trading.