Prax a overovanie

Rovnaký backtest, iný výsledok: manifest a plnenia

Porovnajte trinásť polí, skutočný začiatok a prvú odlišnú udalosť. USD model sadzby a nový EUR model počtu plnení odhalia limity zhodných deklarácií.

Abstraktná redakčná ilustrácia vytvorená AI k téme „Rovnaký backtest, iný výsledok: manifest a plnenia“. 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…

  • Porovnať dve deklarácie testu bez zamieňania zhodných opisov za dôkaz.
  • Zosúladiť pôvodný USD rozdiel provízií s dvoma plneniami.
  • Odvodiť v novom EUR modeli rozdiel nákladov pri rovnakej sadzbe.

Vysvetlenie pojmov priamo v článku

Backtest: skúška pravidiel na historických údajoch Provízia za obchod Expert Advisor (EA)

Dva testy rovnakého robota môžu skončiť inak aj pri zhodných viditeľných parametroch. Pred zmenou stratégie overte kód, dáta, kontrakt a model realizácie. Záznam podmienok pomôže porovnať deklarácie. Zhodný formulár však nedokazuje zhodné prostredie: potrebujete reporty a udalosti, ktoré ho podkladajú.

Čo zachovať pred ďalším spustením?

Odložte oba reporty, zoznamy plnení, denníky a parametre samostatne, aj s horším výsledkom. Snímka equity krivky neurčí prvú realizačnú cenu, počet čiastočných plnení alebo skutočný začiatok. Potrebujete cestu od podmienok cez operácie ku konečnému účtu.

Oddeľte jeden test, optimalizačné hľadanie a hodnotenie na neskoršom období. „Rovnaký robot“ môže znamenať názov súboru s inou kompiláciou či knižnicou. Uchovajte zostavu terminálu, program a závislosti; názov neidentifikuje obsah.

Porovnajte požadovaný a skutočný začiatok. MT5 dokumentuje posun pri nedostatočnej prípravnej histórii. Celý mesiac a skrátené obdobie sú rozdielne hodnotenia. Kontrola pokrytia CSV skúma samotný export; tu porovnávame širšie podmienky testu.

Ako pripraviť dva záznamy v rovnakej schéme?

Vložte dva JSON objekty s presne uvedenými trinástimi názvami polí. Kľúče neprekladajte ani nepridávajte vlastné na najvyššej úrovni. version je číslo 1, verzia formátu, nie verzia EA. Ostatné hodnoty sú reťazce; inputs, costs a initialState môžu byť aj obyčajné objekty.

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

Polia záznamu a potrebný dôkaz
Presné kľúčeČo zaznamenať
version, platform, build, codeRevisionFormát, platformu, zostavu a identifikáciu kódu so závislosťami.
inputs, dataSnapshotParametre a uchovanú verziu dát.
symbolSpecification, executionModel, costsKontrakt, pravidlá simulácie a všetky nákladové predpoklady.
requestedStart, actualStart, endPožadované a skutočné hranice hodnotenia.
initialStatePočiatočný zostatok, pozície a relevantnú inicializáciu.

Do dataSnapshot patrí identifikátor archívu alebo kontrolný súčet vypočítaný osobitne. Text „data-v1“ zostáva vyhlásením; stránka súbor neotvorí. Nazvať codeRevision hashom neznamená hash overiť. Stačia technické verzie; heslá, prístupové kódy a osobné údaje sem nepatria.

Dátumy píšte s pásmom, vhodne jednotne UTC. Porovnávajú sa zápisy, nie kalendár poskytovateľa. Rôzne opisy toho istého okamihu treba pred porovnaním zjednotiť. Pridať Z za serverový čas nie je prevod na UTC. Neznámu hodnotu ponechajte ako otázku na zistenie, nevymýšľajte dôveryhodne vyzerajúci identifikátor.

Čo porovnávač skutočne preverí?

Nástroj ponúka dva vzorové záznamy a porovná ich polia lokálne v prehliadači. Údaje neposiela, neimportuje súbory a trvalo neukladá zápisy. Nevstupuje do MT5 ani účtu, neoverí pravdivosť opisov. Zhodné objekty znamenajú zhodné deklarácie, nie kompletné a identické prostredie.

V ukážke zostáva pôvodný USD účet 1 000, dátumy 1.–12. októbra 2026 a rovnaká deklarácia kódu aj dát. Mení sa iba costs: 1 USD verzus 2 USD za plnenie pri dvoch plneniach. Sú to syntetické vstupy, nie sadzobník alebo tvrdenie o skutočne vykonanom teste. Technické kľúče a číselné reťazce zachovajte.

Porovnať dva záznamy backtestu

Analýza prebieha lokálne vo vašom prehliadači. Nástroj údaje neposiela ani ich trvalo neukladá. Nezadávajte heslá ani osobné údaje.

Použite zdokumentovanú schému s version: 1. Čísla v špecifikácii zapisujte ako textové reťazce s desatinnou bodkou. Prázdne alebo chýbajúce polia znamenajú neznámu hodnotu. Limit jedného záznamu je 64 KiB.

Formát JSON: polia a limity

version: 1. Ďalšie podporované polia: platform, build, codeRevision, inputs, dataSnapshot, symbolSpecification, executionModel, costs, requestedStart, actualStart, end, initialState.

Hodnoty polí na najvyššej úrovni sú textové reťazce. inputs, costs a initialState môžu byť aj objekty. Prázdne alebo vynechané polia sa považujú za neznáme. Duplicitné kľúče a nezdokumentované polia na najvyššej úrovni sa odmietnu. Limity: 8 úrovní a 2 000 hodnôt; vnorené čísla najviac 15 platných číslic, bez veľkých celých čísel mimo bezpečnej presnosti. Dátumy zapisujte s výslovne uvedeným časovým pásmom. Porovnanie je doslovné: nástroj nezjednocuje odlišné opisy ani formáty dátumov.

Schéma obmedzuje jeden záznam na 64 KiB, osem úrovní a 2 000 hodnôt. Prázdne alebo chýbajúce polia znamenajú neznáme údaje. Duplicitné kľúče a nezdokumentované najvyššie polia sa odmietnu; vnorené čísla majú najviac 15 platných číslic a veľké celé čísla musia zostať v bezpečnej presnosti. Čísla špecifikácie zapisujte radšej ako reťazce s desatinnou bodkou. Porovnanie je doslovné, formáty dátumov nezjednocuje.

Pôvodný USD model: rovnaký obchod, iná provízia

Predpokladajme lineárny kontrakt a jeden úplne uzavretý obchod s dvoma plneniami na USD účte. Cenový výsledok je 10 USD, ceny, množstvo aj obdobie sa zhodujú. Financovanie a iné náklady sú nulové. Test A má províziu 1 USD za plnenie, B 2 USD.

Jeden obchod, dva nákladové modely

Jeden obchod, dva nákladové modelyVymyslený cenový výsledok 10 USD. Dve plnenia stoja 2 USD v A a 4 USD v B. Čisté výsledky sú 8 a 6 USD.Jeden obchod, dva nákladové modelyTest ACenový P/L: +10 USD1 USD za plnenie2 × 1 = 2 USD nákladyČistý: +8 USDJedna opísaná zmenaPole: costsRovnaké ceny aj množstvoČistý rozdiel: 2 USDModel, nie sadzobníkTest BCenový P/L: +10 USD2 USD za plnenie2 × 2 = 4 USD nákladyČistý: +6 USDPredpoklady: 1 obchod, 2 plnenia, ďalšie náklady = 0.
Samotná provízia vysvetlí rozdiel tohto modelu. Nástroj neoveruje pravdivosť deklarovaných podmienok.

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

A má 10 − 2 × 1 = 8 USD, B 10 − 2 × 2 = 6 USD. Rozdiel 2 USD nevypovedá o horšom signále, chybných dátach alebo sklze. Porovnávač má označiť costs; interpretáciu musíte spojiť s reportom a ostatnými predpokladmi. Pri počiatočných 1 000 USD by tieto izolované výsledky dali 1 008 a 1 006 USD.

Nový EUR model: sadzba sa nezmenila, počet plnení áno

Samostatné alternatívne testy majú každý účet 1 000 EUR, long 20 000 EUR na EUR/USD a presné ceny: celý vstup Ask 1,1000, celý výstup Bid 1,1005. Cenový výsledok je +10 USD, pri pevnom 0,90 EUR/USD teda +9 EUR. Jediná hypotetická sadzba je 1 EUR za každé skutočné plnenie, nezávisle od jeho objemu.

Rovnaký opis sadzby nepovie počet plneníSamostatný hypotetický EUR model: účet 1 000 EUR, celý long 20 000 EUR, vstup Ask 1,1000 a výstup Bid 1,1005. Cenový výsledok 10 USD sa prepočíta pevným 0,90 EUR/USD na 9 EUR. Jediná sadzba 1 EUR za každé skutočné plnenie.MODELOVÝ VÝPOČETTest A: vstup 20 000 a výstup20 0002 plnenia → 2 EUR →čistých 7 EURTest B: vstupy 8 000 a 12 000,výstup 20 0003 plnenia → 3 EUR →čistých 6 EURČo sa nezmeniloObjem, ceny, sadzba akonverziaKam uložiť dôkazZoznam plnení +zodpovedajúci costs
Rovnaký opis sadzby nepovie počet plnení. Samostatný hypotetický EUR model: účet 1 000 EUR, celý long 20 000 EUR, vstup Ask 1,1000 a výstup Bid 1,1005. Cenový výsledok 10 USD sa prepočíta pevným 0,90 EUR/USD na 9 EUR. Jediná sadzba 1 EUR za každé skutočné plnenie.

Porovnajte sadzbu aj základ jej účtovania. Rozdiel nákladu nie je automaticky zmena tarify alebo signálu.

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

Test A: vstup 20 000 a výstup 20 000
2 plnenia → 2 EUR → čistých 7 EUR – Konečný účet 1 007 EUR. Jeden vstup a jeden výstup.
Test B: vstupy 8 000 a 12 000, výstup 20 000
3 plnenia → 3 EUR → čistých 6 EUR – Obe vstupné ceny presne 1,1000. Konečný účet 1 006 EUR.
Čo sa nezmenilo
Objem, ceny, sadzba a konverzia – Cena ani sadzba nevysvetľuje rozdiel sama. Potrebujete celý počet zaúčtovaných plnení.
Kam uložiť dôkaz
Zoznam plnení + zodpovedajúci costs – Zhodné deklarácie bez počtu operácií nepotvrdzujú rovnaké účtovanie. Nepridávajte neznáme najvyššie pole.

A otvorí všetkých 20 000 jedným plnením a zatvorí ich jedným: dve plnenia, náklad 2 EUR, čistý výsledok 7 EUR, účet 1 007 EUR. B otvorí 8 000 a 12 000 dvoma plneniami, obe presne na 1,1000, a celých 20 000 zatvorí jedným na 1,1005: tri plnenia, náklad 3 EUR, výsledok 6 EUR, účet 1 006 EUR. Vážený vstup aj cenový výsledok zostali rovnaké.

Ak oba manifesty uvádzajú v costs iba rovnaký opis sadzby, porovnávač ich zhodu nespochybní. Počet skutočných plnení však dokladá až zoznam operácií. Do vlastného nákladového opisu možno doplniť túto informáciu v podporovanom objekte costs; netreba vymýšľať nové najvyššie pole. Pôvodný USD vzor ju už uvádza ako fills.

Rozdiel 1 EUR teda neznamená zvýšenie sadzby ani nevyhnutne iný signál. Model drží rovnaký celý objem, ceny aj pevnú konverziu, dostatočnú maržu a žiadne ďalšie náklady, financovanie, konverzný spread, iné pozície, externé toky alebo skoršie nútené zatvorenie. Spread je v plneniach. Ide o pridelené presné plnenia, nie tvrdenie o tarife brokera alebo záruku budúcej realizácie. Pri inej poplatkovej metóde by bol potrebný nový výpočet.

Čo ak záznamy stále vyzerajú rovnako?

Nájdite prvú odlišnú udalosť: čas signálu, symbol, stranu ceny, množstvo a dôvod vstupu alebo výstupu. Konečný účet môže skryť rozpor už pri prvom indikátore. Zaznamenávajte aj rozhodnutia bez obchodu. V kontrolovanom opakovaní zmeňte jeden predpoklad a uchovajte predošlý report. Viac súčasných zmien oslabí vysvetlenie príčiny.

Skontrolujte závislé súbory a inicializáciu. Dokumentácia odlišuje agenta od terminálu vrátane globálnych premenných a súborových operácií. Ak program používa náhodu, uchovajte spôsob inicializácie generátora. Nepripisujte každý rozdiel cache a nezačínajte zmazaním jediného dôkazu. Reprodukovateľnosť potrebuje pôvodné podklady.

Manifest môže vynechať knižnicu alebo nesprávne pomenovať dáta. Nevyberajte automaticky lepší výsledok ani neoznačte horší za chybu platformy. Register verzií a dôkazov rozvíja postup; Praktický sprievodca MT4/MT5 vysvetľuje nastavenia.

Ako uzavrieť vyšetrovanie dvoch testov?

  1. Uchovajte A aj B a trinásť polí spojte s príslušným archívom kódu, dát a nastavení. Chýbajúca dokumentácia zostáva neznámou, nie vymyslenou verziou.
  2. Vyberte jeden rozdiel a overte krátky celý model. Pri provízii zosúlaďte sadzbu, počet plnení a zaúčtovanie; pri začiatku prvý dostupný signál. Zachovajte aj test, ktorý pôvodnú hypotézu nepotvrdil.
  3. Pri zhode opisov nájdite prvú odlišnú udalosť denníka a chýbajúci dôkaz. K hodnoteniu stratégie sa vráťte po vysvetlení príčiny. Porovnávač nepredpovedá výnos a necertifikuje históriu.

Overte si, čo ste sa naučili

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

Cenový P/L je 10 USD. Dve plnenia stoja v A po 1 USD a v B po 2 USD. Aký je rozdiel čistých výsledkov?

Zobraziť odpoveď a vysvetlenie

A: 10 − 2 = 8 USD; B: 10 − 4 = 6 USD. Rozdiel je 2 USD.

Ďalšie otázky

Certifikujú zhodné manifesty opakovateľný backtest?

Nie. Porovnáva sa zadaný opis, nie celé bežiace prostredie. Rovnaké dataSnapshot neoverí identické súbory. Uchovajte reporty, kód, nastavenia a kópie dát; hash vypočítajte osobitne, ak potrebujete dôkaz identity. Zhoda môže zúžiť otázky, nevylúči vynechanú závislosť, iný počiatočný stav alebo neúplný nákladový opis.

Mám najprv vymazať cache alebo prekompilovať EA?

Najprv odložte dôkazy oboch testov. Zmena programu, histórie či nastavení pred archiváciou sťaží reprodukciu. Porovnajte opisy a prvé rozdielne plnenie, potom kontrolovane jednu zmenu. Pri prekompilovaní zaznamenajte revíziu a zostavu a ponechajte starý program. Neodstraňujte jedinú kópiu potrebných dát.

Prečo sa actualStart líši od requestedStart?

Tester potrebuje aj skoršiu prípravnú históriu. Dokumentácia MT5 opisuje posun skutočného začiatku pri jej nedostatku. Uchovajte obe polia podľa reportu a denníka, nekopírujte dátum automaticky. Skontrolujte rozsah histórie a model. Podobná krivka nenahrádza overenie obdobia a prípravy.

Mám si vybrať test s vyšším ziskom?

Najprv zosúlaďte podmienky. V pôvodnom modeli vyšší výsledok spôsobí iba nižšia provízia, nie lepší signál. Rozdiely môže priniesť obdobie, dáta aj plnenia. Reprodukujte príčinu a podmienky relevantné pre výskumnú otázku; potom hodnotenie s nákladmi, drawdownom a oddelenou vzorkou. História nedokazuje budúci zisk ani správnosť zadaných predpokladov.

Zdroje a overenie

  1. MetaQuotes: Strategy Testing

    Test, optimalizácia, neskoršie hodnotenie, časové hranice, nákladové nastavenia a typy provízií.

  2. MetaQuotes: príprava histórie testu

    Synchronizácia a prípravná história; nedostatok môže posunúť skutočný začiatok, ktorý treba overiť v denníku.

  3. MetaQuotes: osobitosti testovania

    Oddelené prostredie agenta, globálne premenné, prenos parametrov, knižnice a súborové operácie.

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.