Sistema di Persistenza
Recupero Posizione
Il motore di trading include un livello di persistenza integrato progettato per sopravvivere a crash, riavvii e arresti imprevisti senza perdere lo stato critico del trading.
Tutti i dati di trading attivi vengono automaticamente memorizzati su disco utilizzando il componente PersistentMap personalizzato.
Il sistema memorizza in modo persistente:
- •Posizioni attive
- •Ordini in sospeso
- •Controlli di trading per simbolo
- •Stati di gestione del rischio
Quando il bot si riavvia:
- 1.I file persistenti vengono caricati automaticamente.
- 2.Lo stato di trading precedente viene ripristinato in memoria.
- 3.Le posizioni attive continuano ad essere monitorate immediatamente.
- 4.Gli ordini in sospeso continuano a tracciare lo stato di esecuzione dello scambio.
- 5.I controlli del rischio rimangono preservati.
Questo permette al bot di continuare l'operatività senza intervento manuale dopo le interruzioni.
Scopo:
- •Prevenire la perdita di traccia delle posizioni aperte
- •Preservare la continuità del trading
- •Mantenere uno stato accurato della gestione del rischio
- •Evitare entrate duplicate dopo il riavvio

Struttura Database
Il livello di persistenza utilizza un leggero storage locale basato su file costruito sulla serializzazione Python pickle.
Ogni struttura persistente è memorizzata in un file indipendente:
- •
active_positions.pkl - •
pending_orders.pkl - •
symbol_controls.pkl
L'architettura è intenzionalmente minimalista e ottimizzata per sistemi di trading a bassa latenza.
Posizioni Attive
Memorizza le operazioni attualmente aperte.
Ogni posizione contiene:
- •Simbolo di trading
- •Lato posizione
- •Quantità
- •Prezzo di entrata
- •Prezzo di stop loss
- •Prezzo di take profit
- •Stato trailing stop
- •Timestamp
Scopo:
- •Riprendere la gestione della posizione dopo il riavvio
- •Continuare la logica di stop loss e trailing
- •Preservare lo stato esatto di entrata
Ordini in Sospeso
Memorizza gli ordini dello scambio in attesa di conferma di esecuzione.
Ogni ordine contiene:
- •Simbolo
- •Lato ordine
- •Tipo ordine
- •Quantità
- •ID ordine dello scambio
- •Stato corrente
Scopo:
- •Prevenire ordini duplicati
- •Continuare a monitorare lo stato di esecuzione dello scambio
- •Recuperare flussi di ordini non completati
Controlli Simbolo
Memorizza i permessi di trading runtime e gli stati di protezione.
Ogni simbolo può contenere:
- •Stato acquisto abilitato
- •Stato vendita abilitato
- •Motivi di disabilitazione
- •Stati di blocco rischio
Scopo:
- •Preservare le restrizioni di rischio automatizzate
- •Prevenire la riattivazione accidentale dopo il riavvio
Logica Recupero Crash
Il sistema di persistenza è progettato per il recupero automatico durante:
- •Crash del processo
- •Riavvii del server
- •Guasti VPS
- •Interruzioni di corrente
- •Eccezioni impreviste
Persistenza Asincrona
Tutte le scritture sono elaborate in un thread dedicato in background.
Caratteristiche:
- •Esecuzione trading non bloccante
- •Salvataggio automatico continuo
- •Pianificazione salvataggio basata su coda
Scopo:
- •Prevenire ritardi nel trading causati da operazioni su disco.
Salvataggio File Atomico
Il sistema utilizza la sostituzione atomica dei file per la massima sicurezza dei dati.
Flusso di salvataggio:
- 1.I dati vengono scritti in un file temporaneo .tmp.
- 2.Il file temporaneo è completamente completato.
- 3.Il file viene rinominato atomicamente nel file di persistenza finale.
Scopo:
- •Prevenire file di persistenza danneggiati durante crash o scritture interrotte.
Deduplicazione Salvataggio
La coda di persistenza rimuove automaticamente le richieste di salvataggio obsolete.
Comportamento:
- •Solo lo stato più recente viene persistito.
- •Le scritture su disco ridondanti vengono saltate.
Scopo:
- •Ridurre l'utilizzo del disco
- •Migliorare le prestazioni sotto alta frequenza di aggiornamento
Ricarica Automatica Stato
Durante l'avvio:
- 1.I file di persistenza vengono rilevati.
- 2.Gli oggetti serializzati vengono caricati nuovamente in memoria.
- 3.Il motore di trading riprende il monitoraggio immediatamente.
Se i file di persistenza non esistono:
- •Un nuovo storage pulito viene automaticamente inizializzato.
Thread Safety
Il motore di persistenza utilizza lock di sincronizzazione interni durante le operazioni di salvataggio.
Caratteristiche:
- •Scritture concurrent-safe
- •Accesso multi-thread sicuro
- •Sostituzione file protetta
Scopo:
- •Garantire coerenza tra thread di trading e livello di persistenza
Protezione Spegnimento Graduale
Prima dello spegnimento:
- 1.Un'operazione di salvataggio finale viene forzata.
- 2.La coda di salvataggio viene completamente svuotata.
- 3.Il thread di persistenza in background viene fermato in modo sicuro.
Scopo:
- •Garantire che l'ultimo stato di trading venga scritto su disco prima dell'uscita.