Prax a overovanie

Ako testovať stratégiu na histórii: dáta, náklady a chronológia

Zachované PLN nákladové modely a Ask/Bid diagram. Nový EUR príklad ukazuje, prečo rovnaké OHLC neurčí poradie SL a TP ani jediný výsledok.

Abstraktná redakčná ilustrácia vytvorená AI k téme „Ako testovať stratégiu na histórii: dáta, náklady a chronológia“. Nezobrazuje historické kurzy.
Redakčná ilustrácia vytvorená AI; nejde o snímku platformy ani historický cenový graf.

Forex a CFD s pákou môžu rýchlo viesť k strate. Vzdelávací obsah bez osobného investičného odporúčania.

V tomto článku

Po prečítaní dokážete…

  • Zosúladiť výsledok Ask/Bid s pohybom stredov bez dvojitého spreadu.
  • Určiť dostupnosť výsledkov pred chronologickým testom.
  • Vypočítať dve možné EUR realizácie z rovnakej OHLC sviečky.

Vysvetlenie pojmov priamo v článku

Bid a Ask Spread: rozdiel ask a bid Backtest: skúška pravidiel na historických údajoch Centrálne banky Provízia za obchod Pokles od maxima: drawdown

Vysoká historická úspešnosť sama nedokazuje výhodu. Backtest vyhodnocuje presné pravidlo na určených dátach v konkrétnom modeli realizácie. Ani dôkladný test nezaručuje budúci výnos. Zmyslom je vedieť výsledok reprodukovať, vysvetliť jeho predpoklady a pomenovať neistotu.

Prečo vôbec testovať históriu?

Kladný historický priemer vypovedá o skúmanej vzorke. Môže odrážať náhodu, výber alebo preoptimalizovanie. Pred širším záverom potrebujete odložené dáta, realistické náklady a odolnosť záverov voči zmene predpokladov. Negatívny test môže odhaliť rozpor v pravidle skôr, než sa projekt rozšíri.

Bez jednoznačných pravidiel skúšate inú stratégiu

Zapíšte symbol, interval, vstupné informácie, čas požiadavky, výstupy a výpočet objemu. Modelové denné pravidlo porovná záver ukončenej sviečky s maximom predchádzajúcej a odošle požiadavku až po dostupnosti záveru. Použiť tento konečný záver na vstup za skorší Open tej istej sviečky znamená použiť budúcu informáciu.

Určte aj existujúcu pozíciu, nedostupné dáta a nedostatočnú maržu. Nastavenie indikátora tieto rozhodnutia nevyrieši ani nezaručí plnenie. Overovanie obchodnej výhody oddeľuje odhalenie rozporu od dôkazu výnosnosti; Rámec výskumného postupu spája pravidlo, dáta a kontrolné prípady.

Vhodné dáta a dostatočné dôkazy

Dáta musia zodpovedať produktu a realizácii. Menový futures, OTC spot a CFD sú odlišné kontrakty. Centralizovaný futures záznam nie je automaticky náhrada retailového spotového modelu. Uložte poskytovateľa, produkt, stranu kotácie, pásmo, interval a medzery.

Neexistuje univerzálny prah štatistickej významnosti sto obchodov. Záleží na rozptyle, závislosti výsledkov, veľkosti účinku, počte pokusov aj pokrytí režimov. Uveďte neistotu a efektívnu veľkosť vzorky, nielen počet riadkov.

Výskumné obdobie má pokrývať relevantné podmienky; priznať treba aj to, čo nepokrýva. Samotné OHLC neukáže poradie dotyku stopu a cieľa vnútri sviečky. MT5 môže pre minútovú sviečku bez tickovej histórie ticky vygenerovať aj pri práci s reálnymi tickmi. Overte dáta a denník, nespoliehajte sa iba na názov režimu. Pri koši nástrojov zachovajte výber dostupný vtedy; pri makrodátach vtedajšiu publikáciu namiesto neskoršej revízie.

Pred odpočítaním spreadu zosúlaďte ceny

Výsledok Ask → Bid má inú východiskovú definíciu než pohyb stredov kotácie. Obe metódy treba prepojiť v tom istom modeli.

Pred odpočítaním spreadu zosúlaďte ceny

Celý diagram zobrazíte posunutím do strany.

Pred odpočítaním spreadu zosúlaďte cenyÚplný hypotetický model nakúpi a neskôr predá jednu ľubovoľnú jednotku objemu, bez provízie, financovania a sklzu. Pri vstupe je Bid 100, Ask 102 a stred 101; pri výstupe Bid 103, Ask 105 a stred 104. Nákup na Ask 102 a predaj na Bid 103 dá +1 cenovú jednotku. Stredy vzrastú o +3; po odpočítaní polovíc spreadov 1 a 1 zostane tiež +1. Odpočítať oba celé spready 2 a 2 od zmeny stredov dá chybných −1. Výsledkové pruhy majú spoločnú nulu a lineárnu mierku. −1 je chyba výpočtu, nie iné platné plnenie.DVA POSTUPY, ROVNAKÝ VÝSLEDOKModelový long • jedna jednotka objemuBidAskStredVstup100102101Výstup103105104Zmena stredu+3Ask → Bid+1Chybne: −2 − 2−1−2024Cenové jednotky • +3 − 1 − 1 = +1
Výsledok Ask → Bid už obsahuje rozdiel oproti stredom kotácií.

Na malej obrazovke posúvajte diagram vodorovne alebo ho zväčšite. Vysvetlenie nájdete aj v texte.

Pôvodný úplný hypotetický model jednej ľubovoľnej jednotky objemu má súčasný vstupný Bid/Ask 100/102 a neskorší výstupný 103/105. Stredy sú 101 a 104. Presný nákup Ask 102 a predaj Bid 103 dá +1 cenovú jednotku. Žiadne provízie, financovanie, medzery alebo sklz; nejde o dnešnú FX kotáciu.

Stredy sa zmenili o 104 − 101 = +3. Vstup je jednu jednotku nad stredom a výstup jednu pod ním: 3 − 1 − 1 = +1. Oba celé spready sú 2, ale ich odpočítanie od stredového pohybu dá chybných 3 − 2 − 2 = −1. Rovnako by sa dvojmo započítal spread, keby ste 2 odpočítali od už hotových 103 − 102. Číslo −1 nie je iná platná realizácia tohto modelu. Pri reporte vždy pomenujte zdroj ceny.

Náklady priraďte práve raz a ku všetkým obchodom

Pri nákupe na Ask a predaji na Bid je spread v cenovom výsledku. Osobitne doplňte províziu, financovanie a výslovne modelované odchýlky plnenia. Modelových 0,8 pipu je 0,4 % z cieľa 200 pipov, ale 16 % z cieľa 5 pipov. Ide o podiel odstupu cieľa, nie o podiel obchodnej výhody alebo reálny výsledok.

Samostatný pôvodný PLN príklad má 50 uzavretých obchodov: 30 ziskov po 40 PLN a 20 strát po 50 PLN pred nákladmi. Kladný súčet je 1 200 PLN, veľkosť strát 1 000 a čistý výsledok 200. Rovnaký úplný náklad priradíme každému obchodu vrátane stratových.

Na malej obrazovke posúvajte tabuľku vodorovne, aby ste prečítali všetky stĺpce.

Pôvodná hypotetická citlivosť na celý náklad obchodu, PLN
Náklad na obchodČistý súčetPriemerČistý profit factor
0 PLN200 PLN4 PLN1,20
2 PLN100 PLN2 PLNPribližne 1,10
4 PLN0 PLN0 PLN1,00

Pri náklade 2 PLN sa zisk mení na 38 a strata na 52 PLN: profit factor je 1 140 / 1 040 ≈ 1,10. Pri 4 PLN je to 30 × 36 / (20 × 54) = 1. Tabuľka mení iba určený náklad, neoveruje pozorovanú stratégiu. Skúšajte primerané zmeny cien aj nákladov. Dvojnásobok priemerného nákladu je zvolený filter, nie univerzálna bezpečnostná rezerva.

Nový EUR príklad: jedna OHLC sviečka, dva opačné výstupy

Oddelený model má účet 5 000 EUR, long 10 000 EUR na EUR/USD, úplný vstup Ask 1,1000 a súčasný Bid 1,0998. Pred skúmanou sviečkou sú prijaté SL 1,0980 a TP 1,1040. Celá nasledujúca sviečka je z cien Bid: O 1,0998; H 1,1050; L 1,0970; C 1,1030. Obe hranice ležia vo vnútri rozsahu, ale OHLC neprezradí, ktorá prišla prvá.

Rovnaké OHLC nepotvrdí prvý dotykSamostatný hypotetický EUR/USD long 10 000 EUR, vstup Ask 1,1000. Pred sviečkou prijaté SL 1,0980 a TP 1,1040; všetky OHLC ceny sú Bid. Presné úplné plnenia, bez sklzu/medzier; prepočet 0,90 EUR/USD a celý poplatok 2 EUR.MODELOVÝ VÝPOČETSpoločná Bid sviečkaO 1,0998; H 1,1050; L1,0970; C 1,1030Cesta O → H → L → CTP prvé: +40 USD → +34EURCesta O → L → H → CSL prvé: −20 USD → −20EURRozdiel pridelených výsledkov54 EUR pri rovnakom OHLC
Rovnaké OHLC nepotvrdí prvý dotyk. Samostatný hypotetický EUR/USD long 10 000 EUR, vstup Ask 1,1000. Pred sviečkou prijaté SL 1,0980 a TP 1,1040; všetky OHLC ceny sú Bid. Presné úplné plnenia, bez sklzu/medzier; prepočet 0,90 EUR/USD a celý poplatok 2 EUR.

Označte nejednoznačný intradenný priebeh a predpoklad realizácie. Generovaný tick nedoplní chýbajúce historické pozorovanie.

Na malej obrazovke možno diagram posúvať vodorovne alebo zväčšiť. Hodnoty a záver nájdete aj nižšie v texte.

Spoločná Bid sviečka
O 1,0998; H 1,1050; L 1,0970; C 1,1030 – SL aj TP ležia v rozsahu. Samotné štyri ceny neobsahujú poradie.
Cesta O → H → L → C
TP prvé: +40 USD → +34 EUR – Úplné zatvorenie na 1,1040. Z účtu 5 000 vznikne 5 034 EUR.
Cesta O → L → H → C
SL prvé: −20 USD → −20 EUR – Úplné zatvorenie na 1,0980. Konečný účet 4 980 EUR.
Rozdiel pridelených výsledkov
54 EUR pri rovnakom OHLC – Dve konkrétne spojité cesty, nie univerzálny rozsah skutočného rizika. Výber priaznivej cesty potrebuje dôkaz.

V prvej možnej súvislej ceste O → H → L → C dosiahne cena najprv TP. Presné úplné zatvorenie na Bid 1,1040 dá (1,1040 − 1,1000) × 10 000 = +40 USD. V druhej ceste O → L → H → C dosiahne najprv SL; úplné plnenie 1,0980 dá −20 USD. Po prvom zatvorení už zvyšok sviečky nemení tento obchod. Obe cesty majú presne rovnaké O, H, L aj C.

Pri pevnom prepočte 0,90 EUR/USD a jedinej provízii 2 EUR za celý obchod dostaneme +34 EUR alebo −20 EUR, konečný účet 5 034 alebo 4 980 EUR. Rozdiel je 54 EUR. Zvoliť vždy priaznivejší variant by vložilo do testu predpoklad, ktorý samotné OHLC nedokazuje.

Tu sú plnenia presné, celé, bez medzier či sklzu; marža postačuje, neexistujú ďalšie pozície, náklady, financovanie, konverzný spread alebo peňažné toky. Spread je vo vstupnom Ask a výstupnom Bid. Nejde o garantované plnenie obyčajného SL alebo všeobecný rozsah možnej straty. Sú to dve konkrétne zlučiteľné cesty. V reporte označte nejednoznačné prípady a testovací predpoklad; jemnejší model potrebuje dostupnú správnu cenovú históriu, samotný generovaný tick nie je novým historickým pozorovaním.

Výber najlepšej krivky potrebuje oddelené hodnotenie

Výber parametrov, nástrojov alebo rozdelenia vzorky môže prispôsobiť model zvláštnostiam histórie. Zaznamenajte všetky pokusy vrátane nápadov mimo optimalizátora. Silný zvolený výsledok sám nedokazuje preoptimalizovanie, ale vyžaduje ďalšie hodnotenie. Obmedziť optimalizátor na dva parametre neodstráni výber inde.

Chronologické rozdelenie 70/30 je jedna možnosť, nie univerzálny recept. Slabší test môže odrážať režim či náhodu aj preoptimalizovanie. Zmeniť pravidlo po pozretí výsledku znamená použiť dané obdobie na vývoj; zaznamenajte to.

Záleží aj na čase známosti výsledku. V pôvodnom modeli sa rozhodnutie t označí výsledkom až v t + 3. Prvý test začína v t10 a učenie sa musí skončiť pred ním. Z kandidátov t1–t9 majú výsledok dostupný vopred iba t1–t6: t6 sa dozvieme v t9. Výsledky t7–t9 prídu v t10–t12 a do tohto učenia nepatria. Skoršie ceny môžu stále slúžiť na indikátor testu. Odstránili sme uvedený prekryv výsledkov, nie každú príčinu úniku informácií.

TimeSeriesSplit opisuje chronologické indexy a parameter gap v počte vzoriek. Pri obchodných výsledkoch s rôznym trvaním treba overovať ich skutočný čas dostupnosti; pevný počet riadkov sám nemusí stačiť.

Čo možno odvodiť z pridelených čísel?

Hypotetická pravdepodobnosť výhry 0,54, priemerná výhra 2,3R a veľkosť straty 1R dávajú hrubý priemer 0,54 × 2,3 − 0,46 = 0,782R a profit factor približne 2,70. Tieto vstupy neurčia drawdown ani celkový výnos. Samostatne pridelené zhodnotenie 87 % za presne päť rokov dá zložené ročné tempo približne 13,34 %; z uvedených obchodných štatistík ho neodvodzujeme.

Čo skontrolovať pri najbližšom teste?

Report spojte s identifikovateľnou verziou dát, pravidla a realizácie. Reprodukujte jednotlivý zisk aj stratu, chýbajúci signál a nejednoznačnú sviečku. Demo môže skúšať prevádzku v čase, kladný výsledok nevyžaduje prechod na reálny účet.

  1. Mechanický text pravidla: čas dostupnosti vstupov, príkaz, objem a reakcia na chýbajúcu či nejasnú informáciu. Nezávisle reprodukujte signály a vysvetlite rozdiely.
  2. Obdobie a chronológia: rozdelenie zvoľte pred ladením. Dva alebo päť rokov nie sú povinnosť pre každé pravidlo.
  3. Náklady práve raz: spread, provízia, financovanie a určený sklz, potom citlivosť. Náklady nad 20 % hrubého zisku nie sú univerzálny zákaz.
  4. Neistota vzorky: počet, závislosť, rozptyl a všetky pokusy. Ďalšie symboly či história môžu zmeniť hypotézu; sto obchodov samo nepotvrdí významnosť.
  5. Prevádzkové porovnanie: demo správanie proti zmrazenému modelu, s vysvetlením rozporov. Tri mesiace negarantujú pripravenosť ani zisk naživo.

Pozrite si zdrojové dáta a reprodukciu

Naša samostatná štúdia ECB 2016–2025 uvádza 2 560 publikácií EUR/USD a 49 pracovných dní bez publikácie, ktoré porovnáva s kalendárom TARGET. Denný referenčný kurz neobsahuje intradennú cestu, spread ani poradie dotyku SL/TP. Štúdia overuje úplnosť svojho snapshotu, nie historickú dostupnosť webu alebo čas prvého zverejnenia.

Štúdia, dáta a kód: nepublikovaný kurz nie je automaticky dátová medzera

Overte si, čo ste sa naučili

Cvičenie: približne 2 minúty.

Long vstúpi presne na Ask 102 a vystúpi na Bid 103. Bez ďalších nákladov je výsledok jednej jednotky objemu aký?

Zobraziť odpoveď a vysvetlenie

103 − 102 = 1. Spread zahrnutý výberom Ask a Bid znovu neodpočítavajte.

Ďalšie otázky

Čo je preoptimalizovanie stratégie?

Prispôsobenie vlastnostiam vývojovej vzorky, ktoré sa neprenesú do nových pozorovaní. Úspešnosť ho sama nediagnostikuje; pozrite rozdelenie ziskov a strát, náklady, históriu výberu a odložené dáta. Úprava po prečítaní výsledku testu zmení toto obdobie na vývojové.

Aký program si vybrať na backtest?

Taký, ktorý dokáže vyjadriť pravidlo, produkt, dáta a realizáciu. MT5 Strategy Tester pracuje s EA, viacerými symbolmi a tickovými režimami; overte históriu a uložte nastavenia. Ručný replay a kód skúšajú aj odlišné prevádzkové veci. Ani jeden sám nebráni budúcim informáciám či nereálnym cenám. Overte aktuálnu dokumentáciu, nepoužívame univerzálny rebríček alebo pevnú cenu.

Koľko histórie potrebuje poctivý test?

Neexistuje univerzálny počet rokov či obchodov. Posúďte závislosť výsledkov, rozptyl, relevantné podmienky a počet skúšaných nápadov. Pridanie symbolov môže zmeniť hypotézu, nielen dôkaz. Uveďte limity a chronologický test s výsledkami, ktoré pri vývoji ešte neboli dostupné.

Ako vyzerá realistický dobrý výsledok?

Nie je jedno pásmo úspešnosti, profit factoru alebo drawdownu pre každú stratégiu. Zosúlaďte čisté výsledky, expozíciu, priebežnú equity, náklady a všetky výberové pokusy. Pôvodných modelových 50 obchodov klesne z 200 PLN na nulu pri zmene celého nákladu z 0 na 4 PLN za obchod. Je to citlivosť, nie overenie stratégie naživo.

Zdroje a overenie

  1. MetaQuotes: reálne a generované ticky

    Bid/Ask oproti cene grafu, variabilný spread reálnych tickov a generovanie pri minútach bez tickovej histórie.

  2. scikit-learn: únik informácií

    Dostupnosť informácie pri predikcii, oddelenie učenia a testu aj pri predspracovaní dát; nejde o FX štúdiu.

  3. scikit-learn: TimeSeriesSplit

    Chronologické indexy a gap meraný v počte vzoriek. Rôzne trvanie výsledkov vyžaduje vlastnú kontrolu dostupnosti.

  4. forex-basics.com: štúdia referenčného kalendára ECB

    Samostatný publikovaný súbor 2016–2025, jeho kalendárová metodika a obmedzenia. Odkaz na dáta a kód dokumentuje konkrétny snapshot, nie priebežnú históriu plnení.

  5. MetaQuotes: testovanie obchodných stratégií

    Podpora testovania viacerých symbolov a história dostupná agentovi. Dokumentácia testera nie je dôkazom vhodnosti konkrétneho datasetu alebo budúceho výnosu.

Výpočty používajú výslovne uvedené predpoklady. Nenahrádzajú aktuálne trhové údaje ani podmienky poskytovateľa.

O autorovi

Jarosław Wasiński je vydavateľ a trhový analytik v Poľsku. V roku 2004 založil MyBank.pl a devízový trh sleduje od roku 2007.