În acest articol
După lectură vei putea să…
- Compari declarațiile a două teste și identifici dovezi lipsă.
- Separi diferența de cost de certificarea mediului de test.
- Reconciliezi comisionul minim pe fill la execuții parțiale.
Explicații ale termenilor în articol
Backtesting: testare pe date istorice Comision de tranzacție Expert Advisor (EA)Două rulări ale aceluiași robot pot da rezultate diferite cu parametri vizibili neschimbați. Verifică și codul, datele, specificația simbolului și execuția înainte să modifici strategia. Un manifest înregistrează aceste condiții. Comparatorul verifică declarațiile introduse, fără acces la mediul real; păstrează rapoartele și jurnalele care susțin fiecare câmp.
Ce arhivezi înaintea următoarei rulări?
Păstrează separat ambele rapoarte, listele execuțiilor, jurnalele și seturile de parametri, inclusiv rezultatul mai slab. Captura curbei nu arată primul fill, numărul execuțiilor parțiale ori începutul real. Ai nevoie de legătura dintre condițiile testului, operațiuni și total.
Testerul MT5 separă testul unic, optimizarea și evaluarea pe perioadă ulterioară. Același nume de fișier poate ascunde compilare sau bibliotecă diferită. Arhivează buildul, programul și dependențele; numele nu identifică octeții.
Compară începutul cerut cu cel efectiv. Pregătirea istoricului poate deplasa startul când lipsesc date anterioare. Luna completă și intervalul scurtat sunt evaluări distincte. Verificatorul acoperirii CSV inspectează exportul, iar manifestul acoperă alte condiții ale rulării.
Cum completezi aceeași schemă?
Folosește exact cele 13 nume de câmp din tabel, fără traducerea cheilor sau câmpuri suplimentare la nivel principal. version este numărul 1, versiunea formatului, fără legătură cu versiunea Expert Advisor. Celelalte valori sunt șiruri; inputs, costs și initialState pot fi și obiecte simple.
Pe un ecran mic, derulează tabelul orizontal pentru a citi toate coloanele.
| Câmpuri | Conținut |
|---|---|
| version, platform, build, codeRevision | Format, platformă, build, cod și dependențe. |
| inputs, dataSnapshot | Parametri și versiunea datelor arhivate. |
| symbolSpecification, executionModel, costs | Contract, simularea execuției și toate costurile asumate. |
| requestedStart, actualStart, end | Limite cerute și efective ale evaluării. |
| initialState | Sold, poziții și condiții de inițializare. |
În dataSnapshot introdu identificatorul arhivei sau hashul calculat separat. Eticheta „data-v1” rămâne declarație: pagina nu citește fișierul. Nici codeRevision numit hash nu este verificat automat. Nu include parole, coduri de acces ori date personale. Valoarea necunoscută trebuie investigată, fără etichetă inventată care pare autoritară.
Folosește date cu fus explicit și reprezentare consecventă, preferabil UTC. Comparatorul compară textul, fără calendarul brokerului. Două descrieri ale aceluiași moment pot cere normalizare manuală; adăugarea literei Z la ora serverului nu o convertește în UTC.
Ce compară instrumentul?
Cele două exemple JSON păstrează versiunea numerică 1, platforma „MT5 — synthetic example”, build „demo-build-a”, cod „synthetic-code-v1”, period „14”, date „synthetic-export-v1” și specificație „synthetic-EURUSD-spec-v1”. Limitele fictive UTC sunt 2026-10-01T00:00:00Z și 2026-10-12T00:00:00Z, începutul cerut și efectiv identice. Starea inițială declară depositUSD „1000” și positions „none”. Nu sunt cont sau rulare reală.
În costs, cele două exemple au fills „2”, financingUSD „0” și otherUSD „0”. Doar commissionPerFillUSD trece de la „1” la „2”. Sintaxa mașinii rămâne cu punct zecimal și chei nemodificate. Exemplele sunt editabile, fără dovada că mediul respectă aceste declarații.
Compară două registre de backtest
Instrumentul rulează local în browser, fără trimitere de date ori salvare persistentă. Nu importă fișiere, nu rulează MT5 și nu citește contul. Obiecte egale înseamnă declarații egale, fără mediu complet ori condiții de piață identice demonstrate.
Formatul documentat acceptă version: 1. Numerele specificației se notează ca șiruri cu punct zecimal. Câmpul gol sau absent înseamnă necunoscut. Cheile duplicate și câmpurile principale nedocumentate sunt respinse. Fiecare registru are limită 64 KiB; maximum opt niveluri și 2.000 valori, iar numerele imbricate maximum 15 cifre semnificative, fără întregi mari nesiguri. Comparația este literală: nu reconciliază automat formate de dată sau descrieri echivalente. Fără JavaScript, exemplele și explicațiile rămân disponibile.
Ce explică singură schimbarea comisionului?
Model fictiv: contract liniar, cont USD, o tranzacție închisă și două filluri. Rezultatul prețurilor este 10 USD, cu prețuri, cantitate și interval identice. Finanțarea și alte costuri sunt zero. A declară comision 1 USD per fill, B 2 USD. Nu este tarif al unui broker.
A:10−2×1=8 USD. B:10−2×2=6 USD. Costul explică diferența 2 USD, fără dovada unor semnale mai slabe, date greșite ori slippage. Comparatorul ar trebui să marcheze costs; interpretarea cere raportul și celelalte ipoteze.
O tranzacție, două ipoteze de cost
Pe un ecran mic, derulează diagrama orizontal sau mărește-o. Explicația este disponibilă și în text.
Model RON: aceeași poziție poate avea alt număr de filluri
Tarif complet fictiv per execuție: maximul dintre 1 RON și 4 RON × volumul executat în loturi, aplicat fiecărui fill, fără alte costuri. Aceeași poziție 0,30 loturi și același rezultat al prețurilor 10 USD, convertit la curs sintetic fix 4,50 RON/USD =45 RON.
A intră printr-un fill de 0,30 și iese printr-unul de 0,30: fiecare costă max(1;4×0,30)=1,20 RON. Total 2,40, net 42,60 RON. B intră prin filluri 0,10 și 0,20, apoi iese cu 0,30. Costuri 1,00+1,00+1,20=3,20 RON; net 41,80 RON. Prețurile medii și volumul pot fi identice, dar pragul minim per fill schimbă taxa cu 0,80 RON.
Nu generaliza la brokeri. La tarif pur proporțional de 4 RON/lot per fill, fără minim, ambele ar costa 2,40 RON. Păstrează volumul fiecărei execuții și unitatea tarifului: „per lot”, „per fill” și „per tranzacție închisă” sunt ipoteze diferite. Pentru această comparație de cost nu deducem un spread nou peste fillurile alese.
Salvează volumele fillurilor și baza comisionului. Același volum total nu identifică taxa cu minim per execuție.
Pe un ecran mic poți derula diagrama orizontal sau o poți mări. Valorile și concluzia apar și în textul de mai jos.
- A: intrare 0,30 / ieșire 0,30
- Cost 2,40 → net 42,60 RON – Două filluri de 1,20 RON.
- B: intrare 0,10+0,20 / ieșire 0,30
- Cost 3,20 → net 41,80 RON – Minime 1 + 1 plus 1,20 RON.
- Fără minim
- Ambele costă 2,40 RON – Tarif pur proporțional; alt model.
Ce verifici dacă declarațiile coincid?
Găsește prima execuție diferită: ora semnalului, simbol, latură, cantitate și motivul intrării ori ieșirii. Soldul final poate ascunde o diferență de la primul indicator. Păstrează și deciziile fără ordin. Modifică o singură condiție într-o reluare controlată, cu raportul anterior păstrat.
Mediul agentului separă variabilele globale și fișierele de terminal. Verifică dependențele și inițializarea; dacă programul folosește aleatoriu, păstrează modul inițializării generatorului. Nu șterge prima dată cacheul și nu atribui automat orice diferență acestuia. Arhiva necesară reproducerii trebuie păstrată.
Registrul poate omite dependențe ori descrie greșit datele. Declarațiile egale încep investigația mai detaliată, fără certificare. Registrul versiunilor și dovezilor dezvoltă validarea; Setările MT4/MT5 completează partea de platformă. Nu alege automat rezultatul superior și nu numi cel inferior eroare de platformă.
Ce păstrezi după comparație?
- Arhivează separat rapoartele A și B și completează cele 13 câmpuri. Leagă identificatorii de fișierele corecte; documentează necunoscutul fără versiuni inventate.
- Alege o diferență și verifică efectul într-un exemplu scurt. Pentru comision reconciliază fillurile și debitările, pentru start găsește primul semnal disponibil. Păstrează și testele care infirmă explicația inițială.
- Dacă declarațiile coincid, localizează primul eveniment divergent. Completează arhiva, apoi revino la evaluarea strategiei. Comparația nu prezice profit și nu certifică rezultatul istoric; nu este recomandare de investiție.
Verifică ce ai învățat
Exercițiu: aproximativ 2 minute.
Arată răspunsul și explicația
A:10−2=8 USD; B:10−4=6 USD. Diferența este 2 USD.
Alte întrebări
Manifestele egale certifică reproducerea testului?
Ștergi cacheul sau recompilezi întâi?
De ce diferă actualStart de requestedStart?
Alegi rularea cu profitul mai mare?
Surse și verificare
- MetaQuotes — Strategy Testing
Test, optimizare, interval și parametri de testare.
- MetaQuotes — pregătirea istoricului
Istoric anterior și posibilă schimbare a începutului efectiv, cu mesaj în jurnal.
- MetaQuotes — mediul și particularitățile testării
Agentul are mediu separat, parametri și dependențe, variabile globale și fișiere.
Calculele folosesc ipotezele precizate explicit. Nu înlocuiesc datele actuale ale pieței sau condițiile furnizorului.
