Ez a cikk egy visszatesztelési csomagot mutat be számunkra Munkaasztal eszköz. A Workbench segítségével a felhasználók gyorsan összehasonlíthatják a meglévő mérőszámokat, alkalmazhatnak képleteket, és új egyéni mutatókat vezethetnek le. Bemutatjuk, hogyan lehet kereskedési stratégiákat meghatározni a Workbench-en belül, és hogyan futtatható az ilyen öndefiniált kereskedési stratégiák történeti adatokon történő szimulációja.
Bevezetés
A legszűkebb definíció szerint a visszateszt egy történelmi szimuláció annak a befektetési stratégiának a teljesítményéről, amely egy elmúlt időszakban futott volna. A stratégia olyan szabályok összessége, amelyek meghatározzák, hogy egy eszközt mikor kell megvásárolni és eladni. A befektetési stratégia ábrázolásának gyakorlati módja egy ún kereskedési jel. A kereskedési szignál az idő valós értékű függvénye, amely a [0, 1] tartományban vagy ennek megfelelően 0-100% közötti értékeket ad vissza. A kereskedési jel határozza meg, hogy a kereskedési portfólióból mennyit kell az alapul szolgáló eszközbe fektetni minden egyes alkalommal. Például a HODL-stratégia 1-es állandó jellel van ábrázolva; befektetési tőkénk 100%-át bitcoinban tartjuk az idő múlásával. A haladó kereskedők számára egy eszköz short pozícióját negatív kereskedési jel képviseli: a -1 jel a befektetési portfólió 100%-át kitevő short pozíciót jelenti. A rövid pozíciókat is beleértve, a kereskedési jel érvényes tartománya [-1, 1]-ig terjed.
Meg kell érteni azonban, hogy a visszateszt soha nem esik egybe egy kereskedési stratégia élő teljesítményével. A visszatesztelés legnagyobb buktatója a hátsó teszt túlillesztése. A stratégia paramétereinek a legjobb múltbeli teljesítmény (mintán belüli) hangolása valószínűleg csökkenti a stratégia általánosságát, és ezáltal csökkenti a jövőbeli teljesítményt (mintán kívüli). De sok nehézség még akkor is fennáll, ha figyelembe vesszük a hátsó teszt túlillesztését (amennyire csak lehetséges). Luo et al. a „Seven Sins of Quantitative Investing” (Luo et al. [2014]) cikkükben összefoglalják a gyakori visszaellenőrzési hibákat. A visszatesztelés nem kutatási eszköz, és nem alkalmas kereskedési stratégiák levezetésére. Ez csupán a kutatási folyamat utolsó lépéseként szolgál egy befektetési hipotézis végső teszteléséhez és esetleges érvénytelenítéséhez.
Tekintse meg a Visszatesztelés működését a videós útmutatóban
The Backtesting Suite
Mielőtt megvizsgálnánk néhány konkrét példát, megbeszéljük a kereskedési stratégiák meghatározásának és a múltbeli szimulációjuknak az általános vázlatát. Visszateszt futtatása Workbench mindig ugyanazt az eljárást követi:
- A kereskedési stratégiát olyan kereskedési jellé kell lefordítani, amely minden egyes időponthoz nulla és egy közötti értéket rendel. Rövidítsük le a kereskedési jelet ezzel
f1
. - Hívja az új Workbench-et
backtest
funkció:
backtest(m1, f1, since, initial_capital_usd, rel_trading_costs)
Nézzük meg, mit jelentenek az egyes érvek:
m1
: a kereskedni kívánt ársorozat (pl. BTC).f1
: a kereskedési jel az első lépéstől.since
: időbélyeg, amely jelzi a kereskedési szimuláció kezdő dátumát, pl."2020-01-01"
initial_capital_usd
: mennyi pénzt (USD) szán a kereskedési stratégiájára, pl.1000
(USADOLLÁR). Idővel a szimulált kereskedési portfólióba nem áramlik be vagy onnan további tőke. Ez ellentétben áll például a dollárköltség átlagolási stratégiájával. Ehelyett a kereskedési szimuláció a kereskedési jeltől függően idővel változtatja a kereskedett eszköz kitettségét.rel_trading_costs
: a várható relatív kereskedési költségek közelítése, amely tőzsdei díjakból és csúszásból áll. Egy érték pl.0.001
az egyes ügyletek volumenének 0.1%-át kitevő kereskedési költségekre vonatkozik.
A backtest
függvény egy úgynevezett nettó eszközérték (NAV) görbét generál. Ez a portfólió időbeli értékét mutatja (USD-ban). Portfóliója mindenkor USD és BTC keverékéből áll. A kereskedési jel határozza meg, hogy a portfólió melyik részét fektetik be BTC-be, a fennmaradó rész (egy mínusz kereskedési jel) pedig a portfólió USD-komponensét jelenti. A NAV azonban mindig a portfólió USD-ben denominált teljes értékét jelenti.
A szakértőknek: a motorháztető alatt a backtest
függvény megszorozza az előző napi kereskedési jelet a mögöttes eszköz (napi) hozamával (m1
, pl. BTC) minden napra, figyelembe véve a jelváltozások kereskedési költségeit. Az eredményül kapott hozamsorozatot ezután összesítik, és a kezdeti befektetéssel és a szimuláció kezdő dátumával korrigálják.
Példák
A dokumentum hátralévő részében bemutatunk néhány játékpéldát a kereskedési stratégiák meghatározásához és a megfelelő visszatesztek futtatásához. Különösen a legalapvetőbb stratégiával fogunk kezdeni: vásárolni és megtartani. Ezek után nézünk egy szabványos műszaki mutatót, az egyszerű mozgóátlagos keresztezést. Végül egy érdekesebb példában merülünk el; a SOPR on-chain metrikáján alapuló kereskedési hipotézist tesztelünk.
0. példa: HODL
Kezdjük a Bitcoin legalapvetőbb és méltán legnépszerűbb kereskedési stratégiájával: a hodling-el. Képzeld el, hogy van egy összegű készpénzed, amit bitcoinba akartál fektetni. A legegyszerűbb módja az, hogy veszel bitcoint, és soha nem adsz el. Ez alapul szolgál majd a többi stratégiával való összehasonlításhoz. A következőkben ezt az alapvető befektetési stratégiát alkalmazzuk a Workbench backtest létrehozásának első példájaként.
Előkészítettük a Munkaasztal előre beállított ez jelenti a HODL stratégia kereskedési jelét és visszatesztjét az Ön számára.
Ott meghatároztuk a kereskedési stratégiát HODL jel képletben f1
as m1/m1
, Ahol m1
a BTC ára. Így a kereskedési jel időben állandó eggyel. A jel meghatározásakor nem kell aggódnia a szimuláció kezdő dátuma miatt; ez jön a következő lépésben.
Képlet f2
amely címkével van ellátva HODL visszateszt [USD] tartalmazza a backtest függvény hívását:
backtest(m1, f1, "2020-01-01", 1000, 0.001)
A fenti paraméterek határozzák meg az elfogadandó visszateszt-szimulációt m1
mint a mögöttes kereskedési eszköz (BTC) és f1
mint kereskedési jel, kezdve "2020-01-01"
1000 dolláros kezdeti portfólióértékkel és 0.1%-os kereskedési költséggel. Ezzel lezárult az első visszatesztünk! Az alábbiakban egy diagramon látható a stratégia eredményeként kapott NAV-görbe (a jelöléssel: HODL visszateszt [USD]) és az állandó kereskedési jel HODL jel. Befektetése teljes megtérülését úgy tudja leolvasni, ha összehasonlítja a NAV grafikon legkésőbbi időpontban érvényes értékét a kezdő dátummal.
Összefoglalva: szimuláltuk, hogy 1000. január 1-jén 2020 dollár értékű BTC-t vásároltunk, és az ezt követő gyémántkezek a mai napig megmaradtak.
1. példa: Egyszerű mozgóátlag keresztezés
Azért jött, hogy megismerje az utólagos tesztelést. Így jó esély van rá, hogy a hodlingon túli kereskedési stratégiákat is meg akarja vizsgálni. Stratégiák, amelyek szisztematikus módszert jelentenek egy eszköz vásárlására és eladására. Térjünk rá.
Az egyszerű mozgóátlag (SMA) keresztezés az első példa a szisztematikus kereskedési stratégiára. Ez a népszerű trendkövető mutató két SMA-ból áll, különböző időszakokkal (pl. 20 nap és 50 nap). A motiváció a következő: ha az árfolyam emelkedő trendben van, akkor az ár SMA-ja is minden időszakra emelkedik. Konstrukciója alapján azonban a rövidebb periódusú SMA gyorsabban reagál egy feltörekvő emelkedő trendre, mint a hosszabb időtartamú SMA. Ezzel eljutunk a kereskedési szabályainkhoz:
- Amikor a rövidebb SMA a hosszabb SMA felett van, azt állítjuk, hogy bullish trendben vagyunk, és bitcoint vásárolunk és tartunk, azaz a kereskedési jelzés egy vagy 100%-on van.
- Ellenkező esetben (a rövidebb SMA a hosszabb SMA alatt van), adj el bitcoint és tarts készpénzt. A megfelelő kereskedési jel nulla.
Pusztán a szemléltetés kedvéért nézzünk meg gyorsan egy Python-stílusú pszeudokódot a kereskedési szabályok formalizálásához:
# SMA cross-over trading rules:
if sma20 > sma50: signal = 1
else: signal = 0
Ha vizuálisabb vagy, itt van egy diagram a BTC áráról (rudak) és a két egyszerű mozgóátlag (SMA20 és SMA50). Kereskedési szabályaink határozzák meg az ársávok színét. Ha a kereskedési jel egy, a szín zöld; ha a jel nulla, a szín piros.
Most, hogy az SMA crossover kereskedési szabályait lefektettük, készen állunk a visszatesztelésre! Ez a Workbench előre beállított kiterjeszti az előző példát. A Workbench-et fogjuk használni if
feltételes (lásd a Munkaasztal útmutató a részletekért). A korábban meghatározott kereskedési szabályokkal összhangban meghatározzuk a kereskedési jelet f3
például:
if(sma(m1, 20), ">", sma(m1, 50), 1, 0)
Most, hogy a kereskedési jel meghatározásával megtettük a nehéz munkát, az SMA cross-over kereskedési stratégia visszatesztjének elvégzése egyszerű. Ez a lépés megegyezik a fogadási stratégia backtest létrehozásával; csak más jelzést adunk át. Határozzuk meg a visszatesztet (példánkban ez egy képlet f4
) ezen keresztül:
backtest(m1, f3, "2020-01-01", 1000, 0.001)
Ez közvetlenül kiadja az SMA cross-over kereskedési stratégia NAV görbéjét, amelyet a Munkaasztal előre beállított as SMA keresztezési visszateszt (kék görbe). A korábban bemutatott HODL visszateszt összehasonlítás végett piros színben szerepel.
2. példa: SOPR-on alapuló on-chain kereskedési hipotézis
Az egyszerű mozgóátlag keresztezés az árat használja egyetlen bemeneti mérőszámként. Csak ezen alapvető információk birtokában ésszerű munkát végez a trendek azonosításában. A Bitcoin nyilvános főkönyve azonban sokkal mélyebb betekintést nyújt a befektetők viselkedésébe, mint az ár önmagában. Az elköltött kimeneti nyereség aránya (SOPR)például úgy számítható ki, hogy a realizált értéket (USD-ban) elosztjuk az elköltött kimenet létrehozáskori értékével (USD). Vagy egyszerűen: eladott ár / kifizetett ár. Értéke arról tájékoztat, hogy az átlagos befektető nyereséggel (SOPR > 1) vagy veszteséggel (SOPR < 1) értékesít. Ebből arra következtethetünk, hogy az a környezet, ahol az átlagos befektető nyereséggel ad el, előnyösebb a bitcoin tartásához, mint amikor az átlagos befektető veszteségesen értékesít. Ezért a SOPR-alapú kereskedési hipotézist (szemléltetésképpen Python-stílusú pszeudokóddal) a következőképpen definiáljuk:
# SOPR-based trading rules:
if sopr > 1: signal = 1
else: signal = 0
Nézzünk egy visszatesztet. Elkészítettük a Munkaasztal előre beállított neked az összes hozzávalóval. A SOPR jel meglehetősen zajos; így exponenciális mozgóátlaggal (EMA) simítjuk. Úgy van betöltve, mint m2
az előre beállítottban. Az előző példához hasonlóan elfogadjuk a if
feltétel a SOPR kereskedési szabályok Workbench szintaxisban történő formalizálásához:
if(m2, ">", 1, 1, 0)
Ez a mi kereskedési jelünk f3
. Hosszú bitcoinok akarunk lenni (egyes jel), amikor a SOPR (m2
) nagyobb egynél, egyébként pedig nulla. A visszateszt futtatásához az imént meghatározott SOPR kereskedési jellel, definiáltunk egy képletet f5
az előző példák pontos analógiájára:
backtest(m1, f3, "2020-01-01", 1000, 0.001)
Ez közvetlenül generálja a visszateszt NAV-görbéjét, amely címkével rendelkezik SOPR visszateszt [USD] az alábbi diagramon.
3. példa: különböző kereskedési stratégiák kombinálása
Most két kereskedési stratégiát vizsgáltunk a puszta hodlingon túl: az SMA keresztezést és a SOPR on-chain metrikáján alapuló stratégiát. A backtest létrehozásának utolsó példájaként megvizsgáljuk, hogyan lehet a különböző kereskedési stratégia összetevőit egyetlen átfogó stratégiává kombinálni. Több stratégiával elképzelhető, hogy a portfóliót több részre osztják, és a különböző stratégiákkal rendelkezőkkel egymástól függetlenül kereskednek. Alternatív megoldásként a stratégiákat az egyes kereskedési jelek alapján előzetesen kombinálhatja, majd a kombinált kereskedési jellel a teljes portfólióra vonatkozóan kereskedhet. Ily módon meg lehet menteni a kereskedéseket, ha a különböző összetevők ellentmondanak egymásnak. Nincsenek korlátozások a különböző kereskedési jelek kombinálására. A legegyszerűbb módszer azonban az átlagolás. Próbáljuk ki ezt. Ban,-ben 3. példa Munkaasztal előre beállított, az SMA keresztezési jelet a következőképpen határoztuk meg f2
és a SOPR kereskedési jel mint f3
; akkor lefuttathatunk egy kombinált visszatesztet a következővel:
backtest(m1, (f2+f3)/2, "2020-01-01", 1000, 0.001)
Jegyezze meg, hogyan átlagoljuk a két egyedi kereskedési jelet a visszateszt bemeneteként.
A következőkben ábrázoljuk az SMA-cross-over és a SOPR két egyedi backtesztjét, amelyek jelölése: SMA keresztezési visszateszt [USD] és a SOPR visszateszt [USD], illetve a kombinált visszateszttel együtt. Figyelje meg, hogy a jel sávok Kombinált stratégiai jel most nem csak 0 és 1 értéket vesz fel, hanem 0.5-öt olyan esetekben, amikor a két stratégiakomponens jele nem esik egybe.
Mi a következő lépés?
Ez lefedi a Workbench új utólagos tesztelési funkciójának alapjait. Ismerkedhetsz és kipróbálhatod ötleteidet. Ha Ön haladó kereskedő, rövid jeleket is beilleszthet stratégiájába.
A visszatesztelés nem ér véget a NAV-görbe létrehozásával. A NAV áttekintést nyújt arról, hogyan teljesített volna egy befektetés idővel. De nem veszi figyelembe a stratégia kockázatát, és nem is lehet közvetlenül leolvasni a különböző időszakok relatív teljesítményét. Ezért bemutatjuk a következő kiegészítő függvénykészletet, amely lehetővé teszi, hogy mélyebben megértse a backtest teljesítményét, és lehetővé teszi a különböző utótesztek mennyiségi összehasonlítását:
drawdown(m1)
Ez a függvény egy visszateszt eredményét vagy bármely idősort vesz be bemenetként, és minden időpontra visszaadja a mindenkori csúcs relatív levonását. Ez analóg a Bitcoin: Árlehívás az ATH-tól metrikus.mean_return(m1, period)
Egy idősor évesített gördülő átlagos hozama egy adott időszakban (napokban).realized_vol(m1, period)
Egy idősor évesített gördülő realizált volatilitása egy adott időszakban (napokban). Lásd még Évesített realizált volatilitás.sharpe_ratio(m1, period)
Az évesített gördülő Sharpe-mutató az évesített gördülő átlagos hozam és az éves gördülő realizált volatilitás aránya. Ez az egyik legszélesebb körben használt módszer a kockázattal korrigált relatív hozam mérésére.
Vegye figyelembe, hogy a visszatesztelési programcsomag összes funkcióját a Munkaasztal útmutató, is. Ban ben ez a Workbench előre beállított, bemutatjuk a drawdown
és a realized_vol
funkciókat. Összehasonlítjuk a HODL stratégiából (0. példa) származó lehívások mélységét a SOPR stratégiából (2. példa). Ezenkívül összehasonlítjuk a két stratégia évesített realizált volatilitását. Azt tapasztaljuk, hogy a SOPR stratégia jelentősen csökkentette a lehívásokat egy sima HODL befektetéshez képest, és a realizált volatilitás is jelentősen csökken egy éves gördülő alapon.
Jogi nyilatkozat: A cikk tartalma és a bevezetett utólagos tesztelési funkciók csak tájékoztató jellegűek, semmilyen ilyen információt vagy egyéb anyagot nem szabad jogi, adózási, befektetési, pénzügyi vagy egyéb tanácsként értelmezni. A múltbeli teljesítmény kitalált, csak illusztrációs célokat szolgál, és nem utal a jövőbeli teljesítményre.
A bevezetett funkciók és szolgáltatások ingyenes béta verzióban vannak, és változhatnak.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://insights.glassnode.com/backtesting-in-workbench/
- :is
- $1000
- 1
- 2014
- 2020
- 7
- a
- Rólunk
- felett
- Fiók
- számvitel
- Akció
- További
- Beállított
- elfogadja
- Elfogadása
- fejlett
- tanács
- Után
- AL
- Minden termék
- kizárólag
- mindig
- és a
- évesített
- alkalmaz
- VANNAK
- érv
- cikkben
- AS
- vagyontárgy
- At
- átlagos
- átlagolás
- Backtest
- backtesting
- bárok
- alapján
- kiindulási
- alapvető
- Alapjai
- alap
- BE
- lent
- BEST
- beta
- Béta verzió
- között
- Túl
- Legnagyobb
- Bitcoin
- Kék
- megvett
- szünet
- Bring
- BTC
- btc ár
- Bullish
- megvesz
- vásároljon bitcoint
- Vásárlás
- by
- hívás
- TUD
- tőke
- esetek
- Készpénz
- esély
- változik
- Változások
- Táblázatos
- szín
- össze
- kombinált
- kombinálása
- Közös
- összehasonlítani
- képest
- összehasonlítva
- összehasonlítás
- összetevő
- alkatrészek
- feltétel
- állandó
- alkot
- építés
- tartalmaz
- tartalom
- kontraszt
- Megfelelő
- Költség
- kiadások
- tudott
- Covers
- létrehozása
- teremtés
- görbe
- szokás
- napi
- dátum
- találka
- nap
- Nap
- csökkenés
- mélyebb
- meghatározott
- meghatározó
- bizonyítani
- Megnevezett
- attól
- mélység
- leírt
- részletek
- meghatározza
- diktálja
- különböző
- nehézségek
- közvetlenül
- megvitatni
- megosztott
- dokumentum
- Nem
- Dollár
- ne
- le-
- e
- minden
- EMA
- beágyazott
- csiszolókő
- Egész
- Környezet
- Egyenlő
- Még
- példa
- példák
- csere
- létező
- kitágul
- várható
- szakértők
- feltárt
- exponenciális
- exponenciális mozgó átlag
- Exponálás
- f1
- igazságos
- ismerős
- Jellemzők
- díjak
- kevés
- kitalált
- Végül
- pénzügyi
- Találjon
- vezetéknév
- flow
- következő
- következik
- A
- képlet
- töredék
- Ingyenes
- ból ből
- funkció
- funkcionalitás
- funkciók
- alapvető
- jövő
- általános
- generál
- generál
- kap
- adott
- Üvegcsomó
- Zöld
- Legyen
- nehéz
- súlyemelés
- itt
- Magas
- nagyon
- történeti
- HODL
- SZÁRMAZÁS
- tart
- holding
- motorháztető
- Hogyan
- How To
- azonban
- HTTPS
- i
- ötletek
- identiques
- azonosító
- in
- tartalmaz
- beleértve
- Beleértve
- függetlenül
- jelzés
- Mutató
- egyéni
- információ
- Tájékoztató
- kezdetben
- bemenet
- meglátások
- példa
- helyette
- érdekes
- bevezet
- Bevezetett
- Bemutatja
- Bevezetés
- befektet
- befektetett
- vizsgálja
- beruházás
- befektetési portfólió
- Befektetési stratégia
- befektető
- IT
- ITS
- január
- Munka
- nagyobb
- keresztnév
- legutolsó
- TANUL
- Főkönyv
- Jogi
- Lets
- emelő
- Valószínű
- korlátozások
- vonal
- él
- Hosszú
- hosszabb
- néz
- keres
- le
- M2
- csinál
- sok
- anyag
- mérő
- csupán
- mód
- metrikus
- Metrics
- esetleg
- hibákat
- keverék
- pénz
- több
- Ráadásul
- a legtöbb
- Legnepszerubb
- Motiváció
- mozgó
- mozgó átlag
- mozgóátlagok
- többszörös
- nav
- negatív
- Se
- háló
- nettó eszközérték
- nettó eszközérték (NAV)
- Új
- következő
- of
- ajánlat
- Ajánlatok
- on
- Láncon
- ONE
- Más
- másképp
- vázlat
- teljesítmény
- áttekintés
- fizetett
- paraméterek
- különös
- múlt
- teljesítmény
- előadó
- időszak
- időszakok
- Egyszerű
- Plató
- Platón adatintelligencia
- PlatoData
- pont
- Népszerű
- portfolió
- pozíció
- pozíciók
- lehetséges
- potenciálisan
- Gyakorlati
- előnyös
- előkészített
- be
- előző
- korábban
- ár
- folyamat
- Termékek
- Nyereség
- nyilvános
- Vásárlás
- célokra
- mennyiségi
- gyorsabb
- gyorsan
- hatótávolság
- hányados
- RE
- Reagál
- Olvass
- realizált
- ésszerű
- újrafutóz
- Piros
- csökkenteni
- Csökkent
- kifejezés
- engedje
- marad
- képviselők
- képviselő
- jelentése
- kutatás
- eredményez
- kapott
- visszatérés
- Visszatér
- Kockázat
- kockázathoz igazított
- Gördülő
- szabályok
- futás
- futás
- s
- kedvéért
- azonos
- Megtakarítás
- elad
- eladni a bitcoint
- Eladási
- Sells
- Series of
- szolgál
- szolgálja
- készlet
- számos
- rövid
- kellene
- kirakat
- Jel
- jelek
- jelentősen
- Egyszerű
- egyszerűen
- tettetés
- óta
- Méret
- csúszás
- SMA
- SMA-k
- So
- eladott
- néhány
- SOPR
- költött
- standard
- állványok
- kezdet
- Kezdve
- Állami
- Lépés
- egyértelmű
- stratégiák
- Stratégia
- tárgy
- későbbi
- ilyen
- kíséret
- ÖSSZEFOGLALÓ
- szintaxis
- Vesz
- tart
- bevétel
- adó
- Műszaki
- feltételek
- teszt
- hogy
- A
- Az alapok
- azok
- Őket
- ebből adódóan
- Ezek
- Keresztül
- idő
- Idősorok
- alkalommal
- időbélyeg
- nak nek
- együtt
- is
- szerszám
- Végösszeg
- felé
- kereskedelem
- forgalmazott
- kereskedő
- Kereskedők
- szakmák
- Kereskedés
- Trading Strategies
- kereskedési stratégia
- tendencia
- Trends
- Végül
- alatt
- mögöttes
- megértés
- megértett
- emelkedés
- us
- USAdollár
- használ
- Felhasználók
- érték
- Értékek
- változat
- keresztül
- videó
- Illékonyság
- kötet
- kívánatos
- Út..
- Mit
- vajon
- ami
- míg
- egész
- széles körben
- lesz
- val vel
- belül
- lenne
- te
- A te
- magad
- youtube
- zephyrnet
- nulla