Backtesting strategije: pravila, troškovi i provera
Backtesting je proces testiranja strategije na istorijskim podacima pre nego što uložiš pravi novac. Kako da backtestuješ pravilno, korak po korak.
Sadržaj članka
Backtesting je primena unapred definisanih pravila na istorijske podatke, uz model ulaska, izlaska i troškova. Dobar zapis testa omogućava ti da proveriš kako si došao do rezultata i ponoviš isti postupak.
Najpre odredi šta testiraš. Naziv „SMC”, pet lepih primera ili pozitivan prosek ne čine potpun dokaz strategije. Potrebni su pravila, podaci dostupni u trenutku odluke i način na koji bi nalog mogao biti izvršen.
Šta je backtesting?#
Test može biti ručni, kroz postepeno otkrivanje istorijskog charta, ili automatizovan kroz kod. Oba pristupa zavise od kvaliteta pravila i podataka. Automatska simulacija može ponoviti lošu pretpostavku brzo i dosledno, a ručni pregled može neprimetno koristiti poznat ishod.
Zato sačuvaj verziju plana, instrument i ugovor, izvor podataka, vremenski okvir i zonu. Zapiši i kada pravilo dozvoljava ulaz, šta ga poništava i kako se nalog izvršava.
Rezultat opisuje ispitani uzorak pod tim pretpostavkama. Njegovu primenu na drugi period i stvarno izvršenje proveravaš odvojeno.
Kako da backtestuješ: korak po korak#
| Korak | Šta radiš | Šta ostaje u zapisu |
|---|---|---|
| 1 | Zapiši pravila pre pregleda | Verzija ulaza, SL-a, TP-a i količine |
| 2 | Izaberi podatke i period | Instrument, ugovor, izvor, zona i nedostaci |
| 3 | Odvoji razvoj od naredne provere | Koje podatke si koristio za podešavanje |
| 4 | Odredi izvršenje i troškove | Cena, spread, provizija, proklizavanje |
| 5 | Prođi uzastopne kandidate | Prihvaćeni, odbijeni i neizvršeni nalozi |
| 6 | Sačuvaj sve pokušane varijante | Šta si menjao i zašto |
| 7 | Pregledaj raspodelu rezultata | Prosek, gubici, padovi i osetljivost |
Korak 1: Pravila. U trejding plan upiši uslove koje drugi put možeš prepoznati na isti način. Ako ulaz traži zatvaranje sveće, ne koristi njenu konačnu cenu pre tog trenutka.
Korak 2: Podaci. Proveri vremensku zonu, praznine u istoriji, specifikaciju ugovora i vrstu prikazane cene. Kod akcija obrati pažnju na korporativne promene, a kod fjučersa na prelazak između ugovora. Drugi izvor ili način sastavljanja podataka može promeniti test.
Korak 3: Odvojena provera. Deo podataka koristiš za razradu, a odvojeni period ostaviš za kasniju proveru zamrznutih pravila. Ako posle gledanja tog perioda ponovo podešavaš strategiju, više ga ne predstavljaš kao netaknutu proveru.
Korak 4: Izvršenje. Uključi spread, provizije, relevantne troškove držanja i proklizavanje. Za limit nalog odredi uslov popunjavanja. Ako ista istorijska sveća sadrži i SL i TP, njen OHLC sam ne govori koji je prvi dostignut. Koristi detaljnije podatke ili unapred zapisanu konzervativnu pretpostavku i izdvoji takve slučajeve.
TradingView broker emulator ima posebna podešavanja za troškove, kašnjenje naloga i model cene. Standardne OHLC cene i sintetičke Heikin Ashi vrednosti nisu isto izvršenje. U dokumentaciji proveri šta konkretno podešavanje simulira.
Korak 5: Kandidati. U ručnom testu otkrivaj podatke postepeno i zapiši odluku pre narednog pokreta. U automatizovanom proveri da kod ne koristi buduće vrednosti. Sačuvaj i slučajeve u kojima uslov nije ispunjen ili nalog nije mogao da se izvrši.
Korak 6: Varijante. Ako menjaš SL, period, instrument ili filter, zabeleži novi pokušaj. Izbor najboljeg među mnogo istorijskih rezultata može nagraditi slučajnost. Rad o preteranom prilagođavanju backtesta objašnjava zašto broj isprobanih varijanti mora biti deo procene. Jedan odvojeni period nije automatska zaštita od tog problema.
Korak 7: Pregled. Proveri rezultat posle troškova, najveći pad, nizove gubitaka, trajanje pozicija i udeo rezultata koji dolazi iz nekoliko trejdova. Testiraj i razumna odstupanja od osnovnih pretpostavki. Ako mala promena troška menja zaključak, to mora ostati vidljivo.
Expectancy: šta prosek u R-u govori#
Za svaki trejd odredi početni planirani novčani rizik, odnosno 1R. Rezultat u R-u je njegov novčani rezultat podeljen tim početnim rizikom, u istoj valuti. Ako početni rizik nije pouzdano poznat ili je nula, ne izmišljaj R vrednost.
Prosečan rezultat uzorka dobijaš kao zbir njegovih R rezultata podeljen brojem trejdova. Za uzorak sa dobitnim i gubitnim trejdovima možeš ga zapisati i ovako:
Udeo dobitnih × prosečan dobitak − udeo gubitnih × prosečan apsolutni gubitak.
Trejdovi sa tačno nultim neto rezultatom ostaju u ukupnom broju i doprinose nuli. Izlaz na ulaznoj ceni nije nužno nula posle troškova. Jasno označi da li računaš bruto ili neto rezultate; trošak ne oduzimaj dvaput.
Pozitivan istorijski prosek je opis tog uzorka. Ne garantuje isti prosek u narednim trejdovima, niti govori koliki je pad mogao nastati između početka i kraja testa.
Počni od pisanog trejding plana.
Besplatni Šegrt donosi zadatke za pravila, žurnal i rutinu tokom sedam dana. Unesi ime i mejl za početak.
Praktičan primer sa brojevima#
Pretpostavljen skup za objašnjenje računa, bez tvrdnje o stvarnoj strategiji: 87 trejdova, od kojih 47 donosi po 2,3R, a 40 gubi po 1R. Za početak zanemarujemo troškove.
| Stavka | Račun | Rezultat |
|---|---|---|
| Udeo dobitnih | 47 ÷ 87 | oko 54,02% |
| Zbir dobitaka | 47 × 2,3R | 108,1R |
| Zbir gubitaka | 40 × 1R | 40R |
| Bruto zbir | 108,1R − 40R | 68,1R |
| Bruto prosek | 68,1R ÷ 87 | oko 0,783R |
Ako u ilustraciji pretpostavimo trošak 0,05R po trejdu, ukupni trošak je 4,35R. Neto zbir postaje 63,75R, a prosek oko 0,733R. Ovo je obračun pod pretpostavkama, ne očekivana buduća zarada.
Sa troškom 0,8R po trejdu isti bruto podaci daju minus 1,5R ukupno. Zato vrednost postavke ne ocenjuješ samo po stopi dobitaka ili nacrtanom TP-u. Proveravaš koliko rezultat zavisi od troška i izvršenja.
Kako da sačuvaš projekat testa#
Sačuvaj pravila, podatke, parametre i spisak odluka tako da test možeš ponoviti. Uz izmenu napiši razlog i novu verziju. Ne prepisuj prethodni rezultat bez traga šta se promenilo.
Broj od 50 ili 100 trejdova nije univerzalna potvrda statističke pouzdanosti. Potreban obim zavisi od učestalosti postavke, promenljivosti rezultata, povezanosti trejdova i pitanja koje testiraš. Pet slučajeva može otkriti grešku u izvršenju, ali ne potvrđuje dugoročnu prednost.
Unapred odredi period i obuhvat, pa ne zaustavljaj test samo zato što je rezultat u jednom trenutku lep. Kada procena nije dovoljno stabilna, to je nalaz koji treba sačuvati.
Tri česte greške#
Greška #1: Biraš najbolji rezultat, a kriješ ostale pokušaje. Zabeleži sve varijante. Ako stalno menjaš parametre prema istim podacima, i mala strategija može postati previše prilagođena istoriji.
Greška #2: Koristiš buduću informaciju. U ručnom pregledu to može biti već viđen rasplet. U kodu to može biti nezavršena viša sveća predstavljena kao završena ili pogrešno poravnati podaci. Proveri kada je svaki podatak zaista mogao biti poznat.
Greška #3: Simuliraš izvršenje koje ne možeš dobiti. Dodir limit cene ne znači nužno potpuno popunjen nalog. SL nije garancija tačne cene pri proklizavanju. Proveri vremenski sled, količinu i troškove, pa izdvoji dvosmislene slučajeve.
Iskustva trejdera koji ne backtestiraju#
Iskustva drugih mogu dati pitanje za sopstvenu proveru. Ne zamenjuju podatke o tvom pravilu, instrumentu i izvršenju. Jedan tuđi rezultat ili nekoliko izabranih snimaka nisu cela raspodela ishoda.
U dnevniku odvoji rezultat postavke od toga da li si je pravilno primenio. Gubitak može pripadati pravilno izvršenom planu, a dobitak odstupanju.
Gde se backtesting uklapa u sistem#
Nacrt sadrži strukturu i šablone za rad na planu, uključujući evidenciju testiranja. Kalkulator veličine pozicije računa količinu iz tvojih unosa i brokerske specifikacije. Ti određuješ pravila i pretpostavke testa.
Kada pređeš na praćenje sopstvenog trgovanja, Apolon povezuje dostupne podatke o trejdovima sa kriterijumima i pregledom koji dopunjavaš. Istorijske simulacije čuvaj odvojeno od evidencije izvršenih trejdova, da njihovi rezultati ne postanu ista statistika.

Posle istorijskog testa proveri postupak i na novim podacima i demo izvršenju. Moja javna preporuka je do 0,5% planiranog rizika po trejdu; pozitivan backtest sam ne opravdava povećavanje količine.
Često Postavljana Pitanja#
Koliko trejdova je potrebno za validan backtest?#
Ne postoji univerzalni prag od 50 ili 100 koji potvrđuje svaki test. Važni su kvalitet podataka, učestalost i zavisnost ishoda, troškovi i način izbora pravila. Obuhvat odredi pre gledanja rezultata.
Da li je ručni backtesting bolji od automatskog?#
Zavisi od pravila koja ispituješ. Ručni rad može obuhvatiti jasno opisanu diskrecionu odluku, a kod može dosledno ponoviti precizan uslov. Oba mogu imati greške i koristiti buduće informacije ako postupak nije dobro definisan.
Šta je expectancy i kako se računa?#
Ovde je to procenjeni prosečan rezultat uzorka u R-u: zbir rezultata podeljen brojem trejdova. Pozitivan prosek opisuje ispitani uzorak i pretpostavke, ne garantuje buduće rezultate.
Kako da izbegnem curve fitting u backtestingu?#
Sačuvaj sve pokušane varijante, razdvoji razvoj i kasniju proveru, i ne predstavljaj više puta pregledane podatke kao netaknute. Proveri osetljivost i troškove. Jedan postupak odvajanja podataka ne uklanja automatski ceo rizik preteranog prilagođavanja.
Na kom periodu treba raditi backtesting?#
Na periodu i podacima koji odgovaraju pitanju testa, uz odvojenu proveru. Šest ili dvanaest meseci sami ne garantuju da si obuhvatio relevantne uslove. Zapiši koji periodi, instrumenti i događaji nedostaju.
Povezani članci#
Upozorenje o riziku: Trgovanje na finansijskim tržištima nosi visok rizik. Ovaj sadržaj je edukativan, nije investicioni savet. Pun disclaimer.
Iskustva pojedinaca, ne garancija budućih rezultata. Trejding nosi rizik gubitka kapitala.
Izvori
Napiši prva pravila za svoj rad
Šegrt je besplatan početak: sedam dana kroz pravila, evidenciju i dnevnu rutinu, preko emaila.
Počni sa Šegrtom →


