Du berättade att din pappershandelsprocess kraschade under natten. Du startade om den före nästa beslut, såg inga fel och antog att den hade fortsatt där den slutade. Sedan lade den en köporder på en tillgång du redan ägde. Du vill veta om det är något fel på strategin.
Det kan det vara. Men kontrollera först om den omstartade processen känner till samma saker som papperskontot. En omstart är ett problem med återställning av tillstånd: positioner, saldo, öppna ordrar och allt strategiminne som påverkar nästa beslut måste stämma överens. Att få igång koden igen är den enkla delen.
Vad trodde strategin innan den kraschade?
Skriv ner det sista beslutet processen fattade innan den stannade. För varje handlat instrument ska du dokumentera avsedd position, kontots faktiska position, utestående ordrar och signaltillståndet som påverkar nästa åtgärd. Om de uppgifterna saknas kan du inte avgöra om omstarten återställde tillståndet eller bara startade en ny strategi från början.
Anta att din timstrategi köper 1 enhet när trendsignalen blir positiv och sedan behåller den tills signalen blir negativ. Processen skickar köpordern kl. 14:00, men kraschar innan den hinner registrera att ordern godkänts. Pappershandelsplattformen genomför köpet. Vid omstarten ser strategin ingen registrerad position, medan signalen fortfarande är positiv, så den skickar ytterligare en köporder. Signalen fungerar konsekvent. Minnet av vad kontot äger är inaktuellt.
Därför måste kontots aktuella position stämmas av mot det sparade strategitillståndet innan nya ordrar tillåts. En lokal ögonblicksbild kan vara användbar, men det är kontot eller handelsplattformen som avgör vad som faktiskt har genomförts.
Vilket tillstånd måste finnas kvar efter en omstart?
Börja med det tillstånd som kan ändra nästa order. Spara en beständig post med tidsstämpel och versionsnummer för varje uppdatering. Gör en kopia innan du ändrar återställningslogiken, så att du kan återskapa felet senare.
| Tillstånd | Varför det spelar roll | Kontroll vid återställning |
|---|---|---|
| Positioner och saldo | De avgör exponeringen och tillgängligt köputrymme | Jämför sparade värden med papperskontot |
| Öppna ordrar | En order kan ha genomförts medan processen var nere | Kontrollera orderstatus och stäm av delfyllningar |
| Signaltillstånd | Korsningar, nedkylningsperioder och innehavsperioder kan sträcka sig över flera beslut | Återställ indata från det senast sparade beslutet |
| Senast behandlade händelse | Den avgör var strategin återupptar databehandlingen | Spela upp händelser efter den punkten utan att tillämpa dem två gånger |
Signaltillstånd är lätt att förbise. En strategi som handlar på en korsning kan spara gårdagens indikatorvärde för att upptäcka en ny korsning. Om den startar med ett tomt värde kan den missta ett befintligt läge för en ny händelse. En nedkylningsperiod skapar samma problem: en omstart får inte i tysthet nollställa en regel som skulle bestå.
Hur gör du återställningen repeterbar?
Ge varje order ett stabilt klient-ID som härleds från strategikörningen och beslutet den kom från. Om processen försöker igen efter en tidsgräns kan den kontrollera om beslutet redan har skapat en order i stället för att lägga en dubblett. Registrera tillståndsändringar först när du bekräftat motsvarande kontohändelse, och spara order- och fyllnads-ID:n som förklarar ändringen.
Testa sedan den situation som orsakade incidenten. Kör strategin genom ett beslut, spara tillståndet, stoppa processen och återställ den med papperskontots positioner och orderhistorik. Jämför nästa beslut och de efterföljande ordrarna med en oavbruten körning. Upprepa med en delvis fylld order och med en krasch mellan skickad order och mottagen bekräftelse. Den återupptagna körningen ska inte hitta på en ny position eller upprepa en åtgärd som redan slutförts.
För en återställningslogg: senast behandlade händelse, tidpunkt för kontots ögonblicksbild, status för öppna ordrar, återställd strategiversion och det första beslutet efter omstarten. Då blir ”processen kom igång igen” något du kan granska i efterhand.
Vad kan du lita på efter omstarten?
Lita på processen först när konto och strategitillstånd stämmer överens, väntande ordrar har känd status och nästa beslut motsvarar det du skulle förvänta dig vid en oavbruten körning. Om du inte kan förklara en avvikelse ska du pausa skickandet av pappersordrar och granska händelseförloppet. Att processen körs bevisar inte att strategin har återställts.
Du har redan hittat det användbara i kraschen: den blottlade ett antagande som en normal körning aldrig behövde pröva. Gör omstarten till ett repeterbart scenario, så vet du vad strategin minns innan du ber den handla igen.
← Alla inlägg


