Selles osas wtahan installida Backtrader ja testida mõningaid kauplemismudeleid eelmises jaotises kogutud Binance'i andmetega.
Backtraderi ja selle seadistamise kohta on palju artikleid ja videoid. See populaarne Pythoni raamatukogu hõlbustab kauplemisstrateegiate tagasitestimist ajalooliste andmetega, vastates põhiküsimusele. "Kui tulus oleks olnud kaubelda antud OST/MÜÜ strateegiaid kasutades". Alguses tundub see matemaatilise alkeemiana, kuid tuleb meeles pidada, et ajaloolised andmed on ajaloolised! Kauplemisstrateegia, mis eile töötas, ei tööta tõenäoliselt täna, kuid tuleme selle juurde varsti tagasi.
Eilne kasumlik kauplemisstrateegia on täna tõenäoliselt kaotaja.
Backtraderi ('bt') paigaldusjuhised on siin. Märkus. Maplotlibi versiooniga üle 3.2.0 on teadaolevaid probleeme, seega olge sellega ettevaatlik.
Kiirjuhend on väärt lugemist, leidke see üles siin.
RSI
See, mida me siin Backtraderiga proovime, on tagasitestimine RSI (Suhtelise tugevuse indikaator) kauplemisstrateegia ajalooliste krüptoandmete (BTC jaoks) kohta aasta algusest.
Selgitatakse RSI impulsi indikaatorit siin. See mõõdab antud kauplemisvara suhtelisi ülemüüdud ja üleostetud tingimusi ning perioodi parameetrit, milleks on tagurpidi tehingute arv (kauplemisvahemikud).
Perioodi parameetri vaikimisi väärtus on 14, nii et kui intervall on minutid, sisaldab valem 14 andmete intervalli. Nagu me järgmisena uurime, on igal tehnilisel indikaatoril parameetrid, mis on meie viis turutingimustele "häälestamiseks"; neil parameetritel on suur mõju strateegia mis tahes konkreetse näitaja kasumlikkusele.
Väikestel asjadel on sageli tohutu mõju.
Backtest.py
Meie tagasitesti seadistus: backtest.py on jagatud siin. See annab meie tagasitestimise struktuuri, mis määratakse järgmisena. See on üsna tavaline "bt" seadistus. Vaatame osa sellest koodist üle, Pange tähele, et Pythoni backtestis on veebis palju näiteid ja videoõpetusi, millest õppida.
Siin klassi määratluses kehtestame oma RSI strateegia parameetrid.
- paljusõnaline: kui tahame tagasitesti ajal logiandmeid väljastada
- kaardiperiood: libiseva keskmise periood, linnukeste arv, mida arvestada
- kogus: ostetavate/müütavate aktsiate arv
- ülemine: üleostetud indikaatori ülemine lävi
- vähendada: ülemüüdud indikaatori alumine lävi
- stopLoss: müügi peatamise seade
. järgmine () Funktsioon Backtrader strateegiaklassis on see, mis juhtub pärast iga andmete intervalli "tiksutamist". Siin on osta() või müü() vastavalt andmetele, antud juhul RSI indikaator ja meie läved.
Siin määratleme tagasijooksu test () funktsioon, mida meie kood kutsub. Eelnimetatud RSI strateegia funktsioon on lisatud aju Näiteks
Kõik üsna tavalised Backtraderi asjad. Vaatame, kuidas seda meie andmetega võrrelda.
Meie andmete tagasitestimine
Hankige kindlasti andmed (kasutades viimase jaotise samme) ajavahemikuks 1. jaanuar kuni 2. jaanuar 2021, need on failis nimega: BTCUSDT-20210101–20210102–1m.csv 1440 CSV reaga, üks iga minuti kohta päevas.
Siin on selle Bitcoini (BTC) ühepäevase kauplemispäeva kood ja väljund:
Lähemalt vaadates:
Parameetrid on lihtsad, soovime analüüsida ühte kauplemispäeva, kasutades RSI indikaatorit perioodiga 12 linnukest, stop-loss'i puudumist ja vaikelimiite 70,30 üleostetud ja ülemüüdud trigeritele.
Väljundi viimane rida võtab kokku selle tagasitesti tulemused:
/BTCUSDT-20210101-20210102-1m.csv, RSI (Pd 12) (SL 0.0%) (U70 L30) Neto $ 777.78 (0.78%) WL 18/7 SQN 1.76
RSI periood 12, 0 (ei) stop-loss, (U) ülempiir 70 (L) alumine piir 30, puhaskasum (ühe päevaga) 777.78 dollarit 18 võitnud ja 7 kaotatud tehinguga.
Viimane näitaja on SQN, "Süsteemi kvaliteedinumber" (SQN), mis on mõeldud kauplejate abistamiseks kauplemissüsteemi tugevuste, soovitavuse ja kvaliteedi kindlaksmääramisel. Hea kvaliteediga strateegiat peetakse strateegiaks, mis on nii kaubeldav kui ka tõhus.*
Järgmised SQN väärtused viitavad järgmistele "omadustele":
- 1.6–1.9 Alla keskmise
- 2.0–2.4 keskmine
- 2.5–2.9 Hea
- 3.0–5.0 Suurepärane
- 5.1–6.9 Suurepärane
- 7.0 – Püha Graal
SQN valem:
Ruutjuur (Arvkaubandus) * Keskmine (TradesKasum) / StdDev (TradesKasum)
Tavaliselt nõuame vähemalt 30 tehingut, et see mõõdik oleks statistiliselt oluline, kuid jätame selle praegu tähelepanuta, kuna testime oma tagasitesti lühikese aja jooksul.
Saate suumida süžee osadesse, näiteks:
Siin näeme ostusignaali (roheline ülesnool), kui RSI väärtus langeb alla 30, ja seejärel tulutoovat müügisignaali ja kasumimarkerit (sinine ring), kui RSI jõuab üle 70. Vaadake RSI väärtusi paremas alumises nurgas. .
777.78 dollari suurune kasum (ühe päevaga) 18 võidutehingu ja 7 kaotatud tehinguga on üsna hea, eriti suhteliselt madala tehinguga kauplemispäeva puhul (+1.42%). Kujutage ette, mida me võiksime suure helitugevusega tõusval päeval saavutada!
Mudeli parameetrid
Saate käivitada get_data erinevate päevade kohta ja analüüsida neid eraldi. Pange tähele, kuidas erinevad RSI parameetrid mõjutavad kasumlikkust päevast päeva.
Kvantkauplemise aksioom: proovige palju erinevaid asju ja mõõtke tulemusi.
Näide: BTC kauplemise samal päeval, kuid RSI perioodiga 20, mitte 12, võit-kaotus 2/3 ja puhaskasum -21.51 dollarit (sh kauplemistasud). See on suur erinevus eelmisest tagasitestist!
Samuti saate katsetada erinevate RSI limiitide (va vaikimisi 70/30) ja stop-loss parameetritega. Stop-loss on automaatne müügikorraldus, kui hind langeb täidetud ostukorraldusega võrreldes alla teatud taseme. Nagu nimigi viitab, võib see pärast volatiilsusseisundisse sattumist "kahju peatada".
Stop-Loss
Stop-lossi seadistamise viis on järgmine:
- 0 : Stop-loss seadistus puudub, oodake, kuni indikaator käivitab müügitellimuse
- 0.00x : stop-loss ostuhinnast madalama väärtuse juures, 0.001 on 0.1% väiksem
- -0.0x : hinna tõustes järgneb tehingule järgnev stop-loss, 0.01 on lõpp-stop-loss 1% ostuhinnast madalam
See stop-loss on iga tehingu jaoks oluline parameeter ja sellel võib mitte üllatavalt olla tulemuslikkus oluline. Lisateavet stop-loss strateegiate kohta vt siin.
Siin meie backtest.py-s on see koht, kus me selle backtraderi abil seadistame:
Siin on sama jooks, mida just analüüsisime, kuid 0.1% lõpp-stop-lossiga
Puhaskasum 383.67 dollarit 12 võidu ja 12 kaotusega, mis on palju parem kui eelnev kaotus. Graafikul on näha, et mahajäänud stop-loss kaitses paljusid tehinguid kahjumisse libisemise eest, kui indikaator ootas müügi (üleostetud) signaali.
Ühe indikaatori piires on selles seadistuses palju erinevaid võimalikke permutatsioone:
- perioodivahemik 10 kuni 30 intervalli (20 varianti)
- stop-loss seade (kujutame ette 5 erinevat praktilist varianti)
- üleostetud/ülemüüdud künnis (kujutame praegu ette 5 varianti)
See oleks 20x5x5 või 500 erinevat variatsiooni igaks päevaks. Nende ükshaaval käsitsi uurimine oleks naeruväärne, kuid me tahame siiski teada, millised parameetrid olid kõige tulusamad ja kõrgeima kauplemiskvaliteediga ning millised mitte.
Kvant alkeemia!
See viib meid selle krüptokvanti uurimise järgmise sammuni. Saame julma jõuga kindlaks määrata antud kauplemisperioodi kõige kasumlikumad ja kvaliteetseimad kauplemisstrateegia parameetrid ning seejärel vaadata, kuidas need edasi kanduvad.
- 67
- 7
- 9
- tegevus
- kaubad
- eelis
- Järeltestimiseks
- binants
- Bitcoin
- BTC
- btc kauplemine
- Bullish
- ostma
- Ring
- lähemale
- kood
- krüpto
- krüptoandmed
- CZ
- andmed
- päev
- EU
- EV
- eksperiment
- uurimine
- Tasud
- Joonis
- esimene
- järgima
- edasi
- funktsioon
- hea
- Green
- suunata
- siin
- Suur
- Kuidas
- Kuidas
- hr
- HTTPS
- tohutu
- ia
- mõju
- Kaasa arvatud
- IP
- küsimustes
- IT
- Õppida
- Tase
- Raamatukogu
- joon
- LP
- Turg
- mõõtma
- keskmine
- Impulss
- neto
- Internetis
- et
- Muu
- jõudlus
- rohke
- populaarne
- hind
- Kasum
- kasumlikkus
- ostma
- kvaliteet
- valik
- Tulemused
- läbi
- jooks
- müüma
- komplekt
- kehtestamine
- jagatud
- Aktsiad
- Lühike
- lihtne
- So
- Strateegia
- süsteem
- Tehniline
- Testimine
- aeg
- kaubelda
- Ettevõtjad
- kaupleb
- Kauplemine
- Trading Strategies
- õpetused
- us
- väärtus
- Video
- Videod
- Lenduvus
- W
- ootama
- jooksul
- Töö
- väärt
- aasta
- zoom