24. september 2026 · uuringud

Käivitasime paberkauplemise strateegia pärast taaskäivitust uuesti. Selle korraldused muutusid.

Käivitasime paberkauplemise strateegia pärast taaskäivitust uuesti. Selle korraldused muutusid.

Käivitasime paberkauplemise strateegia tehingu keskel uuesti ja saime varasemaga võrreldes teistsuguse korralduste jada. Samad turuandmed, sama strateegia versioon, sama kontojääk. Signaali arvutus klappis. Strateegia mälu oma positsiooni ja ootel korralduste kohta aga mitte.

Uurisime lahknevust terve päeva kestnud taasesituse käigus. Kasulik õppetund oli lihtne: taaskäivitamine on sinu tarkvara jaoks turusündmus. Kui sa ei testi, kuidas strateegia oma oleku taastab, võib puhas järeltest varjata paberkauplemise süsteemi, mis unustab, mis talle kuulub.

09:10 — Valisime igava positsiooni

Teststrateegia kauples likviidse perpetuaalse lepinguga: siseneda pikaks, kui lühike libisev keskmine tõuseb üle pikema, ja väljuda vastupidise ristumise korral. Alustasime taasesitust väikese juba avatud positsiooniga ning vähendamiseks turul ootel oleva ainult positsiooni vähendava limiitkorraldusega. Nii tuli taastamisel rekonstrueerida 2 asja: mis meile kuulus ja mida olime kauplemisplatvormil juba teha palunud.

Kontrollpunktis oli kontol 0.04 lepingut. Korraldus oli avatud 0.01 lepingu ulatuses. Strateegia protsess oli mõlemad väärtused mällu vahemällu salvestanud, kuid käivitusrada laadis alla ainult positsiooni. See eeldas, et vahemällu salvestatud korraldust enam pole.

09:25 — Ilmus esimene topeltkorraldus

Taaskäivitamisel nägi strateegia olemasolevat pikka positsiooni, käivitas signaaliloogika ja esitas veel ühe positsiooni 0.01 lepingu võrra vähendava korralduse. Nüüd oli paberkauplemise kauplemiskeskkonnas 2 aktiivset korraldust. Kumbki polnud eraldi võttes halb korraldus. Koos võisid need müüa kavandatust 2 korda suurema koguse, kui mõlemad täidetakse.

Algul süüdistasime signaalitsüklit. Viga polnud tsüklis, vaid mittetäielikus hetktõmmises. Strateegia küsis: „Milline positsioon mul on?”, kuid ei küsinud kunagi: „Millised korraldused on veel aktiivsed?”

Olek pärast taaskäivitustMida protsess uskusMis kontol oli
PositsioonPikk 0.04Pikk 0.04
Avatud vähendavad korraldusedPuuduvad2 korraldust, kumbki 0.01
Kavandatud positsioon pärast 1 täitmistPikk 0.03Võis muutuda pikaks positsiooniks 0.02

10:00 — Parandasime taastamise, seejärel leidsime ajastusega seotud erijuhtumi

Muutsime käivitust nii, et enne uute otsuste tegemise lubamist taastataks olek konto positsioonide ja avatud korralduste põhjal. See kõrvaldas topeltkorralduse. Seejärel muutsime katkestuse keerulisemaks: 1 korraldus täideti strateegia võrguühenduseta oleku ajal ja täitmisteade saabus pärast taasühendumist.

Kontopilt kajastas täitmist juba. Seejärel vähendas hilinenud teade kohalikku positsiooni teist korda. Mõne sekundi vältel uskus strateegia, et tal on 0.02 lepingut, kuigi kontol oli 0.03. Järgmine tasakaalustus põhines näilisel puudujäägil.

Lisasime kooskõlastusreeglid: kasuta lähtepunktina kontopilti, eira sündmuste identifikaatorite abil täitmisi, mis seal juba kajastuvad, ning ära esita korraldusi enne algse sünkroonimise lõppu. Teade võib saabuda hilja või 2 korda. Taastamine peab mõlemaga toime tulema.

13:40 — Taasesitus tabas vaevumärgatava lahknevuse

Taasesitasime sama hinnaliikumise algses käivituses ja taaskäivitatud käivituses. Lõpliku P&L-i võrdlemisel oleks probleem märkamata jäänud: pärast turu pöördumist lõppesid mõlemad versioonid sama positsiooniga. Korraldussündmuste võrdlus tõi selle esile.

Logisime iga otsuse koos loetud olekuga: positsioon, avatud korraldused, viimati töödeldud täitmise identifikaator, signaali väärtus ja strateegia versioon. Esimene lahknev sündmus sai selgituse. Üks käivitus nägi aktiivset korraldust, teine tühja loendit. Hiljem rakendas üks neist täitmise 2 korda.

Sama lõppsaldo ei tõesta, et käitumine oli sama. Võrdle otsuste ja korralduste jada, eriti taastamise piiril.

16:20 — Mida teeksime järgmisel korral teisiti

Kulutasime liiga kaua hinnaliikumise taasesitamisele, enne kui kontrollisime konto oleku üleminekuid. Järgmisel korral lisaksime esmalt rikkestsenaariumid ning hoiaksime turu hinnaliikumise peaaegu muutumatuna. Nii on tarkvaraviga hõlpsasti märgatav ja volatiilne liikumine ei hägusta vea diagnoosimist.

Õppisime ka salvestama taastamise hetktõmmise koos strateegia versiooni ja sündmuslogiga. Nii sai vea mõne minutiga korratavaks muuta, selle asemel et loota kellegi mälule täpse taasühendumisjada meenutamisel.

Paberkauplemise strateegia, mis käitub õigesti ainult seni, kuni selle protsess töötab, pole veel täielikku peaproovi läbinud. Taaskäivita see positsiooni keskel, lase täitmistel hilineda ja vaata üle kõik pärast seda saadetud korraldused. Eesmärk pole tõestada, et see kunagi ei tõrgu. Eesmärk on muuta selle taastumine nähtavaks, enne kui paberkauplemise konto peab sama õppetunni ootamatult selgeks õpetama.

paberkaupleminestrateegia olekjäreltestiminekorralduste haldusreprodutseeritavus
← Kõik postitused