Kerroit, että paperikaupankäyntiprosessisi kaatui yön aikana. Käynnistit sen uudelleen ennen seuraavaa päätöstä, et nähnyt virheitä ja oletit sen jatkaneen siitä, mihin se jäi. Sitten se lähetti ostotoimeksiannon omaisuuserälle, jota omistit jo. Haluat tietää, onko strategiassa virhe.
Mahdollisesti. Tarkista kuitenkin ensin, tietääkö uudelleenkäynnistetty prosessi samat asiat kuin paperitili. Uudelleenkäynnistyksessä on kyse tilan palauttamisesta: positioiden, käteisen, avointen toimeksiantojen ja seuraavaan päätökseen vaikuttavan strategian muistin on oltava keskenään yhtäpitäviä. Koodin saaminen taas käyntiin on helppo osa.
Mitä strategia uskoi ennen kaatumistaan?
Kirjaa ylös prosessin viimeinen päätös ennen pysähtymistä. Tallenna jokaisesta kaupankäynnin kohteena olevasta instrumentista tavoitepositio, tilin todellinen positio, avoimet toimeksiannot ja seuraavaan toimintaan vaikuttava signaalitila. Jos näitä tietoja ei ole tallessa, et voi tietää, palauttiko uudelleenkäynnistys tilan vai alustiko se vain uuden strategian.
Oletetaan, että tuntistrategiasi ostaa yhden yksikön trendisignaalin kääntyessä positiiviseksi ja pitää sen, kunnes signaali muuttuu negatiiviseksi. Prosessi lähettää ostotoimeksiannon kello 14:00 mutta kaatuu ennen kuin ehtii kirjata toimeksiannon hyväksymisen. Paperikaupankäyntipaikka toteuttaa sen. Uudelleenkäynnistyksen jälkeen strategia ei näe kirjattua positiota, ja signaali on yhä positiivinen, joten se lähettää uuden ostotoimeksiannon. Signaali toimii johdonmukaisesti. Strategian muisti tilin omistuksista on vanhentunut.
Siksi tilin nykyinen positio on täsmäytettävä tallennettuun strategiatilaan ennen uusien toimeksiantojen sallimista. Paikallinen tilannekuva voi olla hyödyllinen, mutta tili tai kaupankäyntipaikka on ensisijainen lähde sille, mikä on todella toteutunut.
Minkä tilan on säilyttävä uudelleenkäynnistyksessä?
Aloita tilasta, joka voi muuttaa seuraavaa toimeksiantoa. Säilytä jokaisesta päivityksestä pysyvä, aikaleimalla ja versiolla varustettu tietue. Ota siitä kopio ennen palautuslogiikan muuttamista, jotta voit toistaa virhetilanteen myöhemmin.
| Tila | Miksi sillä on merkitystä | Palautuksen tarkistus |
|---|---|---|
| Positiot ja käteinen | Ne määrittävät altistuksen ja käytettävissä olevan ostovoiman | Vertaa tallennettuja arvoja paperitilin tietoihin |
| Avoimet toimeksiannot | Toimeksianto on voinut toteutua prosessin ollessa poissa käytöstä | Tarkista toimeksiannon tila ja täsmäytä osittaiset toteutumat |
| Signaalimuisti | Risteämät, jäähdyttelyajat ja pitoajat voivat ulottua usean päätöksen yli | Palauta viimeisen vahvistetun päätöksen syötteet |
| Viimeksi käsitelty tapahtuma | Se määrittää, mistä strategia jatkaa datan lukemista | Toista sen jälkeiset tapahtumat soveltamatta niitä kahdesti |
Signaalimuisti jää helposti huomaamatta. Risteämällä kauppaa käyvä strategia voi tallentaa eilisen indikaattoriarvon havaitakseen uuden risteämän. Jos se käynnistyy tyhjällä arvolla, se voi tulkita jo olemassa olevan tilanteen uudeksi tapahtumaksi. Jäähdyttelyajassa on sama ongelma: uudelleenkäynnistys ei saa huomaamatta nollata sääntöä, jonka oli tarkoitus säilyä voimassa.
Miten palautuksesta tehdään toistettava?
Anna jokaiselle toimeksiannolle pysyvä client ID, joka johdetaan strategia-ajosta ja päätöksestä, josta se syntyi. Jos prosessi yrittää uudelleen aikakatkaisun jälkeen, se voi tarkistaa, loiko kyseinen päätös jo toimeksiannon, sen sijaan että lähettäisi kaksoiskappaleen. Kirjaa tilanmuutokset vasta, kun vastaava tilitapahtuma on vahvistettu, ja säilytä muutoksen selittävät toimeksianto- ja toteutustunnisteet.
Testaa sitten juuri se rajatapaus, joka aiheutti ongelman. Aja strategia päätöksen läpi, tallenna tila, pysäytä se ja palauta se paperitilin positioiden ja toimeksiantohistorian avulla. Vertaa seuraavaa päätöstä ja siitä syntyviä toimeksiantoja keskeytymättömään ajoon. Toista testi osittain toteutuneella toimeksiannolla sekä kaatumisella, joka tapahtuu lähettämisen ja kuittauksen välissä. Jatketun ajon ei pidä luoda uutta positiota tyhjästä eikä toistaa jo suoritettua toimintoa.
Pidä palautuslokia: viimeksi käsitelty tapahtuma, tilin tilannekuvan ajankohta, avointen toimeksiantojen tilat, palautettu strategian versio ja ensimmäinen uudelleenkäynnistyksen jälkeinen päätös. Näin ”prosessi käynnistyi taas” muuttuu tarkastettavaksi tiedoksi.
Mihin voit luottaa uudelleenkäynnistyksen jälkeen?
Luota prosessiin vasta, kun tilin ja strategian tila on täsmäytetty, odottavien toimeksiantojen tilat tunnetaan ja seuraava päätös vastaa sitä, mitä keskeytymättömältä ajolta odotat. Jos et pysty selittämään ristiriitaa, keskeytä toimeksiantojen lähettäminen paperitilille ja tutki tapahtumajälki. Käynnissä oleva prosessi ei todista, että strategian tila on palautunut.
Kaatumisesta löytyi jo jotain hyödyllistä: se paljasti oletuksen, jota normaalin ajon ei koskaan tarvinnut koetella. Kun teet uudelleenkäynnistyksestä toistettavan tilanteen, tiedät, mitä strategiasi muistaa, ennen kuin annat sen käydä taas kauppaa.
← Kaikki kirjoitukset


