În acest articol
După lectură vei putea să…
- Separi disponibilitatea funcției API de calitatea arhivei.
- Selectezi versiunea cunoscută la decizie și distingi null de zero.
- Recunoști informația viitoare chiar când reduce aparent volumul.
Explicații ale termenilor în articol
Backtesting: testare pe date istorice Expert Advisor (EA) Calendar economicUn EA poate descărca date API pe demo, fără răspuns echivalent în tester. Nu este automat avarie a serverului. Verifică disponibilitatea funcției în mediul de test înaintea arhivei. Folosirea valorii de azi pentru o decizie veche schimbă informația experimentului. Exemplul de mai jos reia versiuni explicite, fără conexiune API externă.
De ce WebRequest funcțional pe demo nu ajunge?
Documentația MQL5 precizează că WebRequest nu se execută în Strategy Tester. Lista URL-urilor permise în terminal nu elimină restricția. Separă funcția indisponibilă de problemă de rețea, autorizare eșuată ori răspunsul primit în operarea obișnuită.
Dacă regula cere observație economică externă, nu înlocui eșecul cu zero: zero poate fi valoare validă, eroarea înseamnă indisponibilitate. Nici fișierul nu rezolvă totul dacă păstrează revizuiri necunoscute la decizie. Definește observația, versiunea, valoarea și ora disponibilității înaintea legării semnalului direct la HTTP. Structura EA separă date, decizie și execuție.
Cum separi adaptorul online de cel offline?
Adaptorul online interpretează răspunsul furnizorului; cel de test alege înregistrarea păstrată și disponibilă la momentul deciziei. Ambele livrează același tip de rezultat: valoare validă, indisponibilitate explicită sau eroare. Este organizare propusă, fără robot complet ori compatibilitate garantată cu orice API. Schimbarea adaptorului nu trebuie să modifice pe ascuns sensul informației.
Păstrează răspunsurile brute separat de inputurile pregătite. Înregistrează sursa, schema, ora preluării și dovada disponibilității. Perioada descrisă de observație diferă de momentul cunoașterii. Dacă știi numai data versiunii, nu inventa ora UTC a publicării. Arhiva zilnică singură nu stabilește disponibilitatea intraday.
St. Louis Fed explică versiunile datelor: FRED arată ultima variantă, iar ALFRED păstrează variantele înlocuite. Este exemplu de arhivare, fără API universal FX sau dovada orei UTC pentru fiecare observație. Cronologia furnizorului concret trebuie verificată separat.
FileOpen folosește zona de fișiere MQL5, iar în test directorul agentului. Calea relativă nu indică neapărat folderul obișnuit al terminalului. Verifică deschiderea și citirea; un input lipsă nu devine tabel gol tratat ca istoric complet.
Ce versiune poate folosi decizia anterioară?
Istoric propriu al trei răspunsuri
Observația fictivă GDP-model, 1 octombrie 2026, nu reprezintă publicare PIB ori endpoint real. Toate orele sunt UTC. availableAt stabilește accesul în model, fără ora execuției ordinului.
Pe un ecran mic, derulează tabelul orizontal pentru a citi toate coloanele.
| availableAt | revision | value |
|---|---|---|
| 2026-10-01T12:00:00Z | initial | "1.0" |
| 2026-10-01T13:00:00Z | revised | "1.4" |
| 2026-10-01T14:00:00Z | unavailable | null |
La 12:30 se alege 1,0; la 13:30, 1,4. La 14:30, cel mai nou rând eligibil este null: indisponibil, fără revenire la 1,4 și fără zero substituit.
Versiunea disponibilă atunci, nu azi
Pe un ecran mic, derulează diagrama orizontal sau mărește-o. Explicația este disponibilă și în text.
Regula fictivă „valoare peste 1,2” este falsă la 12:30. Înlocuirea cu versiunea viitoare 1,4 ar inversa decizia, chiar cu aceleași prețuri. Instrumentul selectează înregistrarea, fără calcul de semnal sau randament. Dacă vrei păstrarea ultimei valori valide, definește separat vârsta permisă și motivul lipsei înaintea rezultatelor; nu adăuga fallback ulterior ca și cum testul ar fi neschimbat.
Model RON: volumul mai mic poate folosi tot informație viitoare
Arhivă FX separată, complet sintetică: 4,50 RON/USD disponibil la 12:00 UTC, 4,80 la 13:00. Decizia este 12:30. Buget planificat 200 RON, stop 40 pipuri, contract liniar cu 10 USD/pip/lot, pas 0,01 loturi, fără costuri sau alte expuneri.
Valoarea disponibilă 4,50 dă 200/(40×10×4,5)=1/9 lot, rotunjit în jos la 0,11 loturi; buget de preț 198 RON. Folosirea anticipată a valorii 4,80 dă 5/48≈0,10417, rotunjit la 0,10, cu 192 RON la acel curs. Volumul mai mic nu face metoda cronologic corectă. Leakage poate modifica și prudent aparent dimensiunea; nu trebuie să îmbunătățească profitul pentru a fi eroare.
Cursurile sunt inputuri declarate, fără cotație USD/RON sau conversie executabilă reală. Marja, spreadul, comisionul și prețul efectiv de ieșire lipsesc din model. Rămâne nevoie de verificarea lor; aritmetica nu garantează pierderea maximă și nu recomandă volum.
Leakage rămâne eroare chiar fără randament crescut. Disponibilitatea temporală este criteriu separat de prudența volumului.
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.
- Versiune disponibilă 4,50
- 1/9 lot →0,11;198 RON – 200/(40×10×4,5), rotunjit în jos.
- Versiune viitoare 4,80
- 5/48 lot →0,10;192 RON – Volumul mai mic nu repară utilizarea informației indisponibile.
Ce verifici în replayerul local?
Lipește obiect JSON cu version numeric 1 și array events. Fiecare eveniment are exact availableAt, observation, value, revision. Timestampul cere YYYY-MM-DDTHH:mm:ssZ, fără fracții de secundă ori alt offset. Numele observației și revizuirii sunt texte; valoarea este text numeric cu punct sau null, fără conversie la Number. Păstrează aceste literale chiar dacă proza română folosește virgulă.
Reia informația disponibilă la momentul deciziei
Exemplul educațional rulează local în browser: fără cont sau API, fără trimiterea datelor ori salvare persistentă. Nu introduce parole sau date personale.
Introdu separat decisionAt în același format UTC. Se alege cea mai nouă versiune cu disponibilitate cel mult egală cu decizia. Înaintea primei înregistrări nu există valoare. Două rânduri cu aceeași observație și oră sunt ambigue și se resping, fără arbitraj după ordinea lipirii. Eticheta revision nu este contor numeric cronologic.
Limite: 1–200 evenimente, 64 KiB JSON, opt niveluri și 2.000 valori. Observation/value au maximum 128 caractere, revision 64. Analiza locală nu verifică autenticitatea arhivei ori ora publicării, nu descarcă date și nu cere chei. Nu introduce parole. JSON valid cu timestamp inventat rămâne input greșit.
Documentația mediului de test separă fișierele agenților de terminal. Fixează copia datelor pentru rulările paralele, fără suprascriere cu răspuns live. În manifestul rulării identifică datasetul păstrat, fără numai numele endpointului. Backtestul Python dezvoltă îmbinarea temporală, iar calendarul economic tratează revizuirile. Replay de date nu reproduce automat Bid/Ask, taxe, volum sau starea pozițiilor.
Ce verifici înaintea evaluării rezultatelor EA?
- Scrie contractul datelor și separă adaptoarele. Păstrează sursele brute și dovezile disponibilității; versiunea istorică lipsă rămâne limită, fără valoarea de azi atribuită trecutului.
- Urmărește observația înaintea primei versiuni, între publicare și revizuire și după null. Testează limita exactă a orei și timestampurile conflictuale.
- Confirmă fișierul citit în tester și tratarea lipsei. Arhivează datasetul, raportul și inputurile selectate; apoi verifică semnalul, execuția și costurile separat.
Compară mai întâi câteva decizii fără ordine. Selectarea corectă a versiunilor explică o componentă, fără avantaj de strategie ori profitabilitate viitoare demonstrată.
Verifică ce ai învățat
Exercițiu: aproximativ 3 minute.
Arată răspunsul și explicația
Rândul de la 12:00 este eligibil; revizuirea ulterioară nu schimbă inputul de atunci.
Alte întrebări
Permisiunea URL activează WebRequest în tester?
Este suficient tabelul istoric descărcat azi?
Null este zero sau păstrează valoarea anterioară?
Replay corect validează întregul backtest?
Surse și verificare
- MetaQuotes — WebRequest
Restricția Strategy Tester nu este eliminată prin lista URL-urilor permise.
- MetaQuotes — FileOpen
Sandbox MQL5, directorul agentului de test și INVALID_HANDLE la eșec.
- St. Louis Fed — Data Revisions with FRED
Articol din 1 august 2022: ultima versiune în FRED, variante înlocuite în ALFRED; fără validarea orei UTC a unui release.
- MetaQuotes — Testing Features
Mediile și fișierele agenților sunt separate de terminal; păstrează copia datasetului.
Calculele folosesc ipotezele precizate explicit. Nu înlocuiesc datele actuale ale pieței sau condițiile furnizorului.
