Što je Backtesting? Kako ponovo testirati strategiju kripto trgovanja

>

Uvod u Backtesting

Backtesting je matematička simulacija koju trgovci koriste za procjenu izvedbe strategije trgovanja. Simulacija koristi povijesne tržišne podatke u pokušaju da izračuna koliko bi dobro mogla biti strategija trgovanja u prošlosti.

U svojoj osnovi, backtesting je način da trgovci pokušaju predvidjeti hoće li neka strategija biti profitabilna ako se provodi stvarnim kapitalom. Trgovci koriste povratno testiranje kako bi filtrirali bilo koju strategiju koja u prošlosti nije bila isplativa.

Iako povijesne performanse ne jamče buduće rezultate, backtesting je i dalje najpouzdaniji način za prepoznavanje robusnih strategija. Neophodno je proučiti ove simulacije kako bi se filtrirale strategije koje očito imaju lošu izvedbu. Na taj način imamo najbolje šanse za zaraditi novac i ne trebamo testirati strategije stvarnim sredstvima.

Kako su alati za trgovanje kriptovalutama postali popularniji, tako je to učinio i backtesting. Danas se preporučuje da trgovci temeljito testiraju svaku strategiju prije puštanja na divlje kripto tržište. Na taj način možemo steći uvjerenje da strategija ima potencijal za optimalno izvođenje.

Backtest studija za rebalans

Ova studija procjenjuje učinkovitost različitih strategija rebalansa kako bi se utvrdile najbolje povijesne konfiguracije.

Zahtjevi podataka za povratno testiranje

Prije nego što započnemo strategije ponovnog testiranja, moramo razumjeti različite vrste podataka koje programeri koriste za izradu alata za povratno testiranje i kako svaki od njih predstavlja tržište iz stvarnog svijeta.

Podaci o svijećnjacima

Najčešći način implementacije alata za povratno testiranje je da programeri koriste podatke svijećnjaka OHLCV. Razlog zašto većina programera koristi ove podatke je taj što su lako dostupni.


Nažalost, iako je to najjednostavniji pristup podacima za izgradnju ovih alata, to su najnepouzdaniji podaci. Zapravo, korištenje podataka o svijećnjacima OHLCV za pokretanje povratnih testova može biti razlika između stvaranja profitabilne strategije i gubitka novca.

Situacija se još pogoršava kada trgovci koriste agregirane podatke o svijećnjacima iz izvora poput CoinMarketCap. Zbirni podaci nisu valjani prikaz stvarnih narudžbi koje su u to vrijeme bile dostupne na određenoj burzi.

Ne koristite podatke svijeća za izradu alata za povratno testiranje.

Podaci o trgovanju od tiketa do tika

Podaci o trgovanju tik-tik mogu biti korisna komponenta za povijesne alate za povratno testiranje. Pojedinačna trgovanja tikovima točno su trgovanja koja su izvršena na burzi u svakom trenutku. Ove pojedinačne trgovine predstavljaju stvarne narudžbe koje su ispunjene, pa sa sigurnošću znamo da je na burzi morao postojati otvoreni nalog po toj cijeni.

Iako podaci o trgovanju krpeljima mogu biti moćan aspekt usluga testiranja unatrag, i dalje će biti samo malo precizniji od podataka o svijećnjacima OHLCV. Pojedinačne točke podataka o trgovini ne pružaju informacije o stanju knjige narudžbi u trenutku trgovine. Kao rezultat toga, programeri ne mogu točno procijeniti koje bi narudžbe bile dostupne na burzi u točnom trenutku kada se izvrši simulirana trgovina.

Ne preporučuje se korištenje podataka o trgovanju tik-po-tik za alate za povratno testiranje.

Podaci o snimci knjige narudžbi

Posljednja vrsta podataka koja je česta u alatima za povratno testiranje su snimke knjiga narudžbi. Snimke knjiga narudžbi pružaju točno stanje na tržištu u trenutku snimke. Namjera je imati potpunu zastupljenost narudžbi dostupnih na burzi u određeno vrijeme.

Prilikom izrade alata za povratno testiranje ovo je najsnažnija vrsta podataka koja se koristi. Budući da podaci uključuju precizne narudžbe koje su bile dostupne u vrijeme simulacije trgovine, možemo izračunati točne transakcije koje smo mogli poduzeti i cijenu svakog od tih poslova.

Snimke knjiga narudžbi omogućavaju programerima da simuliraju utjecaj širenja ponuda, proklizavanja i likvidnosti.

Snimke knjiga narudžbi toplo se preporučuju kao vrsta podataka za alate za povratno testiranje.

Izvori podataka

Primarni izvor podataka iz knjige narudžbi je svaka pojedinačna kripto razmjena. U većini slučajeva ti se podaci uživo emitiraju putem web-utičnica razmjene. Međutim, zbog velikog broja podataka, razmjene obično ne pohranjuju te podatke dugoročno. To znači da nakon što se podaci pošalju putem internetske razmjene, oni zauvijek nestaju.

Osim ako, naravno, netko ne prikupi podatke s razmjene i ne učini ih dostupnima putem usluge treće strane. Ovdje pružatelji podataka ulaze u sliku. Davatelji podataka u osnovi su tvrtke koje agregiraju podatke u svakoj razmjeni i pohranjuju ih tako da im drugi mogu kasnije pristupiti.

Davatelji podataka za povijesne snimke knjiga narudžbi su malobrojni. Zbog ograničene ponude ovih podataka, programeri su pribjegli alternativnim skupovima podataka, poput OHCLV svijećnjaka, koji mogu uzrokovati netočnosti za backtestove. Kao rezultat toga, većina alata za testiranje unatrag dostupnih na tržištu danas lažno predstavlja izvedbu strategija.

Nakon nedavnog partnerstva između Škampi i Kaiko, Shrimpy sada može ponuditi cjeloviti povijesni katalog snimaka knjiga narudžbi na svim većim burzama. Još od 2014. godine, Kaiko je pedantno prikupljao podatke o trgovanju tik-po-tik, snimke knjiga narudžbi i svijećnjake OHLCV.

Programeri mogu pristupiti tim podacima putem API-ji za Shrimpy Developer. Koristeći jednostavan model određivanja cijena na zahtjev, kupci mogu tražiti snimke u različitim vremenskim okvirima, trgujući parovima i razmjenama.

Kaiko pruža najpreciznije podatke na tržištu. Sada svaki programer može pristupiti Kaikovim podacima kako bi točno simulirao povratne testove putem Shrimpy API-ja.

Python skripte za knjige povijesnog poretka

The API-ji za Shrimpy Developer omogućiti pristup povijesnim knjigama naloga o razmjeni. Snimke svake knjige narudžbi izrađuju se u intervalu od 1 minute. Koristiti Knjižnica Shrimpy Python, pružit ćemo primjere kako programeri mogu pristupiti povijesnim podacima sa samo nekoliko redaka koda.

Simulacija povratnog testa

Slika 1: Primjer knjige narudžbi za trgovinski par ENJ-USDT.

Za precizno izračunavanje izvedbe strategije, backtest zahtijeva najtočnije moguće brojeve. Neki čimbenici koji se moraju uzeti u obzir tijekom povratnog testa uključuju:

  • Naknada za trgovanje na burzi

  • Raspon ponude i traženja za trgovinski par

  • Tržišno klizanje na knjizi narudžbi

  • Vrijeme za svaku pojedinu trgovinu

Kada simuliramo kupnju sredstva, moramo koristiti traženu cijenu u knjizi naloga. Ako ste na burzi, najbolja tražena cijena je najniža cijena koju je netko na burzi spreman prodati sredstvo. Ne zaboravite uzeti u obzir i naknadu za trgovanje i klizanje.

Koristeći knjigu narudžbi na slici 1 kao primjer, zamislimo da želimo kupiti ENJ u vrijednosti od 1.500 USD. Za potrebe ovog primjera, pretpostavimo da je ova knjiga narudžbi za Binance, koji ima osnovnu naknadu za trgovanje od 0,1%.

Mogli bismo simulirati kupnju ENJ-a u vrijednosti od 1.500 USD postupnim povećanjem cijene narudžbe u odnosu na knjigu narudžbi dok ne kupimo željeni iznos od ENJ-a u vrijednosti od 1.500 USD. Uzastopni poslovi koje bismo izvršili uključuju sljedeće:

  1. Kupite 1151,74904126 ENJ po 0,20559424 USDT po komadu = 236,97296881 USDT + 0,2369729 USDT u naknadama (preostalo 1262,79005829 USDT)

  2. Kupite 2559.954 ENJ po 0,20640294 USDT po komadu = 528,38203186 USDT + 0,52838203 USDT u naknadama (preostalo 733,8796444 USDT)

  3. Kupite 1992.51418976 ENJ po 0,20659518 USDT po komadu = 411,64382769 USDT + 0,41164382 USDT u naknadama (preostalo 321,82417288 USDT)

  4. Kupite 1555,85587451 ENJ po 0,20663894 USDT po komadu = 321,50267164 USDT + 0,32150267 USDT u naknadama (preostalo 0 USDT)

Primijetite da je na knjizi narudžbi ostalo nešto što nismo mogli kupiti po cijeni od 0.20663894. Iznos koji nismo kupili ostao bi na burzi da ga uzme drugi sudionik na tržištu.

Ukupno smo kupili točno 7260.08410553 ENJ nakon što su sve trgovine završene. Da smo koristili samo podatke o svijećnjacima OHLCV, naša bi procjena vjerojatno bila toliko udaljena 7319,76112984. Ovo je razlika od gotovo 60 ENJ ili gotovo 1%. Možda se ne čini puno, ali ovaj se mali postotak nevjerojatno brzo spoji ako simuliramo stotine ili tisuće obrta.

Kada je simulacija trgovine dovršena, zabilježite rezultate naloga kako bismo mogli koristiti ta sredstva za trgovanje drugim sredstvom kasnije u backtestu. Korištenjem ovog detaljnog zapisa trgovine možemo voditi precizne zapisnike svake trgovine obavljene tijekom backtest-a. Ti se zapisnici mogu koristiti za izračunavanje dodatnih statistika poput volumena trgovanja koji izvršavamo, broja trgovina koje smo obavili i učestalosti kupnje ili prodaje određenog sredstva.

Rezultati izvedbe

Izračun izvedbe strategije je jednostavan. Sve što trebamo je izračunati vrijednost našeg portfelja na početku backtest-a i usporediti ga s vrijednošću našeg portfelja na kraju backtest-a.

Vrijednost portfelja izračunava se množenjem iznosa svake imovine koju posjedujemo s cijenom te imovine i zbrajanjem vrijednosti sve imovine u portfelju.

Radeći ovaj izračun na početku backtesta i još jednom na kraju backtesta, možemo dobiti promjenu vrijednosti našeg portfelja tijekom backtesta.

Izračun izvedbe tada se može izvršiti pomoću jednadžbe:

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

Gdje,

  • Vf je konačna vrijednost portfelja

  • Vi je početna vrijednost portfelja

  • Pomnoži sa 100 pretvoriti iz decimalnog u postotak

Primijetite da svrha povratnog testa nije samo optimizacija za izvedbu. U osnovi, samo zato što određena strategija dobro funkcionira u uvjetima backtest-a, to ne znači automatski da je dobra strategija. Također moramo uzeti u obzir dosljednost i robusnost strategije.

Backtesting dosljednost – Sposobnost postizanja sličnih rezultata tijekom različitih povijesnih razdoblja i različitih tržišnih uvjeta.

Robusnost backtest-a – Sposobnost postizanja sličnih rezultata čak i kad se u parametre strategije unesu manje promjene.

Strategija bez robusnosti može zabilježiti velike promjene u izvedbi kada se u parametre strategije unesu i najmanje promjene. Slično tome, strategija koja nije dosljedna vjerojatno će doživjeti znatno drugačije rezultate prilikom testiranja različitih povijesnih vremenskih razdoblja.

U idealnom slučaju želimo koristiti strategiju koja se može ponovno testirati u bilo kojem povijesnom vremenskom razdoblju i dati slične rezultate. Isto tako, izvedba naše strategije ne bi trebala doživjeti velike promjene kad se u strategiju unesu manje promjene.

Strategije bez dosljednosti ili robusnosti mogu dovesti do široko nepredvidljivih budućih performansi. Ako povratno testiranje različitih povijesnih vremenskih razdoblja i konfiguracija za našu strategiju daje vrlo različite rezultate, to bi moglo ukazivati ​​na to da je naša strategija nepredvidljiva. U tom bi slučaju odabir samo jedne konfiguracije ili razdoblja testiranja za procjenu u osnovi bio pretjerano prilagođavanje strategije određenoj situaciji. Rezultati pretjeranog backtest-a ne bi bili općeniti prikaz strategije.

Primjer dosljedne strategije koju smo pronašli je rebalans. U velikoj većini slučajeva rebalans je nadmašio hodling. Čak i kada smo prilagodili razdoblje rebalansa s 1 sata na 1 dan do 1 mjesec.

Backtest crvene zastave

Zbog tehničke prirode backtestinga, ponekad je teško utvrditi je li backtest pouzdan. Sljedeće crvene zastavice pomoći će vam prepoznati jesu li rezultati backtest-a razumni. Ovo nije opsežan popis, već neki od najčešćih slučajeva.

  1. Izvedba se povećava nakon svake trgovine. Ako se izvedba neprestano povećava, posebno nakon svake trgovine, to može ukazivati ​​na pogrešku izračuna u logici trgovanja.

  2. Dosljedni eksponencijalni rast sredstava. Kada rezultati performansi backtest-a eksponencijalno rastu s vremenom, to često može biti rezultat korištenja OHLCV svijećnjaka za trgovinske simulacije ili ukazuje na pogrešku izračuna koja je postotna.

  3. Visokofrekventne strategije trgovanja ne smanjuju vrijednost. Općenito, strategija koja trguje značajnim iznosom izgubit će vrijednost zbog naknada za trgovanje. Ako strategija trgovanja visokim frekvencijama ne izgubi na vrijednosti, backtest možda neće uzeti u obzir naknade za zamjenu.

  4. Tržišta s niskom likvidnošću rade isto kao i tržišta s visokom likvidnošću. Jednostavan način da se otkrije koristi li alat za testiranje unatrag podatke o svijećnjacima OHLCV ili agregirane podatke jest pokretanje strategije na tržištu s niskom likvidnošću koje obično ima veliko širenje. Visokofrekventno trgovanje na tržištu s niskom likvidnošću trebalo bi rezultirati velikim gubicima portfelja.

  5. Promjena razmjena ne utječe na rezultate. Svaka burza ima različite likvidnosti i naknade za trgovanje. Prilikom ponovnog testiranja strategija na različitim burzama trebali biste postići različite rezultate. Ako na različitim burzama dobijete iste rezultate, to sugerira da alat za povratno testiranje koristi agregirane podatke i ne koristi ispravnu naknadu za trgovanje za svaku pojedinu burzu.

Prije nego što prihvatite rezultate backtest-a po nominalnoj vrijednosti, upotrijebite ove crvene zastavice za identificiranje problema sa simuliranim trgovinama.

Zaključci

Kroz ovaj članak bilo je nekoliko glavnih tema. Prvenstveno smo pokazali koliko teško može biti izgradnja robusnog alata za povratno testiranje. Međutim, istodobno smo uspjeli ilustrirati važnost povratnog testiranja strategije prije njezinog postavljanja uživo.

Prvi korak za izgradnju strategije backtestinga uvijek je bio posjedovanje visokokvalitetnih podataka. Bez visokokvalitetnih podataka iz knjige narudžbi, rezultati će biti vrlo netočni. U konačnici, donošenje odluka na temelju neispravnih alata za povratno testiranje može biti skupo. To može dovesti do toga da imamo nerealna očekivanja od strategije koja izjeda naš portfelj.

Kada gradite alat za povratno testiranje, ne zaboravite simulirati naknade za trgovanje, klizanje i širenje ponude i traženja. Svaki od ovih aspekata backtest-a može napraviti veliku razliku. Uklanjanje čak i jedne od ovih komponenti iz backtest-a može biti razlika između profitabilne i nerentabilne strategije.

Napokon, prije primjene strategije koja se temelji na backtestovima, nastavite s testiranjem. Kada mislite da ste završili s testiranjem, testirajte ponovo. Umjesto 100 testova, pokrenite 100 000 testova. Provjera unatrag je najbolji način da shvatimo ponašanje strategije. Pokušajte oblikovati nove hipoteze za strategije i testirati te hipoteze kako biste identificirali nove strategije. Nastavite s eksperimentalnim ciklusom dok ne pronađete strategije koje vam odgovaraju.

KOPIRAJTE NAJBOLJE TRGOVCE NA SVIJETU

Trenutno na tisuće aktivnih trgovaca upravlja svojim portfeljem na Binanceu. Ovi trgovci su neki od najnaprednijih trgovaca u industriji.

Dodatna dobra čitanja

Kako napraviti bota za kripto trgovanje pomoću Pythona

Vodič za kripto zajmove – uspoređeni vodeći zajmodavci

Skripta za Bitcoin Price Live Ticker (pomoću web-utičnica)

Rebalans praga za upravljanje kripto portfeljem

Što je DeFi? Vodič za decentralizirane financije

Naša platforma za socijalno trgovanje

Škampi je platforma za društveno trgovanje kriptovalutama. Dizajniran je kako za profesionalne trgovce, tako i za početnike kako bi došli i naučili o rastućoj kripto industriji. Na Shrimpyju korisnici mogu kopirati portfelje i strategije trgovanja drugih trgovaca.

Pratite nas na Cvrkut i Facebook za ažuriranja i postavljajte bilo kakva pitanja našim nevjerojatnim, aktivnim zajednicama na Telegram & Nesloga.

Hvala što ste navratili!

Tim Shrimpy

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