Almacenamiento de datos y configuración de fuentes de datos

La Aplicación de Gestión de MagicTradeBot soporta múltiples bases de datos basadas en SQL para almacenar y gestionar datos esenciales relacionados con el trading. Esta flexibilidad permite a los usuarios operar en entornos que van desde bases de datos ligeras embebidas hasta bases de datos relacionales de producción a gran escala.

📌 Qué datos se almacenan

MagicTradeBot guarda los siguientes datos estructurados en la fuente de datos conectada:

  • Cuentas de intercambio: Credenciales, claves API y configuración por cada intercambio.
  • Símbolos de trading: Monedas/pares asociados con intercambios o cuentas específicas.
  • Plantillas de trading: Definiciones de plantillas personalizadas que incluyen estrategia, controles de riesgo y enlaces de símbolos.
  • Datos de operaciones: Registros y datos de ejecución de operaciones en tiempo real e históricos.
  • Datos de velas (Kline): Datos internos personalizados de velas, construidos y optimizados localmente sin dependencia de proveedores externos.
  • Otros: Registros, configuraciones del sistema, horarios y otros metadatos críticos en tiempo de ejecución.

💾 Opciones de fuentes de datos soportadas

Actualmente, MagicTradeBot soporta los siguientes motores de base de datos SQL:

  • SQLite – Ligero e integrado (opción predeterminada)
  • SQL Server – RDBMS empresarial con todas las funciones (Microsoft SQL)
  • MySQL – Popular RDBMS de código abierto
  • PostgreSQL – Avanzado sistema de base de datos objeto-relacional de código abierto

⚙️ Configuración

Todas las conexiones de base de datos se configuran en el archivo appsettings.json dentro de la aplicación de gestión:

{
  "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": {
    // ADVERTENCIA: ¡Nunca incluyas secretos reales en el control de versiones!
    "Database": {
      "Host": "",        // Variable de entorno: Secrets__Database__Host
      "Name": "",        // Variable de entorno: Secrets__Database__Name
      "User": "",        // Variable de entorno: Secrets__Database__User
      "Password": ""     // Variable de entorno: Secrets__Database__Password
    }
  }
}

🔐 Buenas prácticas de seguridad

  • Nunca codifiques directamente las credenciales en appsettings.json para producción.
  • Utiliza variables de entorno para inyectar secretos de forma segura. Por ejemplo:
    • Secrets__Database__User
    • Secrets__Database__Password
  • Usa un Gestor de secretos o secretos de Docker en entornos contenerizados.
  • Cifra la base de datos en reposo siempre que sea posible.

🧪 Uso predeterminado de SQLite (recomendado para desarrollo local)

MagicTradeBot viene con SQLite preintegrado y preconfigurado. No se requiere configuración manual para comenzar a probar localmente.

"SQLLight": "Data Source=Data/MTManagementDB.db"

La base de datos basada en archivo predeterminada se crea automáticamente en la carpeta /Data.

🔧 Cambio a bases de datos externas

  1. Crea la base de datos deseada en tu motor SQL Server / MySQL / PostgreSQL.
  2. Actualiza la cadena de conexión correspondiente en appsettings.json.
  3. Asegúrate de que los puertos necesarios estén abiertos y accesibles.
  4. Reinicia la aplicación de gestión.

🧩 Resumen

  • MagicTradeBot almacena todos los datos de trading, configuraciones y registros en una base de datos estructurada.
  • Soporta motores SQL desde ligeros hasta empresariales.
  • Fomenta despliegues seguros y escalables mediante secretos configurados en el entorno.
  • Fácil cambio entre bases de datos modificando sólo la configuración.

Para despliegues avanzados, también se soportan externamente la programación de respaldos y la replicación de base de datos, dependiendo del motor usado.

📎 Related Topics