L'applicazione di gestione di MagicTradeBot supporta diversi database basati su SQL per archiviare e gestire i dati essenziali relativi al trading. Questa flessibilità consente agli utenti di operare in ambienti che vanno da database embedded leggeri a sistemi relazionali completi per ambienti di produzione.
📌 Quali dati vengono archiviati
MagicTradeBot memorizza i seguenti dati strutturati nella sorgente dati collegata:
- Account Exchange: Credenziali di accesso agli exchange, chiavi API e configurazioni per ogni exchange.
- Simboli di Trading: Coppie di criptovalute associate a specifici exchange o account.
- Template di Trading: Definizioni personalizzate contenenti strategie, controlli di rischio e associazioni ai simboli.
- Dati di Trading: Log di esecuzione e cronologia delle operazioni in tempo reale e storiche.
- Dati Kline: Dati locali personalizzati dei grafici a candele, generati e ottimizzati internamente senza affidarsi a provider esterni.
- Altro: Log di sistema, impostazioni, pianificazioni e altri metadati essenziali per il runtime.
💾 Opzioni di sorgente dati supportate
MagicTradeBot supporta attualmente i seguenti motori di database SQL:
- SQLite – Leggero e integrato (opzione predefinita)
- SQL Server – Sistema RDBMS aziendale completo (Microsoft SQL)
- MySQL – Popolare RDBMS open-source
- PostgreSQL – Avanzato sistema di database relazionali open-source a oggetti
⚙️ Configurazione
Tutte le connessioni al database vengono configurate nel file appsettings.json
dell’app di gestione:
{
"ConnectionStrings": {
"SQLLight": "Data Source=Data/MTManagementDB.db",
"SQLSERVER": "Server=localhost;Database=MagicTrade;User Id=sa;Password=yourpass;",
"Postge": "Server=localhost;Database=MagicTrade;User Id=pguser;Password=yourpass;",
"MySQL": "Server=localhost;Database=MagicTrade;User=mtuser;Password=yourpass;"
},
"Secrets": {
// ATTENZIONE: Non salvare mai credenziali reali nel controllo versione!
"Database": {
"Host": "", // Variabile ambiente: Secrets__Database__Host
"Name": "", // Variabile ambiente: Secrets__Database__Name
"User": "", // Variabile ambiente: Secrets__Database__User
"Password": "" // Variabile ambiente: Secrets__Database__Password
}
}
}
🔐 Best practices per la sicurezza
- Non inserire mai credenziali reali nel file
appsettings.json
in ambienti di produzione. - Utilizzare variabili di ambiente per passare le credenziali in modo sicuro, ad esempio:
Secrets__Database__User
Secrets__Database__Password
- Utilizza un gestore di segreti o Docker Secrets in ambienti containerizzati.
- Cripta il database a riposo quando possibile.
🧪 Uso predefinito di SQLite (consigliato per sviluppo locale)
MagicTradeBot include SQLite già integrato e configurato. Non è necessaria alcuna configurazione manuale per iniziare i test in locale.
"SQLLight": "Data Source=Data/MTManagementDB.db"
Il database basato su file viene creato automaticamente nella cartella /Data
.
🔧 Passaggio a database esterni
- Crea il database desiderato nel tuo motore SQL Server / MySQL / PostgreSQL.
- Aggiorna la stringa di connessione corrispondente nel file
appsettings.json
. - Assicurati che le porte richieste siano aperte e accessibili.
- Riavvia l'applicazione di gestione.
🧩 Riepilogo
- MagicTradeBot salva tutti i dati di trading, configurazioni e log in un database strutturato.
- Supporta database da leggeri a livello enterprise.
- Favorisce deployment sicuri e scalabili tramite variabili ambiente.
- Il passaggio tra database richiede solo la modifica della configurazione.
Per ambienti avanzati, sono supportate esternamente la pianificazione dei backup e la replica del database, in base al motore utilizzato.