Plkst. 10:14 UTC vienkārša izrāviena stratēģija nopirka kripto mūžīgo nākotnes līgumu pēc tam, kad cena pārsniedza 20 minūšu maksimumu. Atpakaļtests uzrādīja izpildi par $64,210. Šis skaitlis bija datu kopā, signālam bija pareizs laika zīmogs, un simulētais rīkojums pienāca nākamajā joslā. Mēs gandrīz nosaucām to par tīru rezultātu.
Tad salīdzinājām instrumentu ID. Signāls nāca no BTCUSDT mūžīgā nākotnes līguma. Izpilde — no BTCUSD apgrieztā līguma. Abi tirgojās ap $64,210, un abiem bija likvīdi tirgi. Tomēr tās bija atšķirīgas rīkojumu grāmatas ar atšķirīgām cenām, minimālajiem cenu soļiem, dziļumu un komisiju likmēm. Atpakaļtests bija salicis kopā tirgu, kuram neviens tirgotājs nevarēja piekļūt.
Pati stratēģija bija parasta: ieiet, kad slēgšanas cena pārsniedz mainīgo maksimumu, iziet, kad slēgšanas cena nokrītas zem mainīgā minimuma, un katrai pozīcijai noteikt vienādu fiksētu dolāru risku. Problēma atklājās tikai tad, kad uzdevām precīzāku jautājumu nekā “cik vērts bija BTC?”. Mēs jautājām: “Ko šis rīkojums šajā konkrētajā līgumā tajā brīdī būtu varējis nopirkt?”
Diagramma bija salikta no vairākiem tirgiem vēl pirms stratēģija tika palaista
Mūsu izpētes plūsma ļāva ērti salīdzināt tirdzniecības vietas. Tā normalizēja simbolus un attēloja apvienotu cenu rindu. Tirgus apskatei tas bija noderīgi, taču izpildes atsaucei — nepiemēroti. Apvienotā rindā var būt redzama labākā cena starp biržām, lai gan stratēģija var nosūtīt rīkojumu tikai uz vienu tirdzniecības vietu.
Izrāviena brīdī apvienotās joslas maksimums bija $64,205. Izvēlētā līguma pēdējā darījuma cena jau bija pakāpusies līdz $64,218. Tikmēr kešotā apgrieztā līguma kotācijā joprojām bija redzama pārdošanas cena $64,210. Simulators izmantoja izrāvienu no vienas rindas un izdevīgo pārdošanas cenu no citas. Katra vērtība bija īsta. To kombinācija bija izdomāta.
| Ievade | Ko izmantoja atpakaļtests | Kas bija vajadzīgs rīkojumam |
|---|---|---|
| Izrāviena maksimums | Apvienotā BTC cena | Izvēlētā līguma cenu vēsture |
| Ieejas atsauces cena | Kešota apgrieztā līguma pārdošanas cena | Aktuālā pārdodamā instrumenta pārdošanas cena |
| Izpildes apjoms | Pieprasītais pozīcijas apjoms | Katrā cenu līmenī pieejamais apjoms |
Viena rinda tirgus datu tabulā var šķist pilnīga, lai gan tās lauki raksturo dažādus tirgus. Simbola aizstājvārds nepierāda, ka diviem instrumentiem ir kopīga rīkojumu grāmata. Līguma ID, tirdzniecības vietai, kotācijas valūtai un laika zīmogam jāsaglabājas kopā, ģenerējot signālu un izpildot rīkojumu.
Mēs izspēlējām rīkojumu pret rīkojumu grāmatu
Atkārtoti pārbaudījām ieeju, izmantojot izvēlētā mūžīgā nākotnes līguma labāko pārdošanas cenu un lēmuma pieņemšanas brīdī pieejamos rīkojumu grāmatas atjauninājumus. Kotācija bija aktuāla, taču augstākajā līmenī bija tikai 0.18 BTC. Mūsu simulētais rīkojums bija 0.50 BTC. Atlikušie 0.32 BTC būtu izpildīti pret augstāka līmeņa pārdošanas cenām.
Pielāgotā ieejas cena bija par $21 par BTC sliktāka nekā uzrādītā izpildes cena, vēl neskaitot komisijas. Atsevišķā darījumā tā ir neliela starpība. Tomēr visa testa laikā lielāko daļu bruto peļņas stratēģija guva no dažiem straujiem izrāvieniem. Atkārtoti izspēlējot šīs ieejas pret pareizajām rīkojumu grāmatām, bruto rezultāts saruka par 31%; komisijas par taker darījumiem un cenu ietekme to samazināja vēl vairāk.
Mēs atradām arī 2 gadījumus, kad augstākā pirkšanas un pārdošanas līmeņa kotācija pienāca pēc signāla lēmuma pieņemšanas laika. Atpakaļtests, kas pievieno datus pēc tuvākā laika zīmoga, var nepamanīti izvēlēties nākotnes atjauninājumu. Tagad savienojam datus, virzoties atpakaļ laikā: kotācijai jābūt novērotai līdz brīdim, kad rīkojums tika nosūtīts, un mēs reģistrējam tās vecumu. Ja jaunākā izmantojamā kotācija ir pārāk veca, simulators atzīmē rīkojumu kā neizpildāmu vai piemēro skaidri noteiktu novecojušu datu apstrādes kārtulu.
Kas nepieciešams, lai cena būtu tirgojama
Joslas slēgšanas cena noder signāla aprēķināšanai. Tā nepierāda, ka konkrēto rīkojumu varētu izpildīt par šo cenu. Lai to noteiktu, cenai jāattiecas uz precīzo instrumentu un tirdzniecības vietu, jābūt pieejamai rīkojuma pienākšanas brīdī un jāpiedāvā pietiekams pretējā virziena apjoms pieprasītajam daudzumam. Ja dati neļauj atbildēt uz šiem jautājumiem, godīgs rezultāts ir cenu diapazons vai neizpildīts rīkojums, nevis izdomāta precīza cena.
Apvienoto cenu rindu paturējām tirgus kontekstam un izņēmām no izpildes plūsmas. Tagad signāli izmanto izvēlētā līguma cenu vēsturi, bet rīkojumi tiek atkārtoti izspēlēti pret šī līguma rīkojumu grāmatu; komisijas un apjomu ņemam vērā pēc izpildes aprēķina. Mazliet vairāk savienojumu, un krietni mazāk glaimojoša kapitāla līkne.
Šis izrāviens patiešām notika. Atpakaļtests tam vienkārši piešķīra labāku tirgu nekā tas, ko stratēģija bija izvēlējusies.
← Visi raksti


