Aggiunti Dockerfile multi-stage, .dockerignore e docker-compose.yml per deployment containerizzato (con healthcheck, volumi persistenti, limiti risorse). Script di build per Linux/Mac e Windows. In Program.cs aggiunto endpoint /health e health checks per orchestrazione. Documentazione estesa: guide Unraid, quickstart Docker, workflow Git/DevOps, best practices su sicurezza, backup, monitoring. Progetto ora pronto per deploy e gestione professionale in ambienti Docker/Unraid.
346 lines
9.9 KiB
Markdown
346 lines
9.9 KiB
Markdown
# ?? 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.
|