Kas yra „Backtesting“? Kaip patikrinti kriptografinės prekybos strategiją

>

„Backtesting“ įvadas

„Backtesting“ yra matematinis modeliavimas, kurį prekybininkai naudoja prekybos strategijos rezultatams įvertinti. Modeliavimas panaudoja istorinius rinkos duomenis, bandydamas apskaičiuoti, kaip gerai būtų pasisekę prekybos strategijai praeityje.

Savo esme „backtesting“ yra būdas prekybininkams pabandyti numatyti, ar strategija bus pelninga įgyvendinant realų kapitalą. Prekybininkai naudoja atgalinį bandymą, kad išfiltruotų bet kokią strategiją, kuri istoriškai nebuvo pelninga.

Nors istoriniai rezultatai negarantuoja būsimų rezultatų, vis dėlto patikimas būdas vis dar yra patikimiausias būdas nustatyti patikimas strategijas. Būtina ištirti šias simuliacijas, kad būtų galima išfiltruoti strategijas, kurios aiškiai neveikia. Tokiu būdu turime geriausias galimybes užsidirbti pinigų ir nereikia tikrinti strategijų iš tikrų lėšų.

Kai prekybos kriptovaliuta priemonės tampa vis populiaresnės, tai įvyko ir atgaliniu testavimu. Šiandien prekybininkams rekomenduojama kruopščiai patikrinti kiekvieną strategiją, prieš ją išleidžiant į laukinės kriptografijos rinką. Tokiu būdu galime įgyti pasitikėjimo, kad strategija gali veikti optimaliai.

Atgalinio balansavimo tyrimas

Šis tyrimas įvertina įvairių pusiausvyros strategijų efektyvumą siekiant nustatyti istoriškai geriausias konfigūracijas.

Duomenų reikalavimai prieš bandymą

Kad galėtume pradėti tikrinti strategijas, turime suprasti skirtingus duomenų tipus, kuriuos kūrėjai naudoja kurdami pakartotinio testavimo įrankius, ir kaip jie kiekvienas reprezentuoja realaus pasaulio rinką.

Žvakidės duomenys

Dažniausias atgalinio testavimo įrankio įdiegimo būdas yra kūrėjų naudoti OHLCV žvakidės duomenis. Daugelis kūrėjų naudoja šiuos duomenis dėl to, kad jie lengvai prieinami.

Deja, nors kuriant šiuos įrankius lengviausia pasiekti duomenis, jie yra nepatikimiausi duomenys. Tiesą sakant, naudojant OHLCV žvakidės duomenis bandymams atlikti, gali būti skirtumas tarp pelningos strategijos kūrimo ir pinigų praradimo..

Padėtis dar blogesnė, kai prekybininkai naudoja apibendrintus žvakidžių duomenis iš tokių šaltinių kaip „CoinMarketCap“. Apibendrinti duomenys nėra tinkamas faktinių užsakymų, kurie tuo metu buvo prieinami konkrečioje biržoje, atvaizdavimas.

Nenaudokite žvakidės duomenų kurdami atgalinio tikrinimo įrankius.

Prekybos duomenys „Tick-by-Tick“

Prekybos „varnelė pagal varnelę“ duomenys gali būti naudinga sudarant istorinius patikrinimo įrankius. Individualūs erkių sandoriai yra tikslūs sandoriai, kurie buvo įvykdyti biržoje kiekvieną akimirką. Šie individualūs sandoriai reiškia tikrus užsakymus, kurie buvo užpildyti, todėl tikrai žinome, kad biržoje turėjo būti laisvas pavedimas už tą kainą.

Nors prekyba erkėmis gali būti galingas aspektų tikrinimo paslaugų aspektas, jie vis tiek bus tik šiek tiek tikslesni nei OHLCV žvakidės duomenys. Atskiri prekybos duomenys nepateikia informacijos apie užsakymų knygos būklę prekybos metu. Todėl kūrėjai negali tiksliai įvertinti, kokie pavedimai būtų buvę prieinami biržoje būtent tuo momentu, kai vykdoma imituota prekyba..

Nerekomenduojama naudoti patikrinimo pagal varneles prekybos duomenų tikrinimo įrankiuose.

Užsakymų knygos momentinių duomenų duomenys

Paskutinis duomenų tipas, paplitęs atliekant bandymo įrankius, yra užsakymų knygos momentinės nuotraukos. Užsakymų knygos momentinės nuotraukos pateikia tikslią rinkos būklę momentinės nuotraukos metu. Siekiama, kad būtų išsamiai pavaizduota, kokie pavedimai tam tikru metu buvo prieinami biržoje.

Kuriant pakartotinio testavimo įrankius, tai yra pats galingiausias duomenų tipas. Kadangi duomenys apima tikslius užsakymus, kurie buvo prieinami tuo metu, kai buvo imituojamas sandoris, galime apskaičiuoti tikslius sandorius, kuriuos galėtume atlikti, ir kiekvieno iš šių sandorių kainą.

Užsakymų knygos momentinės kopijos leidžia kūrėjams imituoti „bid-ask“ skirtumo, paslydimo ir likvidumo poveikį.

Užsakymų knygos momentinės nuotraukos yra labai rekomenduojamos kaip duomenų testavimo įrankių duomenų tipas.

Duomenų šaltinis

Pagrindinis užsakymų knygos duomenų šaltinis yra kiekvienas atskiras kriptografinis mainas. Daugeliu atvejų šie duomenys tiesiogiai transliuojami per biržos interneto lizdus. Tačiau dėl didžiulio duomenų kiekio mainai paprastai nesaugo šių duomenų ilgą laiką. Tai reiškia, kad kai duomenys bus išsiųsti per mainų tinklo lizdą, jie praeis visam laikui.

Nebent, žinoma, kažkas renka duomenis iš mainų ir suteikia jiems galimybę naudotis per trečiosios šalies paslaugą. Čia duomenų teikėjai įveda paveikslėlį. Duomenų teikėjai iš esmės yra įmonės, kurios kaupia duomenis kiekvienoje biržoje ir saugo juos, kad kiti žmonės galėtų prie jų prisijungti vėliau.

Istorinių užsakymų knygos momentinių vaizdų duomenų teikėjų yra nedaug. Dėl riboto šių duomenų kiekio kūrėjai pasirinko alternatyvius duomenų rinkinius, tokius kaip OHCLV žvakidės, kurie gali sukelti netikrumų atliekant bandymus. Todėl dauguma šiandien rinkoje galimų testavimo priemonių neteisingai atspindi strategijų našumą.

Po neseniai įvykusios partnerystės Krevetės ir Kaiko, „Shrimpy“ dabar gali pasiūlyti išsamų istorinį užsakymų knygos momentinių nuotraukų katalogą kiekvienoje didesnėje biržoje. Dar 2014 m. „Kaiko“ kruopščiai rinko prekybos su erkėmis duomenis, užsakymų knygos momentines nuotraukas ir OHLCV žvakides..

Kūrėjai gali prieiti prie šių duomenų per „Shrimpy“ kūrėjų API. Naudodami paprastą kainų pagal pareikalavimą modelį, klientai gali pateikti užklausas dėl momentinių nuotraukų per skirtingus laikotarpius, prekybos poras ir mainus..

„Kaiko“ pateikia tiksliausius duomenis rinkoje. Dabar kiekvienas kūrėjas gali pasiekti „Kaiko“ duomenis, kad galėtų tiksliai imituoti atgalinius bandymus per „Shrimpy“ API.

Istorinių užsakymų knygų „Python“ scenarijai

„Shrimpy“ kūrėjų API suteikti prieigą prie istorinių mainų užsakymų knygų. Kiekvienos užsakymų knygos momentinės nuotraukos daromos 1 minutės intervalu. Naudojant „Shrimpy Python“ biblioteka, pateiksime pavyzdžių, kaip kūrėjai gali pasiekti istorinius duomenis naudodami tik kelias kodo eilutes.

Imituoti atgalinį testą

1 paveikslas: ENJ-USDT prekybos poros pavedimų knygos pavyzdys.

Norint tiksliai apskaičiuoti, kaip strategija veiks, norint atlikti backtestą, reikia kuo tikslesnių skaičių. Kai kurie veiksniai, į kuriuos reikia atsižvelgti atliekant bandymą, yra šie:

  • Biržos prekybos mokestis

  • Prekybos poros „bid-ask“ skirtumas

  • Rinkos slydimas užsakymų knygoje

  • Kiekvienos atskiros prekybos laikas

Imituodami turto pirkimą, turime naudoti užsakymo knygoje nurodytą kainą. Jei esate biržoje, geriausia prašoma kaina yra mažiausia kaina, kurią visi biržoje nori parduoti turtą. Nepamirškite atsižvelgti ir į prekybos mokestį bei paslydimą.

Kaip pavyzdį naudodami 1 paveiksle pateiktą užsakymų knygą, įsivaizduokime, kad norime įsigyti 1500 USDT vertės ENJ. Tarkime, kad šis pavyzdys yra skirtas „Binance“, kurio bazinis prekybos mokestis yra 0,1%.

Mes galėtume imituoti 1500 USDT vertės ENJ pirkimą, palaipsniui padidindami savo užsakymo kainą, palyginti su užsakymų knyga, kol įsigysime norimą 1500 USDT vertės ENJ sumą. Tarpusavio prekyba, kurią vykdytume, apima:

  1. Pirkite 1151,74904126 ENJ už 0,20559424 USDT kiekvienas = 236,97296881 USDT + 0,2369729 USDT mokesčiais (liko 1262,79005829 USDT)

  2. Pirkite 2559.954 ENJ po 0,20640294 USDT = 528,38203186 USDT + 0,52838203 USDT mokesčiais (liko 733,8796444 USDT)

  3. Pirkite 1992,51418976 ENJ po 0,20659518 USDT = 411.64382769 USDT + 0.41164382 USDT mokesčiais (liko 321.82417288 USDT)

  4. Pirkite 1555,85587451 ENJ po 0,20663894 USDT kiekvienas = 321,50267164 USDT + 0,32150267 USDT mokesčiais (liko 0 USDT)

Atkreipkite dėmesį, kad užsakymų knygoje liko keletas prekių, kurių negalėjome nusipirkti 0.20663894 kainų tašku. Suma, kurios nepirkome, liks biržoje, kad galėtų pasiimti kitas rinkos dalyvis.

Iš viso pirkome tiksliai 7260.08410553 ENJ baigus visus sandorius. Jei būtume naudoję tik OHLCV žvakidės duomenis, mūsų įvertinimas greičiausiai būtų buvęs toli 7319.76112984. Tai beveik skirtumas 60 ENJ arba beveik 1%. Tai gali atrodyti nedaug, tačiau šis nedidelis procentas susidaro neįtikėtinai greitai, jei imituojame šimtus ar tūkstančius sandorių.

Užbaigus prekybos modeliavimą, užfiksuokite užsakymo rezultatus, kad vėliau galėtume naudoti šias lėšas prekybai kitu turtu. Naudodami šį išsamų prekybos įrašą, mes galime kruopščiai registruoti kiekvieną sandorį, kuris buvo atliktas atliekant patikrinimą. Šie žurnalai gali būti naudojami apskaičiuojant papildomą statistiką, pvz., Prekybos apimtį, kurią vykdome, kiek sandorių atlikome ir konkretaus turto pirkimo ar pardavimo dažnumą..

Veiklos rezultatai

Apskaičiuoti strategijos našumą yra paprasta. Viskas, ką mums reikia padaryti, tai apskaičiuoti savo portfelio vertę bandymo pradžioje ir palyginti ją su mūsų portfelio verte bandymo pabaigoje..

Portfelio vertė apskaičiuojama kiekvieno turimo turto sumą padauginus iš to turto kainos ir sumuojant viso portfelio turto vertes.

Atlikdami šį skaičiavimą atgalinio bandymo pradžioje ir dar kartą atlikdami patikrinimą, galime gauti savo portfelio vertės pokytį atliekant patikrinimą..

Apskaičiuoti našumą galima tada naudojant lygtį:

Spektaklis = [(Vf – Vi) / Vi] x 100

Kur,

  • Vf yra galutinė portfelio vertė

  • Vi yra pradinė portfelio vertė

  • Padauginkite iš 100 konvertuoti iš dešimtainio į procentą

Atkreipkite dėmesį, kad atsarginio testo tikslas nėra tik optimizuoti našumą. Iš esmės, vien dėl to, kad konkreti strategija gerai veikia backtest sąlygomis, tai dar nereiškia, kad tai gera strategija. Taip pat turime atsižvelgti į strategijos nuoseklumą ir tvirtumą.

Atliekant nuoseklumo bandymą – Gebėjimas pasiekti panašių rezultatų įvairiais istoriniais laikotarpiais ir skirtingomis rinkos sąlygomis.

„Backtest“ tvirtumas – Gebėjimas gauti panašius rezultatus, net jei yra nedideli strategijos parametrų pakeitimai.

Strategija be tvirtumo gali matyti didelius veiklos pokyčius, kai strategijos parametruose atliekami net mažiausi pakeitimai. Panašiai ir nenuosekli strategija tikriausiai patirs labai skirtingus rezultatus, išbandant skirtingus istorinius laikotarpius.

Idealiu atveju norime naudoti strategiją, kuri gali būti patikrinta bet kuriuo istoriniu laikotarpiu ir duos panašius rezultatus. Panašiai ir mūsų strategijos našumas neturėtų patirti didelių svyravimų, kai strategijoje daromi nedideli pakeitimai.

Strategijos be nuoseklumo ir tvirtumo gali lemti nenuspėjamą būsimą rezultatą. Jei patikrinus įvairius istorinius laikotarpius ir mūsų strategijos konfigūracijas gaunami labai skirtingi rezultatai, tai gali reikšti, kad mūsų strategija yra nenuspėjama. Tokiu atveju pasirinkus tik vieną konfigūraciją ar atgalinio bandymo periodą vertinimui iš esmės būtų per daug pritaikyta strategija konkrečioje situacijoje. „Overfit backtest“ rezultatai nebūtų bendras strategijos atspindys.

Mūsų nustatytos nuoseklios strategijos pavyzdys yra pusiausvyros pusiausvyra. Daugeliu atvejų pusiausvyros atstatymas pralenkė naikinimą. Net tada, kai pusiausvyros periodą koregavome nuo 1 valandos iki 1 dienos iki 1 mėnesio.

„Backtest“ raudonos vėliavos

Dėl techninio grįžtamojo bandymo pobūdžio kartais sunku nustatyti, ar patikrinimas yra patikimas. Šie raudonos vėliavos elementai padės jums nustatyti, ar atgalinio bandymo rezultatai yra pagrįsti. Tai nėra išsamus sąrašas, tačiau keletas dažniausiai pasitaikančių atvejų.

  1. Našumas didėja po kiekvienos prekybos. Jei rezultatai nuolat didėja, ypač po kiekvieno sandorio, tai gali reikšti, kad prekybos logikoje yra skaičiavimo klaida.

  2. Nuoseklus eksponentinis fondų augimas. Kai bandymo metu našumo rezultatai laikui bėgant auga eksponentiškai, tai dažnai gali būti rezultatas naudojant OHLCV žvakides prekybos modeliavimams arba nurodant skaičiavimo klaidą, kuri yra procentinė.

  3. Aukšto dažnio prekybos strategijos nesumažėja vertės. Apskritai strategija, prekiaujanti didele suma, praranda vertę dėl prekybos mokesčių. Jei aukšto dažnio prekybos strategija nepraranda vertės, gali būti, kad atliekant bandymą nesvarstomi keitimo mokesčiai.

  4. Mažo likvidumo rinkos veikia taip pat, kaip ir didelio likvidumo rinkos. Paprastas būdas nustatyti, ar patikrinimo įrankis naudoja OHLCV žvakidės duomenis arba suvestinius duomenis, yra strategijos vykdymas mažo likvidumo rinkoje, kuri paprastai turi didelį skirtumą. Aukšto dažnio prekyba mažo likvidumo rinkoje turėtų sukelti didelius portfelio nuostolius.

  5. Mainų keitimas neturi įtakos rezultatams. Kiekvienoje biržoje yra skirtingi likvidumo ir prekybos mokesčiai. Testuodami strategijas skirtingose ​​biržose, turėtumėte gauti skirtingus rezultatus. Jei gaunate tuos pačius rezultatus skirtingose ​​biržose, tai rodo, kad patikrinimo įrankis naudoja apibendrintus duomenis ir nenaudoja teisingo kiekvienos biržos prekybos mokesčio..

Prieš priimdami atgalinio testo rezultatus nominalia verte, naudokite šias raudonas vėliavas, kad nustatytumėte imituotų sandorių problemas.

Išvados

Šiame straipsnyje buvo kelios pagrindinės temos. Pirmiausia mes pademonstravome, kaip sunku gali būti sukurti patikimą patikrinimo įrankį. Tačiau tuo pačiu metu mes galėjome parodyti strategijos patikrinimo prieš pradedant strategiją gyvai svarbą..

Pirmasis žingsnis kuriant grįžtamojo testavimo strategiją visada buvo turėti aukštos kokybės duomenis. Neturint aukštos kokybės užsakymų knygos duomenų, rezultatai bus labai netikslūs. Galų gale, brangiai kainuoja sprendimų priėmimas pagal ydingus patikrinimo įrankius. Tai gali sukelti mums nerealius lūkesčius dėl strategijos, kuri suvalgo mūsų portfelį.

Kurdami „backtesting“ įrankį, nepamirškite imituoti prekybos mokesčių, slydimo ir „bid-ask“ skirtumų. Kiekvienas iš šių „backtest“ aspektų gali labai pakeisti. Pašalinus net vieną iš šių komponentų iš „backtest“, gali būti skirtumas tarp pelningos ir nepelningos strategijos.

Galiausiai, prieš diegdami strategiją, pagrįstą backtestais, tęskite bandymus. Kai manote, kad baigėte testuoti, išbandykite dar kartą. Vietoj 100 bandymų atlikite 100 000 testų. „Backtesting“ yra geriausias būdas suprasti strategijos elgesį. Pabandykite suformuoti naujas strategijų hipotezes ir išbandykite šias hipotezes, kad nustatytumėte naujas strategijas. Tęskite eksperimentų ciklą, kol rasite jums tinkamas strategijas.

Nukopijuokite geriausius pasaulio prekybininkus

Šiuo metu yra tūkstančiai aktyvių prekybininkų, valdančių savo portfelį „Binance“. Šie prekybininkai yra vieni pažangiausių prekybininkų pramonėje.

Papildomi geri skaitiniai

Kaip sukurti „Crypto Trading Bot“ naudojant „Python“

Kriptografinių paskolų vadovas – palyginus geriausius skolintojus

„Bitcoin Price Live Ticker“ scenarijus (naudojant „Websockets“)

Kryptinio portfelio valdymo slenkstinis balansavimas

Kas yra „DeFi“? Decentralizuotų finansų vadovas

Mūsų socialinės prekybos platforma

Krevetės yra kriptovaliutų socialinė prekybos platforma. Jis skirtas tiek profesionaliems, tiek pradedantiems prekybininkams ateiti ir sužinoti apie augančią kriptografijos pramonę. „Shrimpy“ vartotojai gali nukopijuoti kitų prekybininkų portfelius ir prekybos strategijas.

Sekite mus „Twitter“ ir Facebook jei norite sužinoti naujienas ir užduokite klausimų mūsų nuostabioms, aktyvioms bendruomenėms Telegrama & Nesantaika.

Ačiū, kad užsukote!

Krevečių komanda

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me