Un 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.

availableAtrevisionvalue
2026-10-01T12:00:00Zinitial"1.0"
2026-10-01T13:00:00Zrevised"1.4"
2026-10-01T14:00:00Zunavailablenull

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

Versiunea disponibilă atunci, nu aziGDP-model fictiv: 1.0 disponibil la 12:00 UTC, revizuire 1.4 la 13:00, null la 14:00. Deciziile la 12:30,13:30,14:30 selectează 1.0,1.4,indisponibil. Lipsa nu este zero.Versiunea disponibilă atunci, nu azi12:00 UTCinițialvaloare: "1.0"12:30 → 1.013:00 UTCrevizuitvaloare: "1.4"13:30 → 1.414:00 UTCindisponibilvaloare: null14:30 → lipsăEvenimente fictive din 1 octombrie 2026 • UTC
Revizuirea nu schimbă cunoașterea deciziei anterioare. În varianta noastră, null blochează evaluarea unui semnal nou.

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.

Volum mai mic, cronologie tot greșităModel RON fictiv la 12:30 UTC: FX 4,50 disponibil 12:00, FX 4,80 abia 13:00. Buget 200 RON, stop 40 pipuri,10 USD/pip/lot,pas 0,01,fără costuri.CALCUL IPOTETICVersiune disponibilă 4,501/9 lot →0,11;198 RONVersiune viitoare 4,805/48 lot →0,10;192 RON
Volum mai mic, cronologie tot greșită. Model RON fictiv la 12:30 UTC: FX 4,50 disponibil 12:00, FX 4,80 abia 13:00. Buget 200 RON, stop 40 pipuri,10 USD/pip/lot,pas 0,01,fără costuri.

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.

Formatul și limitele modelului

version: 1; events: 1–200 obiecte cu exact câmpurile availableAt, observation, value, revision. availableAt: YYYY-MM-DDTHH:mm:ssZ. observation: text până la 128 caractere; revision: până la 64; value: text numeric cu punct zecimal până la 128 caractere sau null. Lipsa nu este zero.

Se selectează ultima versiune cu availableAt cel mult egal cu ora deciziei. Două înregistrări cu aceeași observație și disponibilitate sunt ambigue și blochează analiza. JSON: 64 KiB, opt niveluri, 2.000 valori. Orele sunt declarații; pagina nu verifică momentul real al publicării.

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?

  1. 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.
  2. Urmărește observația înaintea primei versiuni, între publicare și revizuire și după null. Testează limita exactă a orei și timestampurile conflictuale.
  3. 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ă.