Prekyba be testavimo yra tas pats, kas šokti į vandenį nemokant plaukti. Galite turėti puikiai skambančią strategiją, bet kol nepatikrinote, kaip ji veikė praeityje, tai tėra spėjimas. Backtesting yra procesas, kurio metu pritaikote savo prekybos taisykles istoriniams duomenims ir pamatote, ar jos būtų atnešusios pelno. Tai vienas svarbiausių įgūdžių, skiriančių rimtą prekiautoją nuo žmogaus, kuris tiesiog spėlioja ir tikisi geriausio.
Šiame straipsnyje paaiškinsime, kas yra backtesting, kaip jį atlikti nuo nulio net be programavimo žinių, kokius rodiklius vertinti ir kokių klaidų vengti, kad rezultatai nebūtų apgaulingi.
Kas yra backtesting
Backtesting yra strategijos patikrinimas istoriniuose kainų duomenyse. Paimate aiškiai apibrėžtas taisykles, kada įeiti ir kada išeiti, ir pritaikote jas praeities grafikui taip, lyg būtumėte prekiavę tuo metu realiu laiku. Suskaičiavę visus sandorius, gaunate statistiką, kuri parodo, ar strategija turi pranašumą.
Esmė ta, kad backtesting paverčia neaiškų jausmą tikslia statistika. Vietoj to, kad sakytumėte „man atrodo, kad ši strategija veikia”, galite pasakyti „per pastaruosius dvejus metus ji būtų davusi tam tikrą rezultatą su tam tikru pelningų sandorių procentu”. Tai didžiulis skirtumas priimant sprendimus.
Kuo skiriasi backtesting ir forward testing
Svarbu suprasti du susijusius, bet skirtingus procesus.
Backtesting vyksta praeities duomenyse. Jūs žinote, kaip kaina judėjo, ir tikrinate, kaip strategija būtų veikusi. Tai greita, nes galite per valandą peržiūrėti kelių metų duomenis.
Forward testing vyksta dabartyje. Jūs taikote strategiją realiu laiku, dažniausiai demonstracinėje sąskaitoje, ir laukiate, kaip ji veiks su naujais, dar nematytais duomenimis. Tai lėčiau, bet patikimiau, nes pašalina pavojų netyčia pritaikyti taisykles prie jau žinomos praeities.
Geriausia praktika yra atlikti abu. Pirma backtesting, kad pamatytumėte, ar strategija apskritai verta dėmesio, tada forward testing demonstracinėje sąskaitoje, kad patvirtintumėte rezultatą realiomis sąlygomis.
Rankinis ir automatinis testavimas
Backtestingą galima atlikti dviem būdais.
Rankinis testavimas reiškia, kad atsiverčiate grafiką, paslepiate dešinę jo pusę ir slenkate žvakę po žvakės, priimdami sprendimus taip, lyg matytumėte rinką pirmą kartą. Kiekvieną sandorį užrašote. Tai lėtas, bet itin vertingas metodas, nes lavina jūsų gebėjimą atpažinti modelius ir suteikia jausmą, kaip strategija elgiasi skirtingose situacijose.
Automatinis testavimas reiškia, kad strategijos taisykles aprašote programiniu kodu, ir kompiuteris per kelias sekundes patikrina jas tūkstančiuose sandorių. Tai greita ir tikslu, bet reikalauja techninių žinių arba specialios programinės įrangos.
Pradedantiesiems dažniausiai rekomenduojama pradėti nuo rankinio testavimo, nes jis ne tik patikrina strategiją, bet ir moko skaityti rinką.
Kaip atlikti rankinį backtesting žingsnis po žingsnio
- Aiškiai užrašykite strategijos taisykles. Jos turi būti tokios konkrečios, kad nekiltų jokių abejonių. Pavyzdžiui: perku, kai penkiasdešimties periodų vidurkis kerta dviejų šimtų periodų iš apačios į viršų; Stop-Loss dedu žemiau paskutinio dugno; tikslą nustatau du kartus toliau nei rizika.
- Pasirinkite porą ir laikotarpį. Geriausia testuoti bent vienerių ar dvejų metų duomenis, kad apimtumėte ir kylančias, ir krintančias, ir šonines rinkas.
- Paslėpkite dešinę grafiko pusę ir slinkite į priekį žvakę po žvakės. Kai pagal taisykles atsiranda signalas, užrašykite įėjimo kainą, Stop-Loss ir tikslą.
- Slinkite toliau ir pažiūrėkite, ar sandoris pasiekė tikslą, ar Stop-Loss. Užrašykite rezultatą.
- Pakartokite tai dešimtis kartų, kol surinksite bent penkiasdešimt ar šimtą sandorių. Tik tokia imtis duoda patikimą statistiką.
Kokius įrankius naudoti
Pradėti galima visiškai nemokamai. Daugelis populiarių grafikų platformų turi atsukimo arba peržiūros režimą, leidžiantį slėpti dešinę grafiko pusę ir slinkti istoriją žvakę po žvakės. Tai idealu rankiniam testavimui.
Norintiems automatinio testavimo egzistuoja specializuotos programos, kuriose strategiją galima aprašyti scenarijumi, ir jos pačios suskaičiuoja visus rodiklius. Pažengusieji naudoja programavimo kalbas, tokias kaip Python, kartu su istorinių duomenų rinkiniais, kad galėtų testuoti sudėtingas strategijas dideliais kiekiais.
Pradedančiajam visiškai pakanka rankinio metodo su nemokama platforma. Nereikia investuoti į brangią programinę įrangą, kol neturite aiškiai apibrėžtos strategijos, kurią verta automatizuoti.
Pagrindiniai rodikliai, kuriuos reikia matuoti
Surinkę sandorius, apskaičiuokite kelis svarbiausius rodiklius.
- Pelningų sandorių procentas parodo, kiek sandorių buvo teigiami iš visų. Tačiau vien šis skaičius klaidina, nes svarbu ne tik kiek kartų laimėjote, bet ir kiek uždirbote.
- Pelno faktorius yra bendro pelno santykis su bendru nuostoliu. Jei jis didesnis nei vienas, strategija pelninga. Reikšmė virš pusantro laikoma gera.
- Vidutinis pelnas ir vidutinis nuostolis parodo, ar jūsų laimėjimai didesni už pralaimėjimus.
- Maksimalus nuosmukis yra didžiausias kapitalo kritimas nuo aukščiausio taško iki žemiausio per testavimo laikotarpį. Šis rodiklis ypač svarbus, nes parodo, kokį skausmą turėsite atlaikyti psichologiškai. Strategija su dideliu nuosmukiu gali būti pelninga ilgainiui, bet daugelis prekiautojų jos atsisako per blogiausią laikotarpį.
Realus pavyzdys su skaičiais
Tarkime, testuojate paprastą strategiją EUR/USD poroje dienos grafike per dvejus metus ir surenkate šimtą sandorių. Iš jų keturiasdešimt buvo pelningi ir šešiasdešimt nuostolingi. Iš pirmo žvilgsnio atrodo blogai, nes laimėjote tik keturiasdešimt procentų atvejų.
Tačiau pažiūrėkime giliau. Vidutinis pelningas sandoris atnešė tris šimtus eurų, o vidutinis nuostolingas kainavo šimtą eurų.
| Rodiklis | Skaičiavimas | Rezultatas |
|---|---|---|
| Bendras pelnas | 40 × 300 € | 12 000 € |
| Bendras nuostolis | 60 × 100 € | 6 000 € |
| Pelno faktorius | 12 000 / 6 000 | 2,0 |
Tai puiki strategija, nepaisant žemo pelningų sandorių procento. Šis pavyzdys parodo, kodėl niekada negalima vertinti strategijos vien pagal tai, kiek kartų ji laimi. Svarbiausia yra pelno ir nuostolio dydžių santykis, apie kurį plačiau rašoma rizikos valdymo skyriuje.
Dažniausios backtesting klaidos
Pirmoji ir pavojingiausia klaida yra per didelis pritaikymas istorijai (angl. overfitting). Tai įvyksta, kai taip tobulinate taisykles, kad jos puikiai veikia būtent toje praeityje, kurią testuojate, bet visiškai sugriūva su naujais duomenimis. Strategija su dešimt sąlygų, kuri praeityje atrodo nepriekaištingai, ateityje dažniausiai nuvilia.
Antroji klaida yra ateities duomenų nutekėjimas. Tai įvyksta, kai netyčia priimate sprendimą remdamiesi informacija, kurios tuo metu dar nebūtumėte turėję. Pavyzdžiui, įeinate pagal žvakę, kuri dar neužsidarė.
Trečioji klaida yra per maža imtis. Dešimt sandorių nieko neįrodo. Reikia bent penkiasdešimties, o geriau šimto, kad rezultatai būtų statistiškai reikšmingi.
Ketvirtoji klaida yra spredo ir komisinių ignoravimas. Realioje prekyboje kiekvienas sandoris kainuoja, ir strategija, kuri atrodo pelninga be šių kaštų, gali tapti nuostolinga juos įtraukus.
Penktoji klaida yra tik vienos rinkos sąlygos testavimas. Strategija, kuri puikiai veikia kylančioje rinkoje, gali žlugti šoninėje, todėl testuokite įvairius laikotarpius.
Klaida, kurios beveik visi nepastebi
Yra viena subtili klaida, kurią daro net patyrę prekiautojai. Tai vadinama išgyvenusiųjų šališkumu. Žmonės dažnai testuoja tik tas poras ar laikotarpius, kurie šiandien atrodo įdomūs, nes jie sėkmingai išgyveno iki dabar. Bet taip ignoruojami atvejai, kurie baigėsi blogai ir todėl iškrito iš dėmesio.
Kad to išvengtumėte, testuokite strategiją iš anksto pasirinktose porose ir laikotarpiuose, o ne tose, kurios pasirodo geriausios atgaline data. Sąžiningas testavimas reiškia, kad priimate ir nepatogius rezultatus, ne tik tuos, kurie patvirtina jūsų lūkesčius.
Kiek duomenų reikia patikimam testui
Vienas dažnas klausimas yra, kokio ilgio laikotarpį testuoti. Atsakymas priklauso nuo prekybos stiliaus. Dienos prekiautojui kelių mėnesių duomenų gali pakakti, nes per tą laiką susikaupia šimtai sandorių. Poziciniam prekiautojui, kuris atidaro vos kelis sandorius per mėnesį, reikia bent kelerių metų istorijos.
Svarbiausia ne kalendorinis ilgis, o sandorių skaičius. Siekite bent penkiasdešimties, o idealiu atveju šimto ar daugiau sandorių. Be to, testuojamas laikotarpis turi apimti skirtingas rinkos fazes. Jei testuojate tik laikotarpį, kai rinka nuosekliai kilo, neturėsite supratimo, kaip strategija elgsis kritimo ar šoninio judėjimo metu.
Backtesting ir konkrečios strategijos
Backtesting nėra abstraktus procesas. Jis tampa prasmingas tik tada, kai turite konkrečią strategiją, kurią galite patikrinti. Pavyzdžiui, jei prekiaujate pagal slankiųjų vidurkių susikirtimą, backtesting parodys, kuris periodų derinys istoriškai veikė geriausiai jūsų pasirinktoje poroje. Jei naudojate proveržio strategiją, testavimas atskleis, kiek proveržių buvo tikri ir kiek klaidingi. Jei taikote multi-laiko intervalų analizę, galite patikrinti, kiek pagerėja rezultatai, kai įeinate tik tendencijos kryptimi.
Kiekvienai strategijai backtesting suteikia objektyvų atsakymą, ar ji verta jūsų laiko ir pinigų. Be šio žingsnio liekate priklausomi nuo nuomonių ir jausmų, o rinka nuomonių negerbia.
Prekybos žurnalo svarba
Backtesting ir prekybos žurnalas yra neatsiejami. Kiekvieną sandorį, tiek testinį, tiek realų, užrašykite su visa informacija: įėjimo data, kryptis, įėjimo kaina, Stop-Loss, tikslas, rezultatas ir pastabos apie tai, kodėl įėjote.
Po dešimčių sandorių pamatysite dėsningumus, kurių kitaip nepastebėtumėte. Galbūt jūsų strategija puikiai veikia su viena pora, bet prastai su kita. Galbūt dauguma nuostolių susikaupia tam tikru paros metu. Be žurnalo tokia informacija lieka nepastebėta, ir kartojate tas pačias klaidas vėl ir vėl.
Walk-forward testavimas pažengusiems
Kai įvaldote pagrindinį backtesting, verta susipažinti su pažangesniu metodu, vadinamu walk-forward testavimu. Idėja tokia: padalinate istorinius duomenis į kelias dalis. Strategiją suderinate pirmoje dalyje, tada patikrinate ją sekančioje dalyje, kurios netaikėte derinimui. Tada perslenkate langą pirmyn ir kartojate.
Šis metodas padeda atskleisti, ar strategija tikrai veikia, ar tik buvo pritaikyta prie konkrečios praeities. Jei ji gerai pasirodo ir nematytose dalyse, galite labiau ja pasitikėti. Walk-forward testavimas yra vienas geriausių būdų kovoti su per dideliu pritaikymu istorijai.
Kaip atskirti gerą strategiją nuo atsitiktinumo
Net visiškai atsitiktinė strategija per trumpą laikotarpį gali atrodyti pelninga vien dėl sėkmės. Todėl svarbu vertinti rezultatų stabilumą. Gera strategija duoda nuoseklų rezultatą per skirtingus laikotarpius ir skirtingas rinkos sąlygas.
Jei pelnas susikaupė vos iš kelių itin sėkmingų sandorių, o visi kiti buvo nuostolingi, strategija nepatikima. Jei pelnas pasiskirstęs tolygiai per visą laikotarpį, tai geras ženklas. Žiūrėkite ne tik į galutinį skaičių, bet ir į tai, kaip jis susiformavo.
Psichologinė backtesting nauda
Be statistikos, backtesting suteikia dar vieną svarbų dalyką: pasitikėjimą. Kai praeini šimtą sandorių istorijoje ir matai, kad strategija veikia, įgyji ramybę, reikalingą jai laikytis sunkiais momentais.
Realioje prekyboje neišvengiamai pasitaiko nuostolių serijų. Prekiautojas, kuris netestavo savo strategijos, po penkių nuostolių iš eilės panikuoja ir ją meta, dažnai pačiu blogiausiu metu. Prekiautojas, kuris atliko backtesting, žino, kad penkių nuostolių serija yra normali jo strategijos dalis, ir ramiai tęsia. Šis psichologinis tvirtumas, plačiau aprašytas prekybos psichologijos skyriuje, dažnai ir lemia, ar prekiautojas išliks rinkoje ilgam.
Kaip dažnai pertestuoti strategiją
Rinkos nėra statiškos. Tai, kas veikė prieš penkerius metus, gali neveikti šiandien dėl pasikeitusio volatilumo, naujų rinkos dalyvių ar makroekonominių sąlygų. Todėl backtesting nėra vienkartinis veiksmas.
Protinga periodiškai, pavyzdžiui kartą per kelis mėnesius, peržiūrėti, ar jūsų strategija vis dar veikia su naujausiais duomenimis. Jei matote, kad rezultatai pradeda blogėti, tai gali būti ženklas, kad rinkos sąlygos pasikeitė ir reikia koreguoti taisykles arba laikinai sustabdyti prekybą.
Realistiški lūkesčiai
Svarbu turėti realistiškus lūkesčius dėl to, ką backtesting gali ir ko negali. Jis negali numatyti ateities ir negali garantuoti pelno. Jis negali apsaugoti nuo netikėtų įvykių, tokių kaip staigios geopolitinės krizės ar centrinių bankų sprendimai, kurie pajudina rinką nenuspėjamai.
Tačiau backtesting gali atmesti akivaizdžiai nuostolingas strategijas, gali parodyti, ko tikėtis normaliomis sąlygomis, ir gali suteikti pasitikėjimo, reikalingo disciplinuotai prekybai. Tai įrankis sprendimams gerinti, o ne krištolinis rutulys.
Dažniausiai užduodami klausimai
Ne. Praeities rezultatai nėra ateities garantija. Backtesting tik parodo, ar strategija turėjo pranašumą, bet rinkos sąlygos keičiasi.
Mažiausiai penkiasdešimt, o geriau šimtas ar daugiau. Mažesnė imtis duoda atsitiktinius rezultatus.
Ne. Rankinį backtesting galima atlikti su bet kuria nemokama grafikų platforma slenkant istoriją ranka. Programavimas reikalingas tik automatiniam testavimui.
Taip. Strategija gali puikiai veikti vienoje poroje ir prastai kitoje, todėl naudinga patikrinti kelias, prieš nusprendžiant, kuriomis prekiausite.
Ką daryti po backtesting
Jei strategija parodė pranašumą istoriniuose duomenyse, dar neskubėkite rizikuoti tikrais pinigais. Pereikite prie forward testing demonstracinėje sąskaitoje ir taikykite strategiją realiu laiku bent kelias savaites ar mėnesius. Tai patvirtins, ar rezultatas pasikartoja su naujais duomenimis ir ar gebate ją vykdyti emociškai.
Tik kai ir backtesting, ir forward testing rodo teigiamą rezultatą, pereikite prie realios prekybos su maža suma. Pradėkite kukliai ir didinkite poziciją tik tada, kai matote nuoseklų rezultatą realiomis sąlygomis.
Išvada
Backtesting yra pamatas, ant kurio statoma rimta prekyba. Jis paverčia neaiškų jausmą tikslia statistika ir leidžia priimti sprendimus remiantis faktais, o ne viltimi. Atlikite jį nuosekliai: aiškiai apibrėžkite taisykles, surinkite pakankamai sandorių, apskaičiuokite pagrindinius rodiklius ir venkite dažniausių klaidų, ypač per didelio pritaikymo istorijai ir ateities duomenų nutekėjimo.
Po sėkmingo backtesting pereikite prie forward testing demonstracinėje sąskaitoje ir tik tada prie realios prekybos su maža suma. Toks nuoseklus procesas neduoda greitų stebuklų, bet būtent jis ir skiria prekiautojus, kurie išlieka rinkoje metų metus, nuo tų, kurie greitai praranda sąskaitą. Backtesting gali atrodyti nuobodus ir lėtas, ypač lyginant su jaudinančia realia prekyba. Tačiau būtent šis kantrus, metodiškas darbas atskiria profesionalus nuo mėgėjų. Skirkite jam laiko prieš rizikuodami pinigais, ir jis atsipirks daug kartų.
