Archiviazione dei dati e configurazione delle sorgenti dati

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

  1. Crea il database desiderato nel tuo motore SQL Server / MySQL / PostgreSQL.
  2. Aggiorna la stringa di connessione corrispondente nel file appsettings.json.
  3. Assicurati che le porte richieste siano aperte e accessibili.
  4. 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.

📎 Related Topics