V tomto článku
Po prečítaní dokážete…
- Zostaviť CSV s jednoznačnými časmi a vypočítať prázdne pozície deklarovanej mriežky.
- Odlíšiť medzeru, opakovanie, cenový konflikt a neplatné OHLC bez vymýšľania opravy.
- Na oddelenom EUR modeli vysvetliť, prečo rovnaké úplné OHLC neurčuje poradie výstupov ani výsledok.
Vysvetlenie pojmov priamo v článku
Backtest: skúška pravidiel na historických údajoch Bid a Ask Expert Advisor (EA)Chýbajúca sviečka sama nepovie, či zlyhal poskytovateľ alebo bol trh zatvorený. Najprv porovnajte export so zvoleným časovým oknom a pravidlami tvorby sviečok. Lokálny kontrolný nástroj nájde prázdne pozície pevnej mriežky, opakované časy, rozpory cien a neplatné riadky. Ceny nevymýšľa. Report pomôže určiť, čo vyriešiť pred historickým testom stratégie.
Čo určiť pred počítaním chýbajúcich sviečok?
Zaznamenajte nástroj, poskytovateľa, cenový základ a časový rámec. Bid, Ask a midpoint predstavujú rôzne rady; samotné EUR/USD nestačí. Porovnávajte rovnaké okamihy otvorenia sviečok. Čas uzavretia v jednom exporte vyzerá posunutý voči času otvorenia v druhom, hoci ceny môžu byť platné. Bid a Ask navyše oddeľte od ceny Last alebo od stredu kotácie.
Nástroj prijíma hlavičku timestamp,open,high,low,close, potom presne päť polí oddelených čiarkami. Ceny zapisujte s desatinnou bodkou, bez oddeľovača tisícov. Úvodzovky, ďalšie stĺpce a bodkočiarkový export najprv prevediete do podporovaného formátu. Nástroj takýto nepodporovaný vstup odmietne, namiesto hádania jeho významu. Slovenská desatinná čiarka preto v tomto CSV nepatrí do cenového poľa.
Použite úplný čas, napríklad 2026-10-12T08:00:00Z alebo 2026-10-12T10:00:00+02:00. Označujú ten istý okamih; v Bratislave je v tento deň miestny čas 10:00. Sekundy sú povinné, podporované sú najviac tri číslice zlomku sekundy. Čas bez posunu neurčuje pásmo servera. Prilepenie Z k miestnemu času nie je konverzia do UTC. Pri OANDA sa riadenie denného zarovnania líši od toho, že výsledný čas API je vyjadrený v UTC.
Samostatne zadajte prvé a posledné očakávané otvorenie. Obe hranice sa započítajú: od 08:00 do 08:11 pri M1 ide o dvanásť časov. Mriežka začína prvou hranicou; posledná musí presne ležať na nej. Model používa rovnaké uplynuté intervaly. Kalendárny mesiac alebo miestny deň meniaci dĺžku pri prechode času sa nedá všeobecne nahradiť pevnými 1 440 minútami.
Ako zopakovať kontrolu a príklad?
Načítajte CSV, zvoľte celý interval 1 až 1 440 minút a obe hranice. Súbor sa spracúva lokálne v prehliadači bez odoslania obsahu alebo trvalého uloženia. Limit je 2 MiB, najviac 100 000 riadkov a 100 000 očakávaných pozícií. Dlhší export rozdeľte na zdokumentované neprekrývajúce sa okná. Rovnaký hraničný čas nesmie byť v dvoch oknách započítaný dvakrát.
Cenové pole povoľuje najviac 15 významných číslic a 48 znakov. Presnejší záznam je neplatný; zaokrúhlenie nesmie potichu skryť cenový konflikt. Dokončená analýza nie je potvrdením kvality datasetu. Niektoré chyby zabránia celej analýze, iné sa vykážu pri riadkoch.
Skontrolovať pokrytie časovej mriežky CSV
Súbor sa analyzuje lokálne; nástroj ho neposiela ani trvalo neukladá. Formát: timestamp,open,high,low,close. Najviac 2 MiB. Časové značky vyžadujú Z alebo výslovný posun UTC.
Vymyslený export: dvanásť riadkov neznamená úplnosť
Cvičné súbory sú syntetické; nejde o ceny brokera alebo účet. Vyberte M1, 08:00 až 08:11 UTC. Čistý súbor obsahuje dvanásť rôznych časov, žiadnu prázdnu pozíciu. Diagnostický má tiež dvanásť riadkov, ale len osem platne obsadených pozícií.
| Nález | Význam v tomto modeli |
|---|---|
| 4 prázdne pozície | Bez platnej sviečky 08:03, 08:04, 08:10 a 08:11. |
| 2 opakované riadky | Časy 08:02 a 08:06 sa objavia znova. |
| 1 skupina cenového konfliktu | Dve platné OHLC pri 08:06 majú rozdielne hodnoty. |
| 1 neplatný riadok | High pri 08:04 je pod otvorením. |
| 1 riadok mimo mriežky a 1 obrátenie poradia | 08:07:30 neleží na M1; 08:08 príde po 08:09. |
Najdlhšie medzery majú po dve očakávané otvorenia. Pri zhode sa vráti prvá, 08:03–08:04. Nie je to zmerané trvanie výpadku. Vysvetlenie podmienok v tomto intervale potrebuje údaje mimo súboru. Neplatný 08:04 nepridáva pokrytie a konfliktný 08:06 sa počíta len raz.
Model M1: osem pozícií z dvanástich
Na malej obrazovke posúvajte diagram vodorovne alebo ho zväčšite. Vysvetlenie nájdete aj v texte.
Ktoré nálezy vyšetriť namiesto automatickej opravy?
Pokrytie počíta rôzne platné časové značky, nie riadky. Zhodná kópia pokrytie nezlepší. Dve platné, ale rozdielne OHLC pri jednom čase obsadia jednu pozíciu a súčasne vytvoria konflikt. Ani nula medzier teda neznamená prijateľné dáta. Zachovajte oba varianty a porovnajte ich so zdrojom. Nástroj nevyberá vyšší, novší alebo pohodlnejší výsledok.
Neplatný záznam sa do pokrytia nezaráta. Ceny musia byť konečné, high nesmie byť nižšie než open, close alebo low; low nesmie byť vyššie než ostatné. Záznam mimo okna alebo mriežky výsledok nezlepší. Všetky nálezy sa započítajú, ale z každej skupiny sa zobrazí najviac dvadsať príkladov, aby poškodený export nezaplnil stránku.
Víkendovú medzeru porovnajte so skutočným kalendárom daného produktu. Medzeru v deklarovanej seanse preskúmajte cez pôvodný zdroj a denník sťahovania. OANDA definuje complete tým, že koniec konkrétnej sviečky už nie je v budúcnosti. Nie je to certifikát úplnosti celého exportu ani pravidlo, že každý očakávaný okamih musel mať záznam.
Nevypĺňajte prázdne miesto poslednou cenou iba pre plynulý graf. Vytvoríte syntetickú sviečku, ktorá môže zmeniť indikátor a simuláciu stopu. Zoradenie riadkov nevyrieši rozdielne OHLC. Pôvodný export uchovajte samostatne; každá oprava potrebuje dôvod, zdroj a záznam zmeny.
Nový EUR protipríklad: rovnaká úplná sviečka, dva výsledky
Oddelený hypotetický účet začína 1 000 EUR. Jeden úplný long má 10 000 EUR nominálu, vstup Ask 1,1002, stop Bid 1,0990 a cieľ Bid 1,1020. Pridelíme pevnú konverziu 0,90 EUR/USD, províziu 1 EUR pri vstupe a 1 EUR pri výstupe. Vstupný Bid je 1,1000, spread 0,0002; v oboch modelových cestách je Ask vždy Bid + 0,0002. Spread už je v realizačných cenách.
Jediná ukončená M1 sviečka má Bid OHLC 1,1000 / 1,1030 / 1,0980 / 1,1010. Dve pridelené spojité cesty medzi týmito bodmi majú totožné OHLC: A ide open → high → low → close, B ide open → low → high → close. Vstup nastane na začiatku; po prvom výstupe sa pozícia znova neotvára. Výslovne predpokladáme celé plnenie pri prvom dosiahnutí presnej hranice, bez sklzu a bez predchádzajúcej likvidácie; marža postačuje. Žiadne ďalšie pozície, toky, financovanie, poplatky alebo konverzný spread.
Rozdiel 27 EUR vznikol z prideleného poradia, ktoré OHLC neobsahuje. Nula medzier ani complete neurčujú skutočné poradie, pravdepodobnosť alebo realizačné ceny.
Na malej obrazovke možno diagram posúvať vodorovne alebo zväčšiť. Hodnoty a záver nájdete aj nižšie v texte.
- A: open → high → low → close
- Najprv cieľ; +14,20 EUR – +18 USD × 0,90 − 2 EUR. Konečná hotovosť 1 014,20 EUR.
- B: open → low → high → close
- Najprv stop; −12,80 EUR – −12 USD × 0,90 − 2 EUR. Konečná hotovosť 987,20 EUR.
- V oboch samostatných súboroch
- 1 obsadená pozícia, 0 medzier, 0 konfliktov – Rovnaká úplná Bid sviečka má dva prípustné pridelené priebehy. Po výstupe sa ďalší pohyb pozície netýka.
Pri A sa najprv dosiahne cieľ, cenový výsledok je +18 USD, čistý +14,20 EUR, hotovosť 1 014,20 EUR. Pri B sa najprv dosiahne stop: −12 USD, čistý −12,80 EUR, hotovosť 987,20 EUR. Rozdiel je 27 EUR. Z CSV nedokážeme vybrať skutočnú cestu alebo pravdepodobnosť. Nástroj by obe sviečky vyhodnotil rovnako: jedna platná obsadená pozícia, nula medzier aj konfliktov. Dve samostatné cesty nie sú dva konfliktné riadky v jednom exporte.
Dokazuje úplné OHLC použitie zaznamenaných tickov v MT5?
Nie. OHLC neobsahuje celé cenové poradie. MetaQuotes dokumentuje generovanie tickov, keď existuje minútová sviečka bez príslušných tickových údajov. Úplné M1 pokrytie CSV preto nedokazuje, že tester použil len zaznamenané pozorovania. Skontrolujte denník, dostupné obdobie tickov a zvolený model. Expert Advisor reaguje na zvolené udalosti; pomenovanie režimu nenahrádza kontrolu dát.
Porovnajte aj požadovaný a skutočný začiatok. Dokumentácia prípravy histórie upozorňuje na posun pri nedostatočných dátach. Pri exporte cez CopyRates zosúlaďte požadovaný a vrátený počet; sťahovanie môže po čiastkovom výsledku pokračovať. Praktický test MT4/MT5 rozoberá nastavenie, metodika testovania nadväzuje validáciou. Nezamieňajte dokončenú kontrolu mriežky za úspešný test kódu.
Ako pokračovať s dátovým reportom?
- Uložte pôvodný export, nastavenia aj report. Pridajte symbol, cenový základ, pásmo, význam času otvorenia a zdroj seáns. Iný človek musí vedieť zopakovať rovnaké okno, nie len porovnať dva nevysvetlené grafy.
- Vyšetrite najdlhšiu medzeru a každú konfliktnú skupinu. Zdokumentujte zatvorenú seansu alebo získajte opravený export. Zopakujte rovnaké okno; starší report zachovajte. Neodvodzujte trvanie výpadku iba z počtu prázdnych otvorení.
- Na prijatom intervale urobte krátky vizuálny test. Preskúmajte signály pri medzerách, spread a poradie výstupov. Pri samostatnom engine pokračujte dátovými a signálovými kontrolami v Pythone. Report nepredpovedá budúce výnosy.
Overte si, čo ste sa naučili
Cvičenie: približne 2 minúty.
Zobraziť odpoveď a vysvetlenie
12 očakávaných − 8 obsadených = 4 prázdne. Duplikáty a riadky mimo mriežky pokrytie nepridajú.
Ďalšie otázky
Znamená prázdna minúta automaticky chybu poskytovateľa?
Nie. Nástroj našiel pozíciu bez platného záznamu v deklarovanej mriežke, ale nepozná seansu a pravidlá publikovania daného produktu. Najprv porovnajte kalendár, pásmo a denník sťahovania. Tak odlíšite zatvorený trh, chybu exportu a chýbajúce pozorovanie. Pred vyšetrením príčiny nevkladajte cenu. Uchovajte použitý kalendár aj presné okno. Dve prázdne otvorenia nie sú automaticky dve zmerané minúty výpadku služby.
Prečo môže mať súbor nula medzier a konflikt OHLC?
Pokrytie zisťuje, či má pozícia aspoň jeden platný záznam. Dve rozdielne ceny pri rovnakom čase môžu prejsť pravidlami OHLC; miesto je obsadené, ale nejednoznačné. Nástroj konflikt vykáže osobitne a nevyberá variant. Porovnajte pôvodný zdroj. Zoradenie spor nevyrieši. Naopak, nový EUR príklad má jednu rovnakú sviečku v každom samostatnom variante, takže konflikt nevznikne, hoci poradie vnútri sviečky zostáva neznáme.
Načíta nástroj ľubovoľný export bez prípravy?
Nie. Potrebuje presne päť stĺpcov timestamp,open,high,low,close, ceny s desatinnou bodkou a úplné časové značky s posunom UTC. Úvodzovky, bodkočiarky, ďalšie stĺpce a nezónovaný čas servera vyžadujú prípravu. Pôvodný export aj postup prevodu uchovajte. Určte, či čas označuje otvorenie; export s časom konca je iná mriežka. Samotná zámena oddeľovača nevyrieši význam časov. Nástroj odmietne aj nepodporovanú presnosť namiesto tichého zaokrúhlenia.
Stačí úplná mriežka na prijatie backtestu?
Nie. Pokrytie je dátová kontrola, nie test stratégie. OHLC nezrekonštruuje všetky ticky, historický spread, poplatky alebo poradie plnení. Overte konflikty, zdroj, realizačný model, správanie programu a chronológiu. Historický výsledok je simulácia. Náš protipríklad má rovnaké úplné OHLC a rozdiel čistého výsledku 27 EUR podľa pridelenej cesty. Neurčuje pravdepodobnosť ciest ani ziskovosť. Pri zmene dát alebo predpokladov zachovajte aj starší report.
Zdroje a overenie
- OANDA: Candlestick
Začiatok sviečky, Bid/Ask/mid a complete podľa konca obdobia; nie certifikácia celého exportu.
- OANDA: zarovnanie sviečok
dailyAlignment a alignmentTimezone pri zachovaní výstupného UTC; nejde o náš pevný časový model alebo o živý API test.
- MetaQuotes: Real and Generated Ticks
Časť Real Ticks: generovanie pri dostupnej M1 sviečke bez tickov; OHLC a priebeh ceny sú odlišné informácie.
- MetaQuotes: príprava historických dát
Synchronizácia histórie a možný posun skutočného začiatku pri nedostatku dát. Nie certifikácia testu konkrétneho účtu.
- MetaQuotes: CopyRates
Návrat počtu prvkov alebo chyby; sťahovanie a neskorší vyšší počet. Funkciu sme tu nespúšťali.
Výpočty používajú výslovne uvedené predpoklady. Nenahrádzajú aktuálne trhové údaje ani podmienky poskytovateľa.
