2026. gada 28. oktobris · opcijas

Signāls bija pareizs. Mūsu opciju atpakaļtests nopirka nepareizo termiņu.

Signāls bija pareizs. Mūsu opciju atpakaļtests nopirka nepareizo termiņu.

Otrdien plkst. 10:07 mūsu izpētes aģents pamanīja īstermiņā kāpjošu situāciju indeksu ETF. Pamatā esošais signāls bija parasts: cena bija atguvusi savu 20 joslu vidējo vērtību, realizētā svārstība mazinājās, un nākamajā sesijā bija plānots makroekonomikas ziņojums. Ierosinātais darījums bija pirkšanas spredu kombinācija ar aptuveni divām nedēļām līdz termiņa beigām.

Atpakaļtestam tas patika. Papīra stratēģija šo darījumu neveica. Salīdzinot rīkojumus, redzējām, ka signālu laika zīmogi sakrita un pamatā esošo aktīvu cenas atšķīrās tikai par dažiem centiem. Līgumi gan bija atšķirīgi: atpakaļtests bija nopircis piektdienas termiņa līgumu, kas vēsturiskajā ķēdē izskatījās vislabākais; papīra process izvēlējās nākamo sarakstā iekļauto termiņu, kas bija pēc nedēļas.

Šo atšķirību radīja kalendāra tabulu apvienošana. Mēs bijām uztvēruši “dienas līdz termiņa beigām” kā datuma īpašību un pēc tam izvēlējušies līgumu, kura termiņš bija vistuvāk mērķa datumam. Vēsturiskajos datos termiņu kalendārā bija iekļauts nedēļas termiņa līgums, kas tika pievienots pēc pārbaudāmā datuma. Atpakaļtests bija izmantojis nākotnē pieejamu līgumu, un tas izskatījās pēc nekaitīga ērtības risinājuma.

Vispirms mums radās aizdomas par laika joslas kļūdu. Opciju termiņi ir īpaši piemēroti šādu kļūdu radīšanai: tirgus sesija beidzas Ņujorkā, biržu laika zīmogus var glabāt UTC formātā, un pusnakts datums var nobīdīties, ja to datu apstrādes plūsmā nepiesardzīgi pārveido. Mēs pārbaudījām. Laika zīmogi bija pareizi. Vienkārši šis līgums tajā otrdienā vēl neietilpa vēsturiskajā kopā.

Tā bija pirmā atziņa: vēsturiskai opciju ķēdei vajadzīgs sarakstā iekļauto līgumu kopums konkrētajā laika brīdī. Līguma termiņa datums norāda, kad tas beidzas. Tas nepasaka, kad līgums tika iekļauts sarakstā, kad to varēja sākt tirgot vai vai sistēma to tajā brīdī būtu varējusi izvēlēties.

Mēs pārveidojām izvēles soli, balstoties uz informāciju, kas bija pieejama lēmuma laika zīmogā. Katram kandidātlīgumam pieprasījām, lai tā iekļaušanas sarakstā laika zīmogs nebūtu vēlāks par lēmuma brīdi, kotējums būtu derīgs un nepārsniegtu mūsu svaiguma slieksni, kā arī būtu tirgus sesija, kurā stratēģija varētu iesniegt rīkojumu. Mēs arī saglabājām kandidātu kopu pirms sarindošanas. Šī pēdējā daļa bija svarīga, jo vecajā atpakaļtestā tika saglabāts tikai uzvarētājs; mēs nevarējām pateikt, vai tas salīdzināja piecus piemērotus līgumus vai nemanāmi izvēlējās no kalendāra, kas vēl nebija pieejams.

10:07signāla lēmuma laiks
1 nedēļatermiņa neatbilstība
0izvēlētajam līgumam tobrīd pieejamo vēsturisko ierakstu

Tālāk mēs pārbaudījām spredu cenas noteikšanai izmantoto kotējumu. Atpakaļtests bija ņēmis katra pirkšanas un pārdošanas līguma pēdējo kotējumu atsevišķi. Pirkšanas līguma pārdošanas cena bija no plkst. 10:06:58; īsās pozīcijas pirkšanas cena bija no plkst. 10:04:11. Saskaņā ar plašo datu politiku abi kotējumi tehniski bija pietiekami neseni, taču starp tiem tirgus bija mainījies. Spredu vidējā cena, kas aprēķināta no nesinhronizētiem līgumiem, var raksturot tirgu, kāds nekad nav pastāvējis.

Mēs mainījām kotējumu noteikumu, pieprasot, lai abu līgumu laika zīmogi atšķirtos ne vairāk kā par 2 sekundēm, un noraidot šķērstirgus kotējumus vai tirgus bez redzamā apjoma. Tādējādi samazinājās izmantojamo vēsturisko novērojumu skaits. Taču atlikušie novērtējumi kļuva ticamāki. Ja sinhronizēta kotējuma nebija, mēs atzīmējām kandidātu kā nepieejamu, nevis aizpildījām iztrūkumu ar novecojušu cenu.

Tad pienāca kārta sarindošanas noteikumam. Aģents bija izvēlējies termiņu ar zemākajām kotētajām spreda izmaksām. Tas izklausās saprātīgi, līdz spredu var izpildīt tikai par vienu līgumu un kotējums ir novecojis. Mēs skaidri definējām mērķi: maksimizēt sagaidāmo peļņu uz noteikta riska vienību starp līgumiem, kas atbilst minimālajam kotētajam apjomam, svaiguma un iekļaušanas sarakstā prasībām. Šajā piemērā tuvākajam piemērotajam termiņam kotētā starpība starp abiem līgumiem bija $0.42, bet vēlākajam termiņam tā bija $0.31. Šķietami lētākajā variantā īsās pozīcijas līguma pusē bija redzams tikai 1 līgums.

KandidātsVai termiņš tobrīd bija pieejams?Kotējuma vecumsRedzamais īsās pozīcijas līguma apjomsLēmums
Piektdienas nedēļas termiņšNēNav piemērojamsNav piemērojamsIzslēgt
Nākamā piektdienaJā1,4 sekundes18 līgumiPiemērots
Trešā piektdienaJā9,8 sekundes1 līgumsIzslēgt kā novecojušu un ar mazu apjomu

Mēs atkārtojām šo gadījumu, izmantojot jaunos noteikumus. Atpakaļtests tagad izvēlējās to pašu termiņu, ko papīra process, un reģistrēja, kāpēc pārējie līgumi tika noraidīti. Iegūtā spredu darījuma sākuma cena bija par $0.11 sliktāka nekā sākotnējā vēsturiskā izpildes cena. Tas nenozīmēja, ka stratēģijai nav vērtības; tas nozīmēja, ka vecajā veiktspējas rādītājā bija iekļauta tāda darījuma izvēle, ko reāllaika process nevarēja atkārtot.

Viena neliela neērtība: biržu simbolu formāti liek termiņa kļūdām izskatīties pēc datu kvalitātes problēmām. Mēs atradām datu piegādātāja nedēļas termiņa kodu, kas no mēneša termiņa koda atšķīrās par vienu rakstzīmi. Audita žurnālos es joprojām glabāju neapstrādāto simbolu līdzās normalizētajai līguma atslēgai. Tas nav eleganti, taču ir pasargājis mūs no pārliekas uzticēšanās kārtīgai tabulu apvienošanai.

Ja veidojat opciju atpakaļtestu, saglabājiet pilnu kandidātu kopu katrā lēmuma brīdī, kā arī katra līguma iekļaušanas sarakstā statusu, kotējumu laika zīmogus, apjomus un noraidīšanas iemeslus. Pēc tam padariet līgumu izvēli par deterministisku funkciju no šī momentuzņēmuma. Termiņa izvēle ir daļa no stratēģijas. Ja atpakaļtests redz līgumu, kas papīra procesam nebija pieejams, signālu salīdzināšana sākas jau pēc tam, kad atbilde ir mainījusies.

opciju atpakaļtestēšanatermiņa izvēledati konkrētajā laika brīdīizpildes modelēšana
← Visi raksti