Įprastas patarimas toks: jei norite sąžiningo atgalinio testavimo, gaukite tick duomenų. Manau, kad daugumai strategijų šis patarimas netinka, o jo laikantis atgalinio testavimo rezultatai paprastai būna prastesni, ne geresni. Ne todėl, kad tick duomenys netikslūs — tikslesnių duomenų nėra — o todėl, kad dauguma žmonių jų naudojimu raišką palaiko griežtumu, nors tai nėra tas pats.
Štai kaip tai nutinka. Tyrėjas sukuria strategiją pagal 1-minute žvakes ir gauna jam patinkantį Sharpe rodiklį. Tada kas nors — mentorius, forumo įrašas ar paties tyrėjo kirbanti abejonė — pasako, kad atgalinis testavimas nesąžiningas, nes paremtas žvakėmis. Taigi tyrėjas visą procesą perdaro naudodamas tick duomenis: kiekvieną sandorį, kiekvieną kotiruotės atnaujinimą, su mikrosekundžių tikslumo laiko žymomis. Atgalinis testavimas sulėtėja, kodas tampa tris kartus sudėtingesnis, o Sharpe rodiklis... beveik nepasikeičia arba pakinta taip, kad niekas negali paaiškinti kodėl. Vis tiek pradedama juo naudotis, nes tick duomenys atrodo griežtesni, o griežtumo įspūdis nėra tas pats, kas tikras griežtumas.
Ką iš tiesų suteikia tick duomenų raiška
Tick duomenys parodo kiekvieno sandorio seką ir kainą, o jei už tai mokate — ir kiekvieną pavedimų knygos atnaujinimą. Tai tikra informacija. Ji leidžia atkurti vietą eilėje, įvertinti įvykdymo tikimybę konkrečiame kainos lygyje ir pastebėti nepalankią atranką — ar rinka pajuda jums nepalankia kryptimi iškart po hipotetinio įvykdymo. Visa tai itin svarbu, jei jūsų pozicijos laikomos sekundes, o jūsų pranašumas matuojamas tick dalimis.
Tačiau dauguma strategijų, kurias matome Stratmill, ir dauguma strategijų, kurias iš tiesų taiko mažmeniniai bei pusiau profesionalūs tyrėjai, pozicijas laiko nuo minučių iki dienų. Esant tokiam laikotarpiui, atgalinio testavimo sąžiningumą lemia ne tai, ar sumodeliavote 40-ąjį sandorį konkrečią minutę. Lemiamas veiksnys — ar sumodeliavote spredą, finansavimo normą, praslydimo kreivę ir tai, kad jūsų limitinis pavedimas eilėje atsiduria už kitų pavedimų. Visus šiuos keturis dalykus galima neteisingai sumodeliuoti naudojant tick duomenis ir teisingai — naudojant 1-minute žvakes. Raiška ir sąžiningumas yra nepriklausomi dalykai.
Būtent pastarąjį skaičių žmonės nuvertina. Tick lygmens atgalinis testavimas nėra tiesiog „tas pats testavimas su daugiau eilučių“. Daugumoje biržų sandoriai gaunami ne ta tvarka, kuria rodo jų gavimo laiko žymos, vėliau pataisomi, paskirstomi keliems atitikimo variklio mazgams, o keliose mūsų duomenis pateikusiose platformose po prisijungimo atkūrimo kartais dubliuojami arba visai praleidžiami. Sukurti tick duomenų procesą, kuris iš tiesų būtų tikslesnis už gerai parengtą žvakių procesą, o ne vien detalesnis, yra rimtas sistemų inžinerijos projektas. Dauguma komandų jo nesiima. Jos pateikia tiekėjo tick failą atgalinio testavimo sistemai ir laiko darbą baigtu. Taip žinomų, dokumentuotų apytikslių reikšmių rinkinį (OHLCV) pakeičia nežinomas, nedokumentuotas rinkinys — tiekėjo tick duomenų sutikrinimo logika, kuri pasireiškia prastą dieną.
Triukšmas, kurį įsigyjate
Yra ir antroji sąnauda, labiau susijusi su statistika nei su inžinerija. Pavieniai sandoriai svyruoja tarp pirkimo ir pardavimo kainų — tai pirkimo ir pardavimo kainų svyravimas, rinkos mikrostruktūros literatūroje žinomas nuo 1980-ųjų. Jei jūsų signalas veikia greičiau nei per kelias sekundes, tick lygmens atgalinis testavimas gali sudaryti įspūdį, kad matote struktūrą, nors iš tiesų tai tėra šis svyravimas. Mačiau, kaip tyrėjas sandorių duomenyse atrado puikų grįžimo prie vidurkio dėsningumą, kuris išnyko vos duomenis sugrupavus net į 5-second žvakes, nes dėsningumas tebuvo kainų svyravimas.
Man pažįstamas quant — anksčiau dirbęs rinkos formuotoju, dabar valdantis nedidelį kriptovaliutų portfelį — taip man paaiškino: „Tick duomenys yra didinamasis stiklas. Nukreipkite jį į savo pranašumą — puiku. Nukreipkite į triukšmą ir šešis mėnesius tobulai modeliuosite triukšmą.“ Dabar beveik viską jis tikrina pagal 1-second arba 1-minute žvakes, o prie tick duomenų pereina tik norėdamas atsakyti į konkretų klausimą: „Ar šis limitinis pavedimas iš tiesų būtų įvykdytas?“ Tai įvykdymo tikimybės, o ne signalo klausimas.
Toks atskyrimas yra teisingas, ir dauguma tick duomenų šalininkų jį praleidžia. Sąžiningai naudoti tick duomenis reiškia ne jais vykdyti visą strategiją, o tikslingai atsakyti į vieną ar du klausimus, į kuriuos žvakių duomenys iš tiesų neatsako.
Kada kritikai teisūs
Vis dėlto yra strategijų, kurioms tick duomenys būtini, ir būtų perdėta teigti kitaip. Jei vykdote ką nors panašaus į rinkos formavimą — teikiate kotiruotes abiem kryptimis, valdote atsargas pagal kiekvieną tick ir stebite savo vietą eilėje konkrečiame kainos lygyje, — žvakių duomenys jūsų problemos apskritai neatspindi. Visa tokios strategijos ekonomika telpa vienos minutės viduje, o ne tarp minučių. Tas pats pasakytina apie arbitražą tarp platformų, jautrų delsai, kai klausimas tiesiog yra „kuris sandoris įvyko pirmas“, ir apie didelės apimties pasirinkimo sandorių rinkos formavimą, kai kelių šimtų milisekundžių nepalanki atranka po sandorio ir nulemia rezultatą. Tokiomis sąlygomis atgalinis testavimas pagal žvakes nėra supaprastinimas — tai kategorijos klaida: tikrinate ne mažesnės raiškos strategijos versiją, o kitą strategiją, kuri tik turi tą patį pavadinimą kaip tikroji.
| Strategijos laikotarpis | Ko neparodo žvakių duomenys | Ar būtini tick duomenys? |
|---|---|---|
| Rinkos formavimas / strategija pagal eilę | Įvykdymo tikimybė, nepalanki atranka, vieta eilėje | Taip — būtini |
| Delsa / arbitražas tarp platformų | Sandorių seka, kuri platforma pajudėjo pirma | Taip |
| Dienos momentumas, grįžimas prie vidurkio (minutės–valandos) | Įvykdymo laikas žvakės viduje, spredo sąnaudos | Tik įvykdymo tikimybės klausimui, ne signalui |
| Kelių dienų pozicijos, kryptinės pasirinkimo sandorių strategijos | Beveik nieko reikšmingo | Ne — žvakių duomenų pakanka, jie dažnai ir švaresni |
Taigi teiginys nėra „tick duomenys blogi“. Dažnai jų griebiamasi vengiant sunkesnio ir mažiau patrauklaus klausimo: ar mano sąnaudų modelis teisingas? Ar mano prielaida apie įvykdymą teisinga? Ar šis pavedimas iš tiesų būtų įvykdytas, ar tik darau prielaidą, kad jis įvykdytas kaina, kurios pavedimų knygoje iš tikrųjų nebuvo? Į šiuos klausimus galima atsakyti naudojant 1-minute ar net 1-second žvakes, jei sąžiningai įvertinate vietą eilėje ir spredą. Tick duomenys leidžia atsakyti tiksliau, tačiau inžinerijos sąnaudos išauga kelis kartus. Strategijoms, kurių išvada dėl to nesikeičia, tokio tikslumo nereikia. Papildomas pastangas skirkite ten, kur jų reikalauja strategijos laikotarpis, o kitur jų atsisakykite — taip mokslinių tyrimų komandai skirsite laiką naudingiau, nei automatiškai rinkdamiesi smulkiausio intervalo duomenis vien todėl, kad didesnė raiška atrodo griežtesnė.
← Visi įrašai


