Co je zpětné testování? Jak provést backtest kryptoobchodní strategie

>

Úvod do zpětného testování

Zpětné testování je matematická simulace, kterou obchodníci používají k hodnocení výkonnosti obchodní strategie. Simulace využívá historické údaje o trhu ve snaze vypočítat, jak dobře by si obchodní strategie v minulosti vedla.

Backtesting je v jádru způsob, jak se obchodníci mohou pokusit předpovědět, zda bude strategie zisková, nebo ne, pokud bude provedena se skutečným kapitálem. Obchodníci používají zpětné testování k odfiltrování jakékoli strategie, která nebyla historicky zisková.

Ačkoli historický výkon nezaručuje budoucí výsledky, zpětné testování je stále nejspolehlivějším způsobem, jak identifikovat silné strategie. Je nutné studovat tyto simulace a odfiltrovat strategie, které jasně nedosahují dobrých výsledků. Tímto způsobem máme největší šanci vydělat peníze a nemusíme testovat strategie se skutečnými prostředky.

Vzhledem k tomu, že nástroje pro obchodování s kryptoměnami se staly populárnějšími, stalo se i zpětné testování. Dnes se doporučuje, aby obchodníci důkladně otestovali každou strategii, než ji uvedou na divoký krypto trh. Tímto způsobem můžeme získat jistotu, že strategie má potenciál optimálně fungovat.

Backtestová studie pro vyvážení

Tato studie hodnotí účinnost různých strategií rebalancování za účelem stanovení nejlepších historických konfigurací.

Požadavky na zpětné testování údajů

Než můžeme zahájit strategie zpětného testování, musíme pochopit různé datové typy, které vývojáři používají k vytváření nástrojů pro zpětné testování, a jak každý z nich představuje trh v reálném světě.

Data svícen

Nejběžnějším způsobem implementace nástroje zpětného testování je, že vývojáři používají data svíček OHLCV. Většina vývojářů používá tato data proto, že jsou snadno dostupná.


Bohužel, i když se jedná o nejjednodušší přístup k datům pro vytváření těchto nástrojů, jde o nejspolehlivější data. Ve skutečnosti může být použití údajů o svíčkách OHLCV ke spuštění zpětných testů rozdílem mezi vytvořením ziskové strategie a ztrátou peněz.

Situace se ještě zhorší, když obchodníci používají agregovaná data ze svíček ze zdrojů, jako je CoinMarketCap. Agregovaná data nejsou platným vyjádřením skutečných objednávek, které byly v té době k dispozici na konkrétní burze.

Nepoužívejte data ze svíček k vytváření nástrojů pro zpětné testování.

Obchodní data Tick-by-Tick

Data obchodu klíště-k-klíště mohou být užitečnou komponentou pro historické nástroje zpětného testování. Jednotlivé obchody s tikety jsou přesné obchody, které byly provedeny na burze v každém okamžiku. Tyto jednotlivé obchody představují skutečné objednávky, které byly vyplněny, takže víme jistě, že na burze musel být za tuto cenu k dispozici otevřený příkaz.

Ačkoli mohou být údaje o obchodu s klíči silným aspektem služeb zpětného testování, budou stále jen o něco přesnější než údaje o svíčkách OHLCV. Jednotlivé datové body obchodu neposkytují informace o stavu knihy objednávek v době obchodu. Výsledkem je, že vývojáři nemohou přesně posoudit, jaké objednávky by byly k dispozici na burze v tom přesném okamžiku, kdy je proveden simulovaný obchod..

Používání obchodních údajů tick-by-tick pro nástroje zpětného testování se nedoporučuje.

Objednat data snímku knihy

Posledním typem dat, který je běžný v nástrojích pro zpětné testování, jsou snímky objednávkových knih. Snapshoty knihy objednávek poskytují přesný stav trhu v době snapshotu. Záměrem je mít úplné zastoupení toho, jaké objednávky byly k dispozici na burze v konkrétním čase.

Při vytváření nástrojů pro zpětné testování se jedná o nejvýkonnější typ dat, který lze použít. Protože data zahrnují přesné příkazy, které byly k dispozici v době simulace obchodu, můžeme vypočítat přesné obchody, které jsme mohli přijmout, a cenu každého z těchto obchodů.

Snímky objednávkových knih umožňují vývojářům simulovat dopad rozpětí nabídky a poptávky, skluzu a likvidity.

Jako datový typ pro nástroje zpětného testování se velmi doporučují snímky objednávkových knih.

Zdroje dat

Primárním zdrojem pro data knihy objednávek je každá jednotlivá krypto burza sama. Ve většině případů jsou tato data streamována živě prostřednictvím webových zásuvek burzy. Kvůli velkému objemu dat však burzy tato data dlouhodobě neukládají. To znamená, že jakmile jsou data odeslána prostřednictvím webové zásuvky burz, jsou navždy pryč.

Pokud ovšem někdo údaje z burzy neshromažďuje a nezpřístupňuje je prostřednictvím služby třetí strany. To je místo, kde poskytovatelé dat vstupují do obrazu. Poskytovatelé dat jsou v zásadě společnosti, které agregují data napříč každou burzou a ukládají je, aby k nim měli později přístup další lidé.

Poskytovatelé dat pro snímky knih historických objednávek jsou málo a daleko od sebe. Vzhledem k omezené nabídce těchto dat se vývojáři uchýlili k alternativním souborům dat, jako jsou svícny OHCLV, které mohou způsobit nepřesnosti pro zpětné testy. Výsledkem je, že většina nástrojů pro zpětné testování dostupných na dnešním trhu zkresluje výkon strategií.

Po nedávném partnerství mezi Krevety a Kaiko, Shrimpy je nyní schopen nabídnout kompletní historický katalog snímků objednávkových knih napříč každou významnou burzou. Kaiko se datuje již od roku 2014 a pečlivě shromažďuje údaje o obchodu tick-by-tick, snímky objednávkových knih a svícny OHLCV.

Vývojáři mají k těmto datům přístup prostřednictvím Shrimpy Developer API. Pomocí jednoduchého cenového modelu na vyžádání mohou zákazníci vyhledávat snímky v různých časových rámcích, obchodních párech a burzách..

Kaiko poskytuje nejpřesnější data na trhu. Nyní může každý vývojář přistupovat k datům Kaiko a přesně simulovat zpětné testy prostřednictvím rozhraní Shrimpy API.

Skripty Pythonu pro knihy historických objednávek

The Shrimpy Developer API poskytnout přístup k historickým burzovním objednávkovým knihám. Snímky každé knihy objednávek jsou pořizovány v intervalu 1 minuty. Za použití Shrimpy Python Library, uvedeme příklady toho, jak mohou vývojáři přistupovat k historickým datům pouze s několika řádky kódu.

Simulace zpětného testu

Obrázek 1: Příklad knihy objednávek pro obchodní pár ENJ-USDT.

Chcete-li přesně vypočítat, jak bude strategie fungovat, vyžaduje backtest co nejpřesnější čísla. Během backtestu je třeba vzít v úvahu některé faktory:

  • Poplatek za obchodování na burze

  • Rozpětí bid-ask pro obchodní pár

  • Skluz trhu na objednávce

  • Načasování pro každý jednotlivý obchod

Při simulaci nákupu aktiva musíme použít požadovanou cenu v knize objednávek. Pokud jste na burze, nejlepší požadovaná cena je nejnižší cena, kterou je kdokoli na burze ochoten aktivum prodat. Nezapomeňte také zohlednit obchodní poplatek a skluz.

Použijeme-li jako příklad knihu objednávek na obrázku 1, představme si, že chceme koupit ENJ v hodnotě 1 500 USD. Pro účely tohoto příkladu předpokládejme, že tato kniha objednávek je pro Binance, která má základní obchodní poplatek 0,1%.

Mohli bychom simulovat nákup ENJ v hodnotě 1500 USDT postupným zvyšováním ceny objednávky oproti knize objednávek, dokud nenakoupíme požadovanou částku ENJ v hodnotě 1500 USDT. Mezi po sobě jdoucí obchody, které bychom prováděli, patří následující:

  1. Kupte 1151,74904126 ENJ za 0,20559424 USDT za kus = 236,97296881 USDT + poplatky 0,2369729 USDT (zbývá 1262,79005829 USDT)

  2. Kupte 2559,954 ENJ za 0,20640294 USDT za kus = 528,38203186 USDT + 0,52838203 USDT na poplatcích (zbývá 733,8796444 USDT)

  3. Kupte 1992.51418976 ENJ za 0,20659518 USDT za kus = 411,64382769 USDT + 0,41164382 USDT na poplatcích (zbývá 321,82417288 USDT)

  4. Koupit 1555,85587451 ENJ za 0,20663894 USDT za kus = 321,50267164 USDT + 0,32150267 USDT na poplatcích (zbývá 0 USDT)

Všimněte si, že v knize objednávek zbyly nějaké, které jsme nemohli koupit za cenový bod 0.20663894. Částka, kterou jsme nekoupili, by zůstala na burze, kterou by si mohl vzít jiný účastník trhu.

Celkově jsme koupili přesně 7260.08410553 ENJ po dokončení všech obchodů. Pokud bychom použili pouze údaje o svíčkách OHLCV, náš odhad by byl pravděpodobně tak daleko jako 7319.76112984. To je téměř rozdíl 60 ENJ nebo téměř 1%. Možná se to nebude zdát hodně, ale toto malé procento se neuvěřitelně rychle spojuje, pokud simulujeme stovky nebo tisíce obchodů.

Po dokončení simulace obchodu zaznamenejte výsledky pokynu, abychom mohli tyto prostředky použít k obchodování s jiným aktivem později v backtestu. Pomocí tohoto podrobného obchodního záznamu můžeme vést pečlivé protokoly o každém obchodu, který byl proveden během backtestu. Tyto protokoly lze použít k výpočtu dalších statistik, jako je objem obchodování, který provádíme, kolik obchodů jsme provedli, a četnost nákupu nebo prodeje konkrétního aktiva.

Výsledky výkonu

Výpočet výkonu strategie je jednoduchý. Vše, co musíme udělat, je vypočítat hodnotu našeho portfolia na začátku backtestu a porovnat jej s hodnotou našeho portfolia na konci backtestu.

Hodnota portfolia se vypočítá vynásobením částky každého aktiva, které držíme, cenou daného aktiva a součtem hodnot všech aktiv v portfoliu.

Provedením tohoto výpočtu na začátku backtestu a ještě jednou na konci backtestu můžeme získat změnu hodnoty našeho portfolia v průběhu backtestu.

Výpočet výkonu lze provést pomocí rovnice:

Výkon = [(Vf – Vi) / Vi] x 100

Kde,

  • VF je konečná hodnota portfolia

  • Vi je počáteční hodnota portfolia

  • Vynásobte 100 převést z desetinného místa na procento

Všimněte si, že účelem backtestu není pouze optimalizace výkonu. V podstatě to, že konkrétní strategie funguje dobře i v backtestových podmínkách, automaticky neznamená, že je to dobrá strategie. Musíme také zvážit konzistenci a robustnost strategie.

Konzistence zpětného testování – Schopnost produkovat podobné výsledky za různá historická období a za různých tržních podmínek.

Backtest Robustnost – Schopnost produkovat podobné výsledky, i když jsou provedeny drobné změny parametrů strategie.

Strategie bez robustnosti může zaznamenat velké výkyvy výkonu, i když se v jejích parametrech provedou i ty nejmenší změny. Podobně strategie, která není konzistentní, pravděpodobně zažije při testování různých historických časových období výrazně odlišné výsledky.

V ideálním případě chceme použít strategii, která může být zpětně testována na jakékoli historické časové období a produkovat podobné výsledky. Stejně tak by výkon naší strategie neměl zaznamenat velké výkyvy, pokud ve strategii dojde k drobným změnám.

Strategie bez konzistence nebo robustnosti mohou vést k široce nepředvídatelnému budoucímu výkonu. Pokud zpětné testování různých historických časových období a konfigurací pro naši strategii přináší široce odlišné výsledky, mohlo by to znamenat, že naše strategie je nepředvídatelná. V takovém případě by výběr pouze jediné konfigurace nebo období zpětného testování k vyhodnocení v podstatě znamenalo přehodnocení strategie pro konkrétní situaci. Výsledky backtestu overfit by nebyly obecným vyjádřením strategie.

Příkladem konzistentní strategie, kterou jsme našli, je vyvážení. Ve velké většině případů vyvažování překonalo hodling. I když jsme upravili dobu rebalance z 1 hodiny na 1 den do 1 měsíce.

Backtest červené vlajky

Vzhledem k technické povaze zpětného testování je někdy obtížné určit, zda je zpětný test spolehlivý. Následující položky označené červenou značkou vám pomohou zjistit, zda jsou výsledky zpětného testu přiměřené. Toto není rozsáhlý seznam, ale některé z nejběžnějších případů.

  1. Výkon se zvyšuje po každém obchodu. Pokud se výkon neustále zvyšuje, zejména po každém obchodu, může to znamenat, že v obchodní logice došlo k chybě výpočtu.

  2. Konzistentní exponenciální růst fondů. Když výsledky výkonu backtestu v průběhu času exponenciálně rostou, může to často být výsledek použití svíček OHLCV pro obchodní simulace nebo ukazuje na chybu výpočtu, která je procentem.

  3. Strategie vysokofrekvenčního obchodování nesnižují hodnotu. Obecně platí, že strategie, která obchoduje se značnou částkou, ztratí hodnotu kvůli poplatkům za obchodování. Pokud strategie vysokofrekvenčního obchodování neztrácí hodnotu, nemusí backtest uvažovat o směnných poplatcích.

  4. Trhy s nízkou likviditou fungují stejně jako trhy s vysokou likviditou. Jednoduchým způsobem, jak zjistit, zda nástroj pro zpětné testování používá data svíček OHLCV nebo agregovaná data, je spuštění strategie na trhu s nízkou likviditou, který má obvykle velké rozpětí. Vysokofrekvenční obchodování na trhu s nízkou likviditou by mělo mít za následek velké ztráty portfolia.

  5. Změna burz nemá vliv na výsledky. Každá burza má jiné likvidní a obchodní poplatky. Při zpětném testování strategií na různých burzách byste měli dosáhnout různých výsledků. Pokud získáte stejné výsledky na různých burzách, naznačuje to, že nástroj zpětného testování používá agregovaná data a nepoužívá správný obchodní poplatek pro každou jednotlivou burzu.

Před přijetím výsledků backtestu v nominální hodnotě použijte tyto červené příznaky k identifikaci problémů se simulovanými obchody.

Závěry

V tomto článku bylo několik hlavních témat. Především jsme prokázali, jak obtížné může být vytvoření robustního nástroje pro zpětné testování. Zároveň jsme však dokázali ilustrovat důležitost zpětného testování strategie před jejím nasazením naživo.

Prvním krokem k vytvoření strategie zpětného testování bylo vždy mít vysoce kvalitní data. Bez vysoce kvalitních údajů o objednávce budou výsledky vysoce nepřesné. Rozhodování na základě vadných nástrojů zpětného testování může být nakonec nákladné. Může to způsobit, že budeme mít nerealistická očekávání od strategie, která pohltí naše portfolio.

Při vytváření nástroje pro zpětné testování nezapomeňte simulovat obchodní poplatky, skluz a rozpětí nabídky a poptávky. Každý z těchto aspektů backtestu může mít velký rozdíl. Odebrání co i jen jedné z těchto komponent ze zpětného testu může být rozdílem mezi ziskovou a nerentabilní strategií.

Nakonec před nasazením strategie založené na zpětných testech pokračujte v testování. Až si myslíte, že jste testování dokončili, otestujte to znovu. Místo 100 testů spusťte 100 000 testů. Zpětné testování je nejlepší způsob, jak pochopit chování strategie. Zkuste vytvořit nové hypotézy pro strategie a tyto hypotézy otestujte, abyste určili nové strategie. Pokračujte v experimentálním cyklu, dokud nenajdete strategie, které vám vyhovují.

KOPÍROVAT NEJLEPŠÍ OBCHODNÍKY NA SVĚTĚ

V současné době spravují své portfolio na Binance tisíce aktivních obchodníků. Tito obchodníci jsou jedny z nejpokročilejších obchodníků v oboru.

Další dobrá čtení

Jak si vyrobit kryptoobchodního robota pomocí Pythonu

Průvodce krypto půjčkami – srovnání nejlepších poskytovatelů

Skript pro živý tiket ceny bitcoinů (pomocí Websocků)

Vyrovnání prahové hodnoty pro správu kryptoportfolia

Co je to DeFi? Průvodce decentralizovaným financováním

Naše platforma pro sociální obchodování

Krevety je sociální obchodní platforma pro kryptoměnu. Je určen pro profesionální i začínající obchodníky, aby se dozvěděli o rostoucím krypto průmyslu. Na Shrimpy mohou uživatelé kopírovat portfolia a obchodní strategie jiných obchodníků.

Následuj nás na Cvrlikání a Facebook pro aktualizace a zeptejte se našich úžasných aktivních komunit na Telegram & Svár.

Díky za zastavení!

Shrimpy Team

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map