Blog › Mantenimiento de NinjaTrader
NinjaTrader 8 · Rendimiento y riesgo

NinjaTrader 8 lento o con las velas congeladas: por qué pasa, qué te cuesta y cómo solucionarlo

Por Trading Strategy Designer · Lectura 8 min · Investigación técnica con fuentes citadas

Si tu NinjaTrader 8 se ha vuelto lento, las velas dejan de actualizarse en pleno mercado o la plataforma se cierra sola, lo más probable es que el problema no esté en tu conexión ni en tu ordenador: está en la base de datos interna de NinjaTrader. Y no es una molestia técnica — es un riesgo financiero medible.

En esta guía te explicamos, con documentación oficial y estudios revisados por pares, por qué ocurre, qué te cuesta de verdad, qué puedes hacer tú mismo y cómo evitar que vuelva a pasar.

Qué es la base de datos de NinjaTrader y por qué se degrada

NinjaTrader 8 guarda tus órdenes, ejecuciones, posiciones e histórico de precios en una base de datos SQLite local (carpeta Documentos\NinjaTrader 8\db). SQLite es fiable en miles de millones de despliegues, pero su propia documentación enumera las condiciones exactas que la corrompen[1] — y varias son habituales en un entorno de trading intensivo.

Por qué NinjaTrader 8 es especialmente vulnerable

Condición (SQLite oficial)Presente en trading real
Bloqueo de fichero defectuoso / acceso concurrenteVarias instancias o cuentas comparten los mismos ficheros a la vez
Fallo de fsync (el disco "miente" sobre la escritura)Alto volumen de órdenes: miles de escrituras por sesión
Apagado o crash a mitad de una transacciónCaídas de feed, reconexiones, cierres forzados
Copia de seguridad durante una transacción activaHerramientas que copian la carpeta con NinjaTrader abierto
La propia guía de SQLite advierte que, a mayor volumen de escritura, mayor es la dependencia de que fsync() funcione correctamente — justo el perfil de un copiador multicuenta que emite miles de órdenes al día.

Síntomas: cómo saber si es tu base de datos

La cadena causal: del fichero a la pérdida

El daño sigue una secuencia mecánica y reproducible:

#EslabónQué ocurre
1DB corrupta o enormeErrores de datos (IDs duplicados) o fichero dañado; lecturas lentas
2La plataforma recarga la DB en el hilo de la pantallaAl reconectar el feed, el gráfico intenta recargar las ejecuciones desde la DB
3CongelaciónEl hilo de pantalla se bloquea; las velas se paran, la operativa sigue por otro hilo
4Ejecución dañadaÓrdenes tardías, duplicadas o imposibles; posición sin gestionar
5Pérdida financieraSlippage, posición atrapada, riesgo sin stop

No es una molestia técnica: es riesgo financiero medible

Una congelación es, en el fondo, latencia extrema. Y la latencia tiene un coste cuantificado por la literatura académica.

Coste del retraso
≈14%
del coste de inmediatez lo aportaban 500 ms de latencia; se triplicó desde el 5% de 1995[2]
Crece con
σ ↑
la volatilidad del activo: cuanto más se mueve el precio, más caro es cada milisegundo perdido

Si 500 ms ya representan un coste sustancial, una congelación de segundos o minutos convierte ese coste en una pérdida de primer orden. Y ocurre justo cuando el mercado es más volátil — que es cuando el feed cae y la DB se estresa.

Un estudio del Journal of Financial Economics (2022) sobre caídas de brókers documenta además que, cuando tu plataforma te bloquea, pierdes el control de tu riesgo en el peor momento; no es una anécdota, es un efecto medido a escala de mercado[3].

Un caso real, ya documentado por NinjaTrader[4]: un trader intentó cerrar una posición en un nivel técnico crítico; la plataforma se congeló y no pudo salir. Al recuperarse, las órdenes de venta que había pulsado repetidamente durante el bloqueo se ejecutaron múltiples veces. Resultado declarado: pérdidas significativas.

Cómo se traduce en tu P&L

DañoEfecto en tu cuenta
Slippage por congelaciónPeor precio de entrada/salida en cada operación afectada
Posición atrapadaPérdida por el lado adverso mientras no puedes cerrar
Órdenes duplicadas / fantasmaExposición no deseada, posición invertida
Datos históricos corruptosBacktests y estadísticas mal calculados → decisiones erróneas
Registros erróneosDisputas con prop firms, errores fiscales/contables
Honestidad: el fallo de fondo pertenece a la plataforma (recarga su base de datos en el hilo de la pantalla). El operador no lo causa; lo sufre. Por eso la defensa correcta es preventiva y automática, no depender de que el usuario "aprenda a reiniciar".

Soluciones manuales (y por qué no bastan)

El problema es que esto es manual, ocasional y arriesgado: hay que acordarse, elegir el momento (mercado cerrado) y un paso mal dado puede dejarte sin histórico. La mayoría solo reacciona cuando ya se ha roto algo.

La forma de que no vuelva a pasar: automatizar el mantenimiento

En lugar de apagar fuegos, la solución sostenible es que el mantenimiento ocurra solo, en segundo plano y en el momento adecuado. Para eso creamos TSD DB Guardian, un programa externo a NinjaTrader que se ocupa de la salud de su base de datos sin que tengas que hacer nada:

Funciona de forma programable (semanal, cada 15 o cada 30 días) y trae un botón de pánico para lanzar el mantenimiento al instante. Es software de Windows que convive con NinjaTrader 8; no es un complemento que cargue dentro de la plataforma.

Honestidad: DB Guardian reduce los congelamientos y mantiene la base sana, pero no sustituye tus propias copias de seguridad ni garantiza resultados de trading. Es una herramienta de mantenimiento y protección.

Deja de pelearte con la base de datos de NinjaTrader

Prueba TSD DB Guardian 14 días gratis, con todas las funciones y sin tarjeta.

Ver TSD DB Guardian Probar gratis 14 días
Chequeo de salud del gráfico de velas de NinjaTrader con TSD DB Guardian
TSD DB Guardian vigila la salud de la base de datos de NinjaTrader en segundo plano.

Preguntas frecuentes

¿Perderé mi histórico de datos al reparar la base?

No, si se hace con una copia de seguridad previa. DB Guardian siempre respalda antes de actuar; si lo haces manualmente, haz tú la copia primero.

¿Tengo que parar de operar para hacer el mantenimiento?

No. DB Guardian espera a mercado cerrado y trabaja en segundo plano. El mantenimiento manual sí conviene hacerlo con la plataforma cerrada.

¿Esto es un indicador de NinjaTrader?

No. Es un programa de Windows independiente que convive con NinjaTrader 8 y se ocupa de su base de datos desde fuera.

¿Por qué se congela justo en los momentos de más movimiento?

Porque la volatilidad trae más órdenes, más escrituras y más reconexiones de feed — las condiciones exactas que estresan la base de datos SQLite y disparan la recarga en el hilo de la pantalla.

Referencias

  1. SQLite. How To Corrupt An SQLite Database File. sqlite.org/howtocorrupt.html
  2. Moallemi, C. C., & Saglam, M. (2013). The Cost of Latency in High-Frequency Trading. Operations Research, 61(5).
  3. Retail trader sophistication and stock market quality: Evidence from brokerage outages. Journal of Financial Economics (2022).
  4. NinjaTrader Support Forum. Issue with Order Flow Market Depth Map Freezing Platform — significant loss incurred.
  5. NinjaTrader Help Guide. Operations > Database Operations (Reset DB / Repair DB).

← Volver al blog