Sistema de Persistencia
Recuperación de Posiciones
El motor de trading incluye una capa de persistencia incorporada diseñada para sobrevivir a fallos, reinicios y apagados inesperados sin perder el estado crítico del trading.
Todos los datos de trading activos se almacenan automáticamente en disco utilizando el componente personalizado PersistentMap.
El sistema almacena de forma persistente:
- •Posiciones activas
- •Órdenes pendientes
- •Controles de trading por símbolo
- •Estados de gestión de riesgos
Cuando el bot se reinicia:
- 1.Los archivos persistentes se cargan automáticamente.
- 2.El estado de trading anterior se restaura en la memoria.
- 3.Las posiciones activas continúan siendo monitoreadas inmediatamente.
- 4.Las órdenes pendientes continúan rastreando el estado de ejecución del exchange.
- 5.Los controles de riesgo permanecen preservados.
Esto permite que el bot continúe su operación sin intervención manual después de interrupciones.
Propósito:
- •Prevenir la pérdida de seguimiento de las posiciones abiertas
- •Preservar la continuidad del trading
- •Mantener un estado preciso de gestión de riesgos
- •Evitar entradas duplicadas después de un reinicio

Estructura de la Base de Datos
La capa de persistencia utiliza un almacenamiento ligero basado en archivos locales construido sobre la serialización pickle de Python.
Cada estructura persistente se almacena en un archivo independiente:
- •
active_positions.pkl - •
pending_orders.pkl - •
symbol_controls.pkl
La arquitectura es intencionalmente minimalista y optimizada para sistemas de trading de baja latencia.
Posiciones Activas
Almacena las operaciones actualmente abiertas.
Cada posición contiene:
- •Símbolo de trading
- •Lado de la posición
- •Cantidad
- •Precio de entrada
- •Precio de stop loss
- •Precio de take profit
- •Estado del trailing stop
- •Marca de tiempo
Propósito:
- •Reanudar la gestión de posiciones después de un reinicio
- •Continuar la lógica de stop loss y trailing
- •Preservar el estado exacto de la entrada
Órdenes Pendientes
Almacena las órdenes del exchange que esperan confirmación de ejecución.
Cada orden contiene:
- •Símbolo
- •Lado de la orden
- •Tipo de orden
- •Cantidad
- •ID de orden del exchange
- •Estado actual
Propósito:
- •Prevenir órdenes duplicadas
- •Continuar monitoreando el estado de ejecución del exchange
- •Recuperar flujos de órdenes incompletos
Controles de Símbolo
Almacena los permisos de trading en tiempo de ejecución y los estados de protección.
Cada símbolo puede contener:
- •Estado de compra habilitada
- •Estado de venta habilitada
- •Razones de deshabilitación
- •Estados de bloqueo por riesgo
Propósito:
- •Preservar las restricciones de riesgo automatizadas
- •Prevenir la reactivación accidental después de un reinicio
Lógica de Recuperación ante Fallos
El sistema de persistencia está diseñado para la recuperación automática durante:
- •Fallos de procesos
- •Reinicios del servidor
- •Fallos de VPS
- •Cortes de energía
- •Excepciones inesperadas
Persistencia Asíncrona
Todas las escrituras se procesan en un hilo de fondo dedicado.
Características:
- •Ejecución de trading no bloqueante
- •Guardado automático continuo
- •Programación de guardado basada en colas
Propósito:
- •Prevenir retrasos en el trading causados por operaciones de disco.
Guardado Atómico de Archivos
El sistema utiliza el reemplazo atómico de archivos para la máxima seguridad de los datos.
Flujo de guardado:
- 1.Los datos se escriben en un archivo temporal .tmp.
- 2.El archivo temporal se completa por completo.
- 3.El archivo se renombra atómicamente al archivo de persistencia final.
Propósito:
- •Prevenir la corrupción de archivos de persistencia durante fallos o escrituras interrumpidas.
Desduplicación de Guardado
La cola de persistencia elimina automáticamente las solicitudes de guardado obsoletas.
Comportamiento:
- •Solo se persiste el estado más reciente.
- •Se omiten las escrituras en disco redundantes.
Propósito:
- •Reducir el uso de disco
- •Mejorar el rendimiento bajo alta frecuencia de actualización
Recarga Automática de Estado
Durante el inicio:
- 1.Se detectan los archivos de persistencia.
- 2.Los objetos serializados se cargan de nuevo en la memoria.
- 3.El motor de trading reanuda el monitoreo inmediatamente.
Si los archivos de persistencia no existen:
- •Se inicializa automáticamente un nuevo almacenamiento limpio.
Seguridad en Hilos
El motor de persistencia utiliza bloqueos de sincronización internos durante las operaciones de guardado.
Características:
- •Escrituras concurrentes seguras
- •Acceso multi-hilo seguro
- •Reemplazo de archivos protegido
Propósito:
- •Asegurar la consistencia entre los hilos de trading y la capa de persistencia
Protección de Apagado Graceful
Antes del apagado:
- 1.Se fuerza una operación de guardado final.
- 2.La cola de guardado se vacía por completo.
- 3.El hilo de persistencia en segundo plano se detiene de forma segura.
Propósito:
- •Garantizar que el último estado de trading se escriba en el disco antes de salir.