2026 m. spalio 6 d. · tyrimai

Kodėl mano atgalinis testas įvykdė sandorį kaina, kurios rinka niekada nerodė?

Kodėl mano atgalinis testas įvykdė sandorį kaina, kurios rinka niekada nerodė?

Atgalinio testavimo ataskaitoje gali būti nurodyta, kad sandoris įvykdytas kaina, kurios rinka niekada nerodė. Dažniausiai simuliatorius iš nepilnų duomenų išveda iš pažiūros tikėtiną vykdymo kainą: žvakės aukščiausią ar žemiausią kainą, vidurio kainą arba limitinę kainą, kurią pasiekė vienas sandoris. Dėl to sandorių žurnalas gali atrodyti tikslus, nors neatskleidžia, ką iš tiesų siūlė rinka.

Pirmiausia išsiaiškinkite, su kuria kaina jūsų pavedimas galėjo sąveikauti. Paskutinių sandorių kainomis paremta žvakė parodo, kokiomis kainomis buvo prekiaujama per intervalą. Ji nepasako, kokie buvo pirkimo ir pardavimo pasiūlymai, kai atėjo jūsų pavedimas, koks kiekis tuo metu buvo prieinamas ar ar jūsų pavedimas galėjo atsidurti eilės priekyje.

Kodėl mano atgaliniame teste rodomas įvykdymas už rinkos kainų ribų?

Pirmiausia tiksliai apibrėžkime, ką reiškia „už ribų“. Pirkimo sandorio įvykdymas žemiau žvakės žemiausios kainos arba pardavimo sandorio įvykdymas aukščiau jos aukščiausios kainos yra akivaizdi apskaitos ar laiko žymų klaida. Tačiau ir kaina žvakės aukščiausios bei žemiausios kainų intervale gali būti išgalvota: tuo momentu pavedimo dar galėjo nebūti, sandoris galėjo įvykti kitoje kainų skirtumo pusėje arba jo kiekio galėjo nepakakti jūsų pavedimui įvykdyti.

Tarkime, turime 1 minutės žvakę, kurios atidarymo kaina yra 100.00, žemiausia – 99.80, o uždarymo – 100.10. Jūsų strategija pamato užbaigtą žvakę, pateikia pirkimo pavedimą, o simuliatorius jį įvykdo kaina 99.80. Ši žemiausia kaina galėjo būti pasiekta pačioje minutės pradžioje, 50 sekundžių prieš signalą. Žvakė neįrodo, kad po sprendimo priėmimo buvo galima pirkti už 99.80.

Turimi duomenysKą jie patvirtinaKo jie nepatvirtina
OHLCV žvakėPer intervalą stebėtas sandorių kainų intervalas ir apimtisKainų seka, pirkimo ir pardavimo pasiūlymai arba prieinamumas, kai atėjo pavedimas
Sandorių įrašaiUžregistruoti įvykdyti sandoriai su laiko žymomis ir kainomisLaukiantis likvidumas arba jūsų vieta eilėje
Geriausios kainos kotiruotėsGeriausia rodoma pirkimo ir pardavimo kaina atrinktais momentaisGylis žemiau geriausio lygio arba tai, ar kotiruotė išliko tarp atrankos momentų
Pavedimų knygos įvykiaiRodomo gylio pokyčiai ir eilės įvykiai, atsižvelgiant į duomenų srauto aprėptįPaslėptas likvidumas, prieiga prie prekybos vietos arba garantuotas pirmumas

Kita dažna priežastis – painiojamos vidurio ir vykdytinos kainos. Jei kotiruotė yra 99.99 pirkimo pusėje ir 100.01 pardavimo pusėje, pirkimas už 100.00 vidurio kainą ataskaitoje atrodo tvarkingai. Rinkos kainą kertantis pirkimo pavedimas paprastai vykdomas pardavimo kaina, o dėl jo dydžio gali atsirasti ir poveikis rinkai. Laikant vidurio kainą sandorio įvykdymo kaina, tyliai panaikinama pusė kainų skirtumo.

Ar limitinis pavedimas gali būti įvykdytas vien todėl, kad rinka pasiekė jo kainą?

Kainos palietimas rodo, kad užregistruotas sandoris limitine kaina. Tačiau tai neįrodo, kad jūsų laukiantis pavedimas būtų buvęs įvykdytas. Jei prieš jus eilėje buvo kitų pavedimų, už tą kainą sudarytų sandorių apimties galėjo nepakakti jūsų vietai eilėje pasiekti. Be to, sandoris galėjo įvykti kitoje prekybos vietoje, o jūsų pavedimas laukti kitoje.

Tarkime, jūsų pirkimo limitas yra 50.00, o pateikus pavedimą rinka už šią kainą parduoda 200 akcijų. Kainos palietimu paremtas simuliatorius įvykdo visas 500 akcijų. Atsargesnis modelis klausia, kokia apimtis po pavedimo atėjimo buvo parduota už 50.00 ar mažesnę kainą, tada įvertina prieš jus eilėje buvusių pavedimų kiekį. Neturint pavedimų lygmens knygos duomenų, ši eilė yra prielaida. Ji turi būti aiškiai parodyta rezultatuose, o ne pateikta kaip tikras faktas.

Mažoje tyrimų sistemoje verčiau aiškiai įvardyčiau šią prielaidą ir išbandyčiau kelis scenarijus, o ne apsimesčiau, kad žvakių duomenys parodo pirmumą eilėje. Tinkamas intervalas priklauso nuo prekybos vietos, pavedimo dydžio ir strategijos sandorių dažnio. Rami akcija prekybos pradžioje ir mažo likvidumo kriptovaliutų kontraktas 03:00 UTC kelia skirtingų vykdymo iššūkių.

Kaip pasirinkti žvakių duomenims tinkamą vykdymo modelį?

Modelį derinkite ir prie turimų duomenų, ir prie strategijos teiginio. Žvakėmis paremtas atgalinis testavimas vis dar gali būti naudingas lėtoms strategijoms, tačiau vykdymo prielaidos turi atitikti tai, ką žvakės iš tiesų parodo.

  1. Nustatykite sprendimo ir pavedimo atėjimo laiką. Jei signalui naudojama žvakės uždarymo kaina, pavedimą pateikite jai užsidarius. Vykdymą modeliuokite pagal kitą pasiekiamą intervalą arba kotiruotę, o ne pagal anksčiau užbaigtoje žvakėje buvusią žemiausią kainą.
  2. Naudokite tinkamą kainų skirtumo pusę. Rinkos kainą kertantį pirkimo pavedimą pradėkite skaičiuoti nuo pardavimo kainos, o pardavimo pavedimą – nuo pirkimo kainos. Jei turite tik sandorių žvakes, įvertinkite kainų skirtumą iš atskiro šaltinio arba nurodykite, kad modelis į jį neatsižvelgia.
  3. Apribokite vykdymo kiekį pagal tikėtiną likvidumą. Taikykite dalyvavimo ribą pagal stebimą apimtį ir įtraukite komisinius bei poveikį rinkai. Bendra žvakės apimtis nereiškia, kad visas kiekis buvo prieinamas jūsų pasirinkta kaina.
  4. Išbandykite prielaidas nepalankiomis sąlygomis. Palyginkite vykdymą kitos žvakės atidarymo kaina, įtraukdami konservatyvų slydimą, ir patikrinkite, ar rezultatas išlieka blogesnio vykdymo atveju. Nereguliuokite vykdymo modelio tol, kol strategija nepradeda laimėti.

Tai yra modeliavimo pasirinkimai, o ne būdas iš nepilnų duomenų atkurti vienintelę tikrąją sandorio įvykdymo kainą. Jei strategija priklauso nuo kelių bazinių punktų uždirbimo, žvakių duomenų gali nepakakti tokiam teiginiui pagrįsti.

Kaip rasti, kur į atgalinį testą pateko neįmanomas sandorio įvykdymas?

Atsekite vieną įtartiną sandorį nuo signalo iki žurnalo įrašo. Atskiruose laukuose saugokite sprendimo laiko žymą, pavedimo pateikimo laiko žymą, simuliuotą atėjimo laiką, pasirinktą rinkos stebėjimą, įvykdymo kainą, įvykdytą kiekį ir komisinį mokestį. Tada paeiliui patikrinkite:

Jei iš sandorio įrašo negalite atsakyti į šiuos klausimus, atgaliniam testavimui trūksta vykdymo įrodymų. Pridėkite šiuos laukus, rankiniu būdu atkurkite kelis sandorius pagal neapdorotus duomenis ir patikrinkite, ar nurodytas vykdymas galėjo įvykti pagal jūsų numatytą modelį. Net ir ideali kapitalo kreivė neatskleis kainos, kuri egzistavo tik simuliatoriuje.

atgalinis testavimasrinkos duomenysvykdymasduomenų inžinerija
← Visi įrašai