Prax a overovanie

Backtest v MT4 a MT5: režimy, dáta a spoločný kapitál

Pokrytie minút oproti počtu tickov, indexovanie a UTC filter. Nový EUR príklad ukazuje, prečo sčítanie reportov nenahrádza test spoločného účtu.

Abstraktná redakčná ilustrácia vytvorená AI k téme „Backtest v MT4 a MT5: režimy, dáta a spoločný kapitál“. 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…

  • Rozlíšiť pokrytie minút od podielu reálnych záznamov.
  • Overiť ukončenú sviečku, časový filter a dostupnosť vstupov.
  • V novom EUR modeli oddeliť dva samostatné účty od spoločnej marže.

Vysvetlenie pojmov priamo v článku

Backtest: skúška pravidiel na historických údajoch Bid a Ask Spread: rozdiel ask a bid Provízia za obchod Pokles od maxima: drawdown Podiel ziskových obchodov (win rate)

Ziskový backtest sa môže zásadne rozísť s reálnym obchodovaním pri nevhodných dátach, realizácii alebo výbere parametrov. Tester MT4 a MT5 nie je potvrdenie budúcich výnosov. Overte, čo presne modeloval, z akých údajov a kedy sa informácia smela použiť.

Tester MT4 a MT5: rozdiely, ktoré menia model

Oba spúšťajú EA na histórii. MT5 umožňuje viac symbolov a rozdeľuje optimalizačné pokusy agentom; jeden test EA preto automaticky nepoužíva všetky jadrá. Aj MT4 má genetický optimalizátor, ale štandardný tester nerealizuje obchody na inom než testovanom symbole. Sčítať samostatné reporty neznamená nasimulovať spoločný kapitál portfólia.

Uložte zostavu terminálu, skompilovaný EA, parametre, kontrakt a účet. Údaje stiahnuté cez MT4 History Center sa môžu líšiť od histórie brokerského servera. Dĺžka dát ani názov intervalu samy neurčia vhodnosť. Základy MT4 a Vlastnosti MT5 pomôžu vybrať prostredie.

Viac tickov neznamená viac minút s tickmi

Pred porovnávaním percent určte, či menovateľ počíta časové intervaly alebo jednotlivé záznamy.

Viac tickov neznamená viac minút s tickmi

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

Viac tickov neznamená viac minút s tickmiModelové dáta majú tri minúty s dostupnými minútovými sviečkami. Prvá obsahuje 10 reálnych tickov, druhá 10 a tretia žiadne. V tretej minúte príklad vygeneruje 80 záznamov. Pruhy počtov 10, 10, 80 používajú spoločnú mierku. Pokrytie minút reálnymi tickmi je 2 z 3, približne 66,67 %, ale reálne záznamy tvoria 20 % z konečných 100. Sú to dve vlastné metriky s inými menovateľmi, nie Modelling Quality alebo skutočný výsledok testera.DVA ODLIŠNÉ MENOVATELETri vymyslené minúty • počet záznamovMinúta 1 • reálne10Minúta 2 • reálne10Minúta 3 • generované80020406080Minúty s reálnymi tickmi: 2 /3Pokrytie minút ≈ 66,67 %Reálne záznamy: (10 + 10) /100Podiel záznamov = 20 %
Časové pokrytie a podiel záznamov odpovedajú na rozdielne otázky.

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

Pôvodný kontrolovaný model má tri rovnako dlhé minúty, každú s minútovou sviečkou. Prvé dve majú po 10 reálnych tickov. Tretia nemá reálne ticky; príklad jej pridelí 80 generovaných záznamov. Celok má 100 záznamov. Nie sú to namerané dáta alebo report platformy.

Naše pokrytie minút reálnymi tickmi je 2/3 ≈ 66,67 %, podiel reálnych záznamov (10 + 10)/100 = 20 %. Viac generovaných záznamov v tej istej tretej minúte zmení druhý menovateľ, nepridá minútu s reálnymi tickmi. Číslo 80 je vymyslené a metriky nedefinujú pole Modelling Quality. Ani jedna nepreukazuje výhodu stratégie.

Režimy modelovania a kvalita histórie

MT4 ponúka Open prices only, Control points a Every tick. Vychádzajú zo sviečkovej histórie a generovaných ciest; Control points je hrubý predbežný odhad. MT5 pridáva brokerom zaznamenané ticky a 1 minute OHLC. Aj denný signál môže mať intradenný stop, preto interval signálu automaticky neoprávňuje zjednodušenú realizáciu. Pravidlo kompatibilné s otváraním sviečok môže použiť zjednodušenie až po kontrole obmedzení.

Pri MT5 môže minúta bez reálnych tickov dostať generované, ak existuje minútová sviečka. Reálny spread sa môže meniť v minúte; generované ticky používajú pridelený spread jej sviečky. Overte režim, nižšie intervaly aj denník.

Import externých tickov do MT4 potrebuje kompatibilný postup, prípadne pripravené testovacie súbory alebo ďalší softvér. Samotné HST sviečky nezaručia autentické tickové modelovanie. V MT5 skontrolujte skutočné pokrytie tickmi aj náhrady, nie iba názov režimu.

Spread, provízia, financovanie a oneskorenie

Overte produkt, účet, províziu, swap a dostupné nastavenie realizácie. Štandardný MT4 tvorí Ask pridaním zvoleného spreadu k Bid histórii. Predvolene používa aktuálny spread na začiatku testu, nie celú historickú cestu. Pri modelovej päťmiestnej kotácii EUR/USD dá 12 bodov × 0,00001 = 1,2 pipu veľkosti 0,0001.

MT5 umožňuje provízie účtu aj vlastné: overte vstup, výstup alebo oba smery a celý uzavretý obchod. Režim výsledku v pipoch vynecháva províziu, swap aj kontrolu marže. Emulácia oneskorenia je scenár, nie rekonštrukcia každej reálnej likvidity či plnenia.

Tri chyby interpretácie testu

Pohľad do budúcnosti používa informáciu nedostupnú pri rozhodnutí. Shift nula označuje aktuálnu, meniacu sa sviečku. O 10:15 poznáte už dosiahnuté maximum H1 sviečky od 10:00, nie jej konečné maximum za celú hodinu. Pravidlo ukončenej hodiny musí počkať. Nemeňte slepo každú nulu na jednotku: zmenili by ste aj platnú detekciu novej sviečky a pravidlá aktuálnej ceny. Overte čas, počet získaných údajov a indexovanie.

V pôvodnom úspešnom CopyRates príklade prišli štyri závery od najstaršieho po aktuálny: 100, 101, 102, 103. V dynamickom poli s as_series=false je rates[1].close = 101, posledný ukončený je rates[2].close = 102. Pri as_series=true dá rates[1].close = 102. Podmienka „posledný ukončený > 101,5“ platí; nesprávne použité rates[1] obyčajného poľa ju zamietne. Ide o zámenu staršej sviečky, nie dôkaz budúcej informácie. Pri menšom vrátenom počte neindexujte štyri prvky.

Preoptimalizovanie môže vzniknúť opakovaným výberom priaznivého šumu. Samotná vysoká úspešnosť, profit factor alebo nízky drawdown ho nedokazujú. Skreslenie preživšími vynechá z testovaného sveta vtedy dostupné nástroje alebo účty, ktoré neskôr zmizli. Použite výber známy k príslušnému dátumu; neuvádzame univerzálne nafúknutie výnosu o 30–50 %.

Report, otvorená expozícia a walk-forward

Čistý výsledok čítajte s počtom obchodov, drawdownom a nákladmi. Pôvodný modelový PLN účet má štart 10 000 a uzavreté zisky 500: zostatok 10 500. Otvorená strata 700 nechá pred ďalšími položkami equity 9 800 PLN. Samotný zostatok expozíciu skryje. Prah profit factoru či Sharpeho pomeru stratégiu necertifikuje. Uchovajte reporty, denníky a oddelené hodnotiace dáta.

Walk-forward postup skúša po sebe zmrazené výbery parametrov na neskorších obdobiach. Porovnávajte rovnako anualizované výnosy aj chronologické mimovzorkové obchody. WFE sám nepotvrdí robustnosť a neurčí preoptimalizovanie; nulový alebo záporný vývojový výnos sťažuje výklad. Walk-forward analýza opisuje postup. Aj hodnotenie mimo výberovej vzorky zostáva simuláciou s predpokladmi.

Nový EUR model: dva samostatné reporty nesimulujú spoločný účet

Oddelený hypotetický model má dva programy A a B. Samostatne má každý účet 1 000 EUR a požaduje long 15 000 EUR na EUR/USD Ask 1,1000 pri Bid 1,0998. Zadaný maržový model rezervuje nominál EUR / 30, teda 500 EUR na pozíciu; je to výpočtový parameter, nie právny výklad. Jediný poplatok je 1 EUR pri vstupe a 1 EUR pri úplnom výstupe, konverzia P/L pevne 0,90 EUR/USD.

Spoločný účet potrebuje spoločné poradie a maržuNový samostatný EUR model: každý program chce long 15 000 EUR na EUR/USD Ask 1,1000/Bid 1,0998. Marža nominál/30 = 500 EUR, vstupná a výstupná provízia po 1 EUR. P/L konverzia 0,90 EUR/USD; prijatie vyžaduje equity po operácii aspoň celú maržu.MODELOVÝ VÝPOČETKaždý samostatný účet 1 000 EURPo vstupe equity 996,30;voľná marža 496,30 EURDva oddelené úplné testyA: 971 EUR; B: 984,50EURJeden účet 1 000 EUR, A užprijatýPridanie B by dalo voľnúmaržu −7,40 EURPrijatý variant podľamodelového pravidlaOtvorený len A →konečných 971 EUR
Spoločný účet potrebuje spoločné poradie a maržu. Nový samostatný EUR model: každý program chce long 15 000 EUR na EUR/USD Ask 1,1000/Bid 1,0998. Marža nominál/30 = 500 EUR, vstupná a výstupná provízia po 1 EUR. P/L konverzia 0,90 EUR/USD; prijatie vyžaduje equity po operácii aspoň celú maržu.

Samostatné reporty nepreukážu realizovateľnosť súbehu na menšom spoločnom kapitále. Model potrebuje zostatok, equity, maržu a poradie udalostí.

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

Každý samostatný účet 1 000 EUR
Po vstupe equity 996,30; voľná marža 496,30 EUR – Zaplatená vstupná provízia 1 EUR a otvorený cenový výsledok −2,70 EUR.
Dva oddelené úplné testy
A: 971 EUR; B: 984,50 EUR – Pridelené výstupy Bid 1,0980 a 1,0990. Dva štarty znamenajú spolu 2 000 EUR, nie 1 000.
Jeden účet 1 000 EUR, A už prijatý
Pridanie B by dalo voľnú maržu −7,40 EUR – Hypotetická equity 992,60 oproti súčtu marží 1 000. Zadané prijímacie pravidlo B zamietne.
Prijatý variant podľa modelového pravidla
Otvorený len A → konečných 971 EUR – B nemá realizovaný výsledok ani poplatky. Iné poradie nie je tá istá simulácia.

Na vlastnom účte každá pozícia pri vstupe ukazuje cenový P/L (1,0998 − 1,1000) × 15 000 = −3 USD = −2,70 EUR. Po vstupnej provízii je equity 996,30 EUR, marža 500 a voľná marža 496,30 EUR. Samostatné presné výstupy pridelíme A na Bid 1,0980 a B na 1,0990: A má −30 USD × 0,90 − 2 = −29 EUR, B −15 USD × 0,90 − 2 = −15,50 EUR. Konečné samostatné účty sú 971 a 984,50 EUR, spolu 1 955,50 zo spoločného počiatočného súčtu 2 000.

Teraz odlišný model jedného hedgingového účtu s iba 1 000 EUR. Pravidlo prijatia požaduje, aby po vstupe equity pokrývala celú novú maržu; marže dvoch longov sa sčítajú bez úľavy. A dostane prioritu a vyplní sa prvý. Pri rovnakej kotácii má účet uvedených 496,30 EUR voľnej marže. B potrebuje ďalších 500 ešte pred svojou províziou a otvoreným výsledkom. Ak by sme ho pripočítali, equity by bolo 1 000 − 2 × 1 − 2 × 2,70 = 992,60 EUR, marža 1 000 a voľná marža −7,40 EUR. Zadané pravidlo preto druhý vstup zamietne.

Pri zadanom samostatnom výstupe A skončí tento spoločný model na 971 EUR; B sa vôbec neotvoril a neplatí jeho poplatky. Sčítať straty −29 a −15,50 a odpočítať ich od 1 000 by vymyslelo obe realizácie bez dostatočného kapitálu. Ani priorita A nie je odporúčaná stratégia: iné poradie by dalo inú prijatú pozíciu.

Predpokladáme presné úplné plnenia, stabilnú požiadavku marže, žiadne iné pozície, toky, financovanie, ďalšie náklady alebo konverzný spread a žiadnu skoršiu likvidáciu A. Spread je v cenách, nie znovu odpočítaný. Pravidlo prijatia a maržový režim sú výslovné modelové podmienky, nie univerzálne správanie MT4, MT5 alebo brokera. Portfóliový test musí vedieť spoločný účet, súbeh a poradie udalostí.

Kedy treba iný nástroj?

Tester hodnotí kód podľa dát a realizácie, ktoré vie modelovať. Diskrečné rozhodnutie potrebuje zaznamenané kritériá a protokol replay; nie je automaticky netestovateľné. Iný nástroj zvoľte pri chýbajúcom vstupe či mechanizme a overte aktuálnu dokumentáciu a dátové podmienky. Porovnanie Forex Tester a Strategy Tester rieši iný replay postup; Metodika backtestu je nezávislá od platformy.

Overí TimeGMT v testeri UTC filter?

V MT5 testeri sa TimeGMT rovná simulovanému TimeTradeServer. Porovnaním oboch nezrekonštruujete historický posun servera voči UTC. Pomenujte každú časovú os a prevod skúšajte na explicitných vstupoch. Pevné „odpočítať dve hodiny“ nie je tabuľka historických zmien.

Overí TimeGMT v testeri UTC filter?

Overí TimeGMT v testeri UTC filter?Jeden vymyslený okamih: 12:00 UTC a 14:00 pri zadanom UTC+2. Filter má interval 12:00–13:00 UTC.12:00 UTCčas rozhodnutiaUTC + 2výslovný predpoklad14:00serverový údajUTC filter12:00–13:00
Rovnosť funkcií v testeri nie je tabuľka historických posunov brokera.

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

Pôvodný model povoľuje 12:00 UTC vrátane až 13:00 UTC nezahrnuté. Rozhodnutie o 12:00 UTC patrí dovnútra. Pri pridelenom UTC+2 má serverový údaj 14:00; nesprávne považovať 14 za UTC by rozhodnutie zamietlo. +2 platí iba pre tento model, nie celoročne pre server alebo Slovensko. Testujte presnú koncovú hranicu, zmenu dátumu a každý zdokumentovaný prechod.

Dokazuje zhoda dvoch časových funkcií v testeri rovnaký živý filter?

Nie. Dokazujú iba rovnosť v simulácii. Potrebujete explicitné UTC, zdokumentovaný posun k dátumu a hraničné testy. Názov funkcie neurčuje brokerské pásmo.

Pred ďalším testom overte export

Pripravte päť stĺpcov timestamp,open,high,low,close a výslovné časové posuny. V lokálnej kontrole CSV zadajte prvý aj posledný očakávaný čas otvorenia a interval. Syntetický M1 príklad od 08:00 po 08:11 má dvanásť riadkov, ale osem odlišných platných časov na mriežke: štyri prázdne pozície, dva nadbytočné riadky v opakovaných časoch a jednu skupinu rozdielnych OHLC. Uchovajte report a medzery porovnajte so seansami produktu. Úplné OHLC nedokazuje úplné reálne ticky; nástroj ceny nevkladá a neoveruje realizáciu testera.

Čo nastaviť pri ďalšom testovaní?

  1. Uchovajte zdokumentované dáta produktu a obdobia. V MT4 sviečky, model a prípadnú externú prípravu FXT; v MT5 pokrytie reálnymi tickmi a náhrady. Uložte zdroj, pásmo a medzery.
  2. Overte náklady a dostupné oneskorenie pre konkrétne prostredie, potom nepriaznivejšie scenáre. Pevných 7 USD a pipové penalizácie nie sú univerzálny cenník.
  3. Štyri roky na výber a nasledujúci rok na zmrazené hodnotenie sú možnosť, ak sa hodí. Porovnávajte rovnakú anualizáciu; WFE pod 0,5 samo nediagnostikuje preoptimalizovanie. Zohľadnite vzorku, režimy a náklady, uchovajte konečné nezávislé hodnotenie.
  4. Pri každom vstupe skontrolujte dostupnosť ceny a indikátora. Nulu nahraďte ukončenou sviečkou iba ak to pravidlo vyžaduje. Zmena výsledku o 30 % nie je sama dôkaz úniku informácií.

Zdrojové dáta a reprodukcia

Samostatná štúdia ECB 2016–2025 uvádza 2 560 publikácií EUR/USD a 49 pracovných dní bez publikácie podľa kontroly TARGET. Referenčný kurz nie je ticková história ani intradenné OHLC.

Kalendár ECB: dáta, metodika a kód

Overte si, čo ste sa naučili

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

Generátor pridá ďalšie záznamy do tej istej tretej minúty. Čo sa v pôvodnom modeli nezmení?

Zobraziť odpoveď a vysvetlenie

Nepribudla minúta obsahujúca reálne ticky. Táto metrika počíta minúty, nie záznamy.

Ďalšie otázky

Čo odlišuje 99 % od 90 % kvality modelovania v MT4?

Pole Modelling Quality opisuje modelovanie tickov z histórie, nie percento správnych predpovedí alebo budúceho zisku. Pri externom nástroji treba overiť jeho definíciu a prípravu. Kontrolujte vnútro sviečky, strany ceny a náklady. Aj MT5 reálne ticky vyžadujú kontrolu pokrytia a generovaných náhrad.

Ako nastaviť tester MT5 krok za krokom?

Vyberte skompilovaný EA, uložte parametre a zostavu. Nastavte symbol, interval, dátumy, účet, vklad, menu a maržu. Režim tickov musí sedieť pravidlu aj histórii; overte províziu, swap a dostupné oneskorenie. Pred optimalizovaním vykonajte jeden test, zosúlaďte operácie a uchovajte report aj denník. Nie je univerzálne minimum päť rokov či pevný čas sťahovania.

Ako sa vyhnúť pohľadu do budúcnosti v MQL5?

Používajte iba vtedy dostupné informácie. Shift nula môže oprávnene obsahovať aktuálny doterajší stav, nie automaticky konečný záver. Pravidlo ukončenej sviečky potrebuje overený čas. CopyRates start_pos a index cieľového poľa sú rozdielne pojmy: skontrolujte as_series, vrátený počet a časy. Rozdiel demo/backtest sám nediagnostikuje únik informácií.

Má zmysel ručný alebo automatický backtest?

Replay môže zachytiť diskrečné kritériá a nejasné prípady, ale aj využívať neskôr zapamätané ceny. Kód reprodukuje pravidlo pri kontrolovaných dátach, verziách, nastaveniach a náhode. Tisíce obchodov nezaručia nezávislosť alebo významnosť. Obe metódy porovnávajte na rovnakých signáloch a realizácii; nemáme univerzálnych sto obchodov, pracovný čas alebo mieru úspechu mechanických systémov.

Zdroje a overenie

  1. MetaQuotes: MT4 nastavenie testera

    Genetická optimalizácia, tri sviečkové režimy, FXT, modelovanie Ask a predvolený spread.

  2. MetaQuotes: obmedzenia MQL4 testera

    Obchodné operácie len na testovanom symbole; samostatné vlastnosti a obmedzenia oproti MQL5.

  3. MetaQuotes: MT4 History Center

    Stiahnuté historické dáta môžu byť odlišné od serverovej histórie brokera; HST a import/export.

  4. MetaQuotes: testovanie v MT5

    Viac symbolov, nastavenia účtu, provízie, pipsový režim bez provízie/swapu/maržovej kontroly a neskoršie hodnotenie.

  5. MetaQuotes: reálne a generované ticky

    Náhrady chýbajúcich tickov pri minútových sviečkach; rozdielne modelovanie spreadu. Hodnoty 10/10/80 sú vlastný model.

  6. MetaQuotes: CopyRates

    Aktuálna sviečka, fyzické poradie dát a počet získaných záznamov; index cieľového poľa nie je rovnaký pojem ako požadovaný shift.

  7. MetaQuotes: TimeGMT

    V testeri sa rovná simulovanému TimeTradeServer, preto táto rovnosť sama neoverí historický UTC posun.

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.