Je vertelde me dat je papertradingproces vannacht is vastgelopen. Je hebt het vóór de volgende beslissing opnieuw gestart, zag geen foutmeldingen en ging ervan uit dat het verderging waar het was gebleven. Daarna plaatste het een kooporder voor een asset die je al in bezit had. Je wilt weten of er een fout in de strategie zit.
Dat kan. Controleer eerst of het herstartte proces dezelfde informatie heeft als de paperrekening. Een herstart is een probleem van statusherstel: posities, cash, openstaande orders en alle strategiegegevens die de volgende beslissing beïnvloeden, moeten overeenkomen. De code weer aan de praat krijgen is het makkelijke deel.
Wat dacht de strategie vóór de crash?
Noteer de laatste beslissing die het proces nam voordat het stopte. Leg voor elk verhandeld instrument de beoogde positie, de werkelijke positie op de rekening, openstaande orders en de signaalstatus vast die de volgende actie beïnvloedt. Als die gegevens ontbreken, kun je niet nagaan of de herstart de status heeft hersteld of alleen een nieuwe strategie heeft geïnitialiseerd.
Stel dat je uurlijkse strategie 1 eenheid koopt wanneer het trendsignaal positief wordt en de positie aanhoudt totdat het signaal negatief wordt. Het proces plaatst de kooporder om 14:00, maar crasht voordat het vastlegt dat de order is geaccepteerd. De paperhandelsplaats voert de order uit. Na de herstart ziet de strategie geen geregistreerde positie en is het signaal nog steeds positief, dus plaatst ze nog een kooporder. Het signaal gedraagt zich consistent. De strategie heeft verouderde informatie over wat de rekening bezit.
Daarom moet je de actuele positie op de rekening vergelijken met de opgeslagen strategiestatus voordat nieuwe orders zijn toegestaan. Een lokale momentopname kan nuttig zijn, maar de rekening of handelsplaats is de bron van waarheid voor wat daadwerkelijk is uitgevoerd.
Welke status moet een herstart overleven?
Begin met de status die de volgende order kan veranderen. Bewaar voor elke update een duurzaam record met een tijdstempel en versie; maak een kopie voordat je de herstelcode wijzigt, zodat je de fout later opnieuw kunt afspelen.
| Status | Waarom dit belangrijk is | Herstelcontrole |
|---|---|---|
| Posities en cash | Ze bepalen de blootstelling en beschikbare koopkracht | Vergelijk de opgeslagen waarden met de paperrekening |
| Openstaande orders | Een order kan zijn uitgevoerd terwijl het proces niet actief was | Vraag de orderstatus op en verwerk gedeeltelijke uitvoeringen |
| Signaalgeheugen | Kruisingen, wachttijden en aanhoudperioden kunnen meerdere beslissingen beslaan | Herstel de invoer van de laatst vastgelegde beslissing |
| Laatst verwerkt event | Dit bepaalt waar de strategie verdergaat met het verwerken van data | Speel events vanaf dat punt opnieuw af zonder ze dubbel toe te passen |
Signaalgeheugen wordt makkelijk over het hoofd gezien. Een strategie die op een kruising handelt, kan de indicatorwaarde van gisteren opslaan om een nieuwe kruising te herkennen. Als de strategie met een lege waarde start, kan ze een bestaande situatie aanzien voor een nieuwe gebeurtenis. Voor een cooldown-timer geldt hetzelfde: een herstart mag een regel die moest blijven gelden niet ongemerkt resetten.
Hoe maak je herstel herhaalbaar?
Geef elke order een stabiele client-ID die is afgeleid van de strategierun en de beslissing waaruit de order voortkwam. Als het proces na een time-out opnieuw probeert, kan het controleren of die beslissing al een order heeft aangemaakt in plaats van een duplicaat te plaatsen. Leg statuswijzigingen pas vast nadat de bijbehorende gebeurtenis op de rekening is bevestigd, en bewaar de order- en uitvoerings-ID's die de wijziging verklaren.
Test vervolgens de situatie die tot het incident leidde. Laat de strategie een beslissing nemen, sla de status op, stop het proces en herstel het met de posities en ordergeschiedenis van de paperrekening. Vergelijk de volgende beslissing en de resulterende orders met een ononderbroken run. Herhaal dit met een gedeeltelijk uitgevoerde order en met een crash tussen het plaatsen van de order en de bevestiging. De hervatte run mag geen nieuwe positie verzinnen of een voltooide actie herhalen.
Houd een herstellogboek bij: laatst verwerkt event, tijdstip van de momentopname van de rekening, statussen van openstaande orders, herstelde strategieversie en de eerste beslissing na de herstart. Zo wordt ‘het proces is weer actief’ iets wat je kunt controleren.
Wat kun je na de herstart vertrouwen?
Vertrouw het proces pas wanneer de status van de rekening en die van de strategie overeenkomen, de statussen van openstaande orders bekend zijn en de volgende beslissing overeenkomt met wat je van een ononderbroken run zou verwachten. Als je een afwijking niet kunt verklaren, pauzeer dan het plaatsen van paperorders en onderzoek het eventverloop. Een actief proces bewijst niet dat de strategie is hersteld.
Je hebt het nuttige aan de crash al ontdekt: hij bracht een aanname aan het licht waarmee je normale run nooit werd geconfronteerd. Maak van de herstart een herhaalbaar scenario, zodat je weet wat je strategie onthoudt voordat je haar weer laat handelen.
← Alle artikelen


