V tomto článku
Po přečtení dokážete…
- Zachovat podmínky dvou běhů ve shodném třináctipolovém formátu.
- Vysvětlit komisi přes počet plnění a nezaměnit shodný součet za shodné operace.
- Najít první rozdílnou událost bez zničení původního archivu.
Vysvětlení pojmů přímo v článku
Backtest: historický test pravidel Obchodní provize Expert Advisor — obchodní programDva běhy stejného robota mohou dát jiné výsledky při zdánlivě stejných parametrech. Než upravíte strategii, ověřte také kód, data, kontrakt a model provedení. Manifest zaznamenává podmínky běhu; zdejší porovnávač kontroluje dvě deklarace, nikoli skutečný terminál nebo úplnost prostředí.
Nejdřív uchovejte oba původní běhy
Zachovejte obě zprávy, seznamy plnění, deníky i parametry, včetně méně příznivého výsledku. Snímek equity neukáže první rozdílnou cenu, počet dílčích plnění ani skutečný začátek testu. Potřebujete návaznost podmínky → operace → výsledek, ne pouze podobný obrázek.
Odlište jeden test s pevnými parametry, optimalizační hledání a hodnocení pozdějšího období. „Stejný robot“ může znamenat stejné jméno souboru s jinou kompilací nebo knihovnou. Uložte build terminálu, program a závislosti. Název souboru neidentifikuje jeho obsah.
Porovnejte požadovaný a skutečný začátek. MT5 může při nedostatečné přípravné historii posunout start testu; ověřte konkrétní log. Celý měsíc a zkrácený úsek nejsou stejným hodnocením. Kontrola pokrytí CSV prověřuje export; tento článek sleduje širší podmínky běhu.
Třináct polí stejného formátu
Vložte dva JSON objekty s přesně danými třinácti názvy. Klíče nepřekládejte a nepřidávejte vlastní pole nejvyšší úrovně. version je číslo 1: verze formátu, nikoli robota. Ostatní podporované hodnoty jsou řetězce; inputs, costs a initialState smějí být také běžné objekty.
Na malé obrazovce posouvejte tabulku vodorovně, abyste přečetli všechny sloupce.
| Klíče | Význam uložené deklarace |
|---|---|
version, platform, build, codeRevision | Formát, platforma, build a identifikace kódu včetně závislostí. |
inputs, dataSnapshot | Parametry a zachovaná verze dat. |
symbolSpecification, executionModel, costs | Kontrakt, model provedení a všechny předpokládané náklady. |
requestedStart, actualStart, end | Požadovaný a skutečný začátek a konec hodnocení. |
initialState | Počáteční prostředky, pozice a relevantní inicializační stav. |
Do dataSnapshot patří identifikátor skutečného archivu nebo samostatně spočítaný kontrolní součet. Text data-v1 zůstává tvrzením: stránka soubor nečte. Ani slovo hash v codeRevision výpočet neověřuje. Uveďte technické verze bez hesel, přístupových kódů a osobních údajů.
Data zapisujte s explicitním pásmem, nejlépe jednotně v UTC. Připsat Z k času serveru jej do UTC nepřevede. Doslovně jiné popisy stejného okamžiku mohou potřebovat ruční standardizaci. Neznámou hodnotu otevřeně označte k dohledání, místo vymyšlení důvěryhodně vypadajícího identifikátoru.
Co porovnávač kontroluje
Lokální nástroj nabídne dva upravitelné příklady a porovná pole. Neodesílá data, neimportuje soubory, trvale neukládá vstup a nespouští MT5 ani účet. Shodné objekty znamenají shodně zadané údaje, ne úplně popsané nebo skutečně totožné prostředí.
Každý záznam má limit 64 KiB. Prázdné či vynechané pole znamená neznámou hodnotu. Duplicitní klíče a nezdokumentovaná pole nejvyšší úrovně jsou odmítnuty. Limit je osm úrovní a 2 000 hodnot; vnořená čísla nejvýše s patnácti významnými číslicemi bez nebezpečně velkých celých čísel. Specifikační čísla zapisujte jako řetězce s desetinnou tečkou. Srovnání je doslovné, nevyrovnává různý slovník a formáty času.
Porovnejte dva záznamy testu
Bez JavaScriptu zůstávají čitelné pokyny a výpočty. U ukázkových deklarací zachovejte formát i technické identifikátory: perioda „14“, syntetické verze kódu a exportu, začátek 2026-10-01T00:00:00Z, konec 2026-10-12T00:00:00Z, počátečních „1000“ USD a žádné pozice. Nejde o skutečný report tohoto webu.
Stejný obchod, změněná komise
Původní fiktivní lineární kontrakt má účet USD, jeden uzavřený obchod a dvě plnění. Cenové P/L je 10 USD, shodné ceny, množství a období, nulové financování a jiné náklady. A deklaruje 1 USD za plnění, B 2 USD. Jde o zvolený model, nikoli sazebník brokera.
A:10−2×1=8 USD; B:10−2×2=6 USD. Rozdíl 2 USD vysvětlí samotná komise. Nepotvrzuje horší signály, skluz ani chybu dat. Nástroj má označit změnu costs; příčinný závěr stále vyžaduje ověřit zprávu a ostatní předpoklady.
Jeden obchod, dvě předpokládané sazby
Aritmetika izoluje komisi za uvedených předpokladů. Porovnávač neověřuje jejich shodu se skutečným reportem.
- Běh A
- Čistě +8 USD – 2 plnění ×1 USD=2 USD náklad.
- Změna costs
- Rozdíl 2 USD – Pouze deklarovaná cena každého plnění stoupla o 1 USD.
- Běh B
- Čistě +6 USD – 2 plnění ×2 USD=4 USD náklad.
Nový samostatný CZK případ: dva běhy hlásí stejnou čistou částku +800 Kč. A má cenový výsledek +1 000 Kč a dvě komise po 100 Kč. B má +1 200 Kč a dvě komise po 200 Kč. Agregát je stejný, ale cenový rozdíl +200 a nákladový rozdíl −200 se pouze vyrušily.
Kdybyste změnu ceny opomenuli a vysvětlili B jen vyšší komisí, předpověděli byste +600 Kč místo deklarovaných +800. Hledejte původ rozdílu plnění, množství nebo vstupních cen. Toto je kontrola účetní konzistence, ne automatický důkaz skluzu ani závěr, že B má lepší strategii.
Shodné deklarace jsou začátkem pátrání
Najděte první jinou událost: čas signálu, symbol, stranu ceny, množství a důvod vstupu či výstupu. Zaznamenejte také rozhodnutí bez obchodu. Konečné saldo může schovat odlišný první odečet indikátoru. V kontrolním opakování změňte jednu věc a zachovejte starou zprávu.
Prověřte souborové závislosti a inicializaci. Testovací agent má vlastní prostředí globálních proměnných a souborových operací oddělené od terminálu. Při náhodných hodnotách uchovejte způsob inicializace generátoru. Neházejte každou odchylku na cache a nemažte jako první jediný archiv původních dat.
Manifest může opomenout závislost či chybně popsat data. Automaticky nevybírejte hezčí report a horší neoznačujte za chybu platformy. Výzkumný rámec a důkazní registr rozvíjí kontrolu verzí; průvodce testery konkrétní nastavení.
Po porovnání vytvořte reprodukovatelný případ
- Uchovejte A a B zvlášť a doplňte třináct deklarací. Každý identifikátor připojte ke správnému archivu kódu, dat a parametrů; neznámé údaje nevymýšlejte.
- Vyberte jednu odchylku. U komise srovnejte počet plnění a účtování; u posunutého startu první dostupný signál. Zachovejte i běh, který původní vysvětlení nepotvrdí.
- Při shodných deklaracích vyhledejte první rozdílný záznam deníku a potřebné vstupy. Případný nový build uložte vedle původního, ne místo něj.
- K hodnocení strategie se vraťte po vysvětlení podmínek. Porovnávač necertifikuje historii ani nepředpovídá výnos.
Ověřte si, co jste se naučili
Přibližně 2 minut procvičování.
Zobrazit odpověď a vysvětlení
A:10−2=8 USD, B:10−4=6 USD. Rozdíl je 2 USD.
Další otázky
Certifikují shodné manifesty reprodukovatelný test?
Ne. Stejný text dataSnapshot neověřuje stejné soubory ani úplné prostředí. Uchovejte zprávy, program, nastavení a data, kontrolní součty spočítejte zvlášť. Shodná pole nevyloučí chybějící závislost nebo nepopsaný počáteční stav.
Mám nejdřív vyčistit cache nebo překompilovat EA?
Nejdřív zachovejte důkazy obou běhů. Jinak ztížíte reprodukci příčiny. Potom porovnejte deklarace a první odchylku a proveďte jednu kontrolovanou změnu. Novou kompilaci i build zaznamenejte a původní program uchovejte.
Proč se actualStart liší od requestedStart?
Tester potřebuje také předchozí přípravnou historii. Při jejím nedostatku může začátek posunout. Nesepisujte oba časy jako stejné bez kontroly; ověřte rozsah historie, model, zprávu a log konkrétního testu.
Mám vybrat výnosnější běh?
Nejdřív srovnejte podmínky. V dolarovém příkladu vyšší výsledek znamená pouze nižší komisi, ne lepší signál. Teprve po vysvětlení příčiny posuzujte strategii s náklady, drawdownem a odděleným hodnocením. Historický zisk necertifikuje správnost deklarací.
Zdroje a ověření
- MetaTrader 5 — Test versus optimalizace
Čerstvě přečteno rozlišení jednoho běhu s pevnými parametry a optimalizační řady i relevantní nastavení období a komisí. Přečtení dokumentace není spuštění testeru ani ověření zadaného JSON.
- MetaTrader 5 — Příprava historie pro test
Čerstvě přečteny části Loading Historical Data a Minimum Historical Data Requirements o přípravné historii a možném posunu skutečného začátku. Stejné upozornění je v části Date stránky Strategy Testing. Konkrétní běh vyžaduje vlastní zprávu a deník; nepřebírám různá zobecnění o minimální historii bez kontroly.
- MetaTrader 5 — Oddělené prostředí agenta
Čerstvě přečteny relevantní části o vlastních globálních proměnných agenta, přenosu parametrů a souborovém prostředí. Nepřebírám úvodní marketing jako důkaz ziskovosti ani tvrzení o unikátnosti libovolného hashe.
Výpočty používají výslovně uvedené předpoklady. Nenahrazují aktuální tržní údaje ani podmínky poskytovatele.
