Povedali ste mi, da se je vaš proces za papirno trgovanje čez noč sesul. Znova ste ga zagnali pred naslednjo odločitvijo, napak ni bilo in sklepali ste, da je nadaljeval tam, kjer je končal. Nato je oddal nakupno naročilo za sredstvo, ki ste ga že imeli. Zdaj želite vedeti, ali je v strategiji napaka.
Morda. Najprej pa preverite, ali znova zagnani proces pozna iste podatke kot papirni račun. Ponovni zagon je problem obnovitve stanja: pozicije, denarna sredstva, odprta naročila in vsak pomnilnik strategije, ki vpliva na naslednjo odločitev, se morajo ujemati. Znova zagnati kodo je lažji del.
Kaj je strategija menila, preden se je sesula?
Zapišite zadnjo odločitev, ki jo je proces sprejel pred zaustavitvijo. Za vsak instrument, s katerim trgujete, zabeležite načrtovano pozicijo, dejansko pozicijo na računu, odprta naročila in stanje signala, ki bo vplivalo na naslednje dejanje. Če teh zapisov ni, ne morete ugotoviti, ali je ponovni zagon obnovil stanje ali zgolj inicializiral novo strategijo.
Recimo, da vaša urna strategija kupi 1 enoto, ko njen trendni signal postane pozitiven, nato pa jo drži, dokler signal ne postane negativen. Proces ob 14:00 odda nakupno naročilo, vendar se sesuje, še preden zabeleži, da je bilo naročilo sprejeto. Papirna trgovalna platforma ga izvrši. Ob ponovnem zagonu strategija ne najde zabeležene pozicije, signal pa je še vedno pozitiven, zato odda še eno nakupno naročilo. Signal se obnaša dosledno. Zastarel je podatek o tem, kaj je na računu v lasti.
Zato je treba trenutno pozicijo na računu uskladiti z obstojnim stanjem strategije, preden dovolite nova naročila. Lokalni posnetek stanja je lahko koristen, vendar je za podatek o tem, kaj je bilo dejansko izvršeno, merodajen račun oziroma trgovalna platforma.
Katero stanje mora preživeti ponovni zagon?
Začnite s stanjem, ki lahko spremeni naslednje naročilo. Za vsako posodobitev shranite trajen zapis s časovnim žigom in različico; pred spremembo logike za obnovitev naredite kopijo, da boste lahko pozneje ponovili napako.
| Stanje | Zakaj je pomembno | Preverjanje pri obnovitvi |
|---|---|---|
| Pozicije in denarna sredstva | Določajo izpostavljenost in razpoložljiva sredstva za nakupe | Primerjajte trajno shranjene vrednosti s papirnim računom |
| Odprta naročila | Naročilo je bilo morda izvršeno, ko proces ni deloval | Preverite stanje naročila in uskladite delne izvršitve |
| Pomnilnik signalov | Prečkanja, obdobja mirovanja in obdobja držanja lahko segajo čez več odločitev | Obnovite zadnje potrjene vhodne podatke odločitve |
| Zadnji obdelani dogodek | Določa, od kod strategija nadaljuje zajemanje podatkov | Ponovite obdelavo dogodkov za to točko, ne da bi jih uporabili dvakrat |
Na pomnilnik signalov zlahka pozabimo. Strategija, ki trguje ob prečkanju, lahko shrani včerajšnjo vrednost indikatorja, da zazna novo prečkanje. Če se zažene brez te vrednosti, lahko obstoječe stanje zamenja za nov dogodek. Enako velja za časovnik obdobja mirovanja: ponovni zagon ne sme tiho ponastaviti pravila, ki bi moralo ostati v veljavi.
Kako lahko obnovitev naredite ponovljivo?
Vsakemu naročilu dodelite stabilen ID odjemalca, izpeljan iz zagona strategije in odločitve, na podlagi katere je nastalo. Če proces po časovni omejitvi poskusi znova, lahko preveri, ali je ta odločitev že ustvarila naročilo, namesto da odda podvojenega. Spremembe stanja zabeležite šele po potrditvi ustreznega dogodka na računu, skupaj z ID-ji naročil in izvršitev, ki pojasnjujejo spremembo.
Nato preizkusite okoliščine, ki so povzročile incident. Strategijo zaženite skozi odločitev, shranite stanje, jo ustavite in obnovite s pozicijami ter zgodovino naročil papirnega računa. Naslednjo odločitev in nastala naročila primerjajte z neprekinjenim zagonom. Ponovite še z delno izvršenim naročilom in s sesutjem med oddajo ter potrditvijo naročila. Strategija po obnovitvi ne bi smela iz nič ustvariti nove pozicije ali ponoviti že opravljenega dejanja.
Vodite dnevnik obnovitve: zadnji obdelani dogodek, čas posnetka stanja računa, stanja odprtih naročil, obnovljena različica strategije in prva odločitev po ponovnem zagonu. Tako lahko preverite, kaj pomeni, da se je »proces znova zagnal«.
Čemu lahko po ponovnem zagonu zaupate?
Procesu zaupajte šele, ko sta stanje računa in stanje strategije usklajena, ko so stanja čakajočih naročil znana in ko se naslednja odločitev ujema s tisto, ki bi jo pričakovali pri neprekinjenem zagonu. Če neskladja ne znate pojasniti, začasno ustavite oddajanje papirnih naročil in preglejte zaporedje dogodkov. Delujoč proces še ne dokazuje, da je strategija obnovljena.
V sesutju ste že našli koristno plat: razkrilo je predpostavko, s katero se pri običajnem delovanju niste soočili. Ponovni zagon obravnavajte kot ponovljiv scenarij in vedeli boste, česa se vaša strategija spominja, preden ji znova naročite trgovanje.
← Vse objave


