Persistentiesysteem

Positieherstel

De handelsengine bevat een ingebouwde persistentielaag die is ontworpen om crashes, herstarts en onverwachte afsluitingen te overleven zonder de kritieke handelstoestand te verliezen.

Alle actieve handelsgegevens worden automatisch op schijf opgeslagen met behulp van de aangepaste PersistentMap-component.

Het systeem slaat persistent op:

  • Actieve posities
  • Openstaande orders
  • Symbool-handelscontroles
  • Staten van risicobeheer

Wanneer de bot opnieuw opstart:

  1. 1.Persistente bestanden worden automatisch geladen.
  2. 2.De vorige handelstoestand wordt terug in het geheugen hersteld.
  3. 3.Actieve posities blijven onmiddellijk gemonitord worden.
  4. 4.Openstaande orders blijven de uitvoeringsstatus van de exchange volgen.
  5. 5.Risicocontroles blijven behouden.

Hierdoor kan de bot zonder handmatige tussenkomst blijven werken na onderbrekingen.

Doel:

  • Voorkomt dat open posities uit het oog worden verloren
  • Behoudt handelscontinuïteit
  • Handhaaft een nauwkeurige risicobeheerstatus
  • Voorkomt dubbele entries na een herstart
Persistence System Example

Databasestructuur

De persistentielaag gebruikt lichtgewicht lokale bestandsopslag gebaseerd op Python pickle-serialisatie.

Elke persistente structuur wordt opgeslagen in een onafhankelijk bestand:

  • active_positions.pkl
  • pending_orders.pkl
  • symbol_controls.pkl

De architectuur is bewust minimalistisch en geoptimaliseerd voor handelssystemen met lage latentie.

Actieve Posities

Slaat momenteel openstaande transacties op.

Elke positie bevat:

  • Handelssymbool
  • Positie zijde
  • Hoeveelheid
  • Instapprijs
  • Stop loss prijs
  • Take profit prijs
  • Trailing stop status
  • Tijdstempel

Doel:

  • Hervat positiebeheer na herstart
  • Zet stop loss en trailing logica voort
  • Behoudt exacte entry-status

Openstaande Orders

Slaat exchange-orders op die wachten op uitvoeringsbevestiging.

Elke order bevat:

  • Symbool
  • Orderzijde
  • Ordertype
  • Hoeveelheid
  • Exchange-order-ID
  • Huidige status

Doel:

  • Voorkomt dubbele orders
  • Blijft de uitvoeringsstatus van de exchange volgen
  • Herstelt onvoltooide orderstromen

Symbool Controles

Slaat runtime-handelsrechten en beschermingstoestanden op.

Elk symbool kan bevatten:

  • Inschakelstatus voor kopen
  • Inschakelstatus voor verkopen
  • Redenen voor uitschakeling
  • Risicovergrendelingstoestanden

Doel:

  • Behoudt geautomatiseerde risicobeperkingen
  • Voorkomt accidentele heractivering na herstart

Crashherstel Logica

Het persistentiesysteem is ontworpen voor automatisch herstel tijdens:

  • Procescrashes
  • Serverherstart
  • VPS-storingen
  • Stroomuitval
  • Onverwachte uitzonderingen

Asynchrone Persistentie

Alle schrijfbewerkingen worden verwerkt in een speciale achtergrondthread.

Kenmerken:

  • Niet-blokkerende handelsuitvoering
  • Continu automatisch opslaan
  • Op wachtrij gebaseerde planning van opslag

Doel:

  • Voorkomt handelsvertragingen veroorzaakt door schijfoperaties.

Atomic Bestandsopslag

Het systeem gebruikt atomaire bestandsvervanging voor maximale gegevensveiligheid.

Opslagprocedure:

  1. 1.Gegevens worden weggeschreven naar een tijdelijk .tmp-bestand.
  2. 2.Het tijdelijke bestand is volledig voltooid.
  3. 3.Het bestand wordt atomair hernoemd naar het uiteindelijke persistentiebestand.

Doel:

  • Voorkomt corrupte persistentiebestanden tijdens crashes of onderbroken schrijfbewerkingen.

Opslag Deduplicatie

De persistentiewachtrij verwijdert automatisch verouderde opslagverzoeken.

Gedrag:

  • Alleen de nieuwste toestand wordt gepersisteerd.
  • Overbodige schrijfbewerkingen worden overgeslagen.

Doel:

  • Vermindert schijfgebruik
  • Verbetert de prestaties bij hoge updatefrequentie

Automatisch Herladen van de Status

Tijdens het opstarten:

  1. 1.Persistentiebestanden worden gedetecteerd.
  2. 2.Geserialiseerde objecten worden terug in het geheugen geladen.
  3. 3.De handelsengine hervat onmiddellijk met monitoren.

Als persistentiebestanden niet bestaan:

  • Een nieuwe, schone opslag wordt automatisch geïnitialiseerd.

Threadveiligheid

De persistentie-engine gebruikt interne synchronisatievergrendelingen tijdens opslagbewerkingen.

Kenmerken:

  • Concurrentie-veilige schrijfbewerkingen
  • Veilige multi-threaded toegang
  • Beschermde bestandsvervanging

Doel:

  • Zorgt voor consistentie tussen handelsthreads en de persistentielaag

Bescherming bij Correct Afsluiten

Voor het afsluiten:

  1. 1.Een definitieve opslagbewerking wordt geforceerd.
  2. 2.De opslagwachtrij wordt volledig leeggemaakt.
  3. 3.De achtergrond-persistentie-thread wordt veilig gestopt.

Doel:

  • Garandeert dat de nieuwste handelstoestand naar schijf wordt geschreven voordat wordt afgesloten.