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
- Crea la base de datos deseada en tu motor SQL Server / MySQL / PostgreSQL.
- Actualiza la cadena de conexión correspondiente en
appsettings.json
. - Asegúrate de que los puertos necesarios estén abiertos y accesibles.
- 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.