MT5 poate fi conectat la server, deși datele perechii folosite de EA sunt prea vechi pentru decizia acelui program. O sesiune închisă, alt simbol sau condițiile strategiei pot explica aceeași tăcere. Separă aceste cauze înainte să repornești terminalul ori să retrimiți un ordin. Scopul este o fișă de diagnostic pentru simbolul concret, fără tranzacție de probă. Procedura privește MT5 și MQL5, nu orice platformă.

Ce confirmă indicatorul conexiunii?

TERMINAL_CONNECTED descrie legătura terminalului cu serverul de tranzacționare. Conexiunea, vârsta datelor și permisiunea de tranzacționare sunt fapte diferite. Alte instrumente pot primi actualizări în timp ce simbolul urmărit nu are o actualizare nouă în observațiile tale. Un canal funcțional nu dovedește o cotație recentă pentru fiecare pereche.

Identifică numele complet al instrumentului, sufixul, serverul, tipul contului și instanța care rulează EA. Nu copia automat eticheta văzută pe telefon. La VPS verifică instanța remote: afișajul local nu dovedește starea programului de acolo. Monitorizarea VPS explică această separare. Păstrează jurnalele înainte de resetare și stabilește ce instanță controlează efectiv contul.

De ce trei ceasuri pot spune lucruri diferite?

În OnTick, TimeCurrent privește tickul procesat. În alte handlere, inclusiv OnTimer, privește ultima cotație a unui simbol din Market Watch. Așadar, alt instrument poate actualiza acel ceas general. Nu îl transforma în dovada prospețimii perechii țintă.

Pe un ecran mic, derulează tabelul orizontal pentru a citi toate coloanele.

Fiecare citire răspunde altei întrebări
CitireDescrieNu dovedește
TimeCurrent în OnTimerUltimul timp de cotație din Market Watch.Date recente pentru simbolul țintă.
TimeTradeServerTimpul serverului calculat de terminal.Sosirea unei cotații noi.
SymbolInfoTick pentru țintăDatele acelui simbol și timpul ultimei actualizări.Acceptarea sau executarea ordinului.

TimeTradeServer este calculat în terminal și depinde de setările ceasului calculatorului. Cere SymbolInfoTick pentru simbolul exact, verifică rezultatul funcției și notează time_msc, Bid și Ask. Nu scădea un ceas brut al calculatorului dintr-un timestamp al serverului fără alinierea bazei temporale. Ora afișată în București nu este implicit ora serverului brokerului. Vârsta negativă, timestampul lipsă ori citirea eșuată semnalează incertitudine, nu o cotație proaspătă.

Cum ascunde ceasul recent o pereche fără actualizare?

Model propriu, fictiv: toate etichetele folosesc aceeași axă ilustrativă de timp a serverului. Observăm la 12:00:00, iar TimeCurrent este citit în OnTimer. Nu sunt înregistrări ale unui broker și nu definim limita acceptabilă pentru o piață.

Conectat, dar simbolul țintă are date mai vechi

Conectat, dar simbolul țintă are date mai vechiModel fictiv la 12:00:00: EUR/USD actualizat la 11:59:59, GBP/JPY la 11:59:35. Ceasul general recent nu confirmă date noi pentru GBP/JPY. Distanțele sunt schematice; intervalele se calculează din etichete.Axă comună a timpului serverului 11:59:3511:59:59 Ultimul tick GBP/JPY25 secunde fără actualizare Ultimul tick EUR/USD1 secundă de la actualizare Control: 12:00:00Două simboluri cer verificări separate
Conectat, dar simbolul țintă are date mai vechi. Modelul inițial: control 12:00:00, actualizări 11:59:59 și 11:59:35; axa grafică este schematică.

Vârsta de 1 secundă a ceasului general nu confirmă prospețimea GBP/JPY; datele țintei au 25 secunde în model.

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.

EUR/USD s-a actualizat la 11:59:59; GBP/JPY la 11:59:35. Ceasul general este cu o secundă în urmă, însă datele țintei au 25 secunde în model. Pozițiile grafice sunt schematice: calculează intervalele din etichete, nu din distanțe în pixeli. Diferența nu dovedește o avarie a brokerului. Sesiunea, disponibilitatea simbolului și condițiile programului cer verificări separate.

Repetă observația după un interval măsurat cu un contor de timp scurs. Dacă time_msc este neschimbat, ai dovezi că în acele citiri nu a apărut o actualizare cu timestamp mai nou. Nu ai măsurat astfel întârzierea de transport a unui tick de la sursa sa la calculator. Păstrează observațiile separat de cauza suspectată.

Exemplu nou: preț identic nu înseamnă timestamp identic

Model diagnostic separat, fără bani sau ordine: o citire A reușită întoarce tickul 11:59:59.900, Bid 1.10000 și Ask 1.10010. După 300 ms de timp scurs, citirea B reușită are tickul 12:00:00.200 și aceleași prețuri. Timestampul a avansat cu 300 ms, deși prețurile afișate nu s-au schimbat. Structura MqlTick include și alte câmpuri; citește flags pentru tipul schimbării, fără să deduci din prețurile identice că programul este blocat.

Pe un ecran mic, derulează tabelul orizontal pentru a citi toate coloanele.

Ce poți concluziona din citiri fictive
ObservațieTimestamp țintăRezultat util
A: citire reușită11:59:59.900Un punct de comparație.
B: citire reușită, prețuri identice12:00:00.200Timestamp cu 300 ms mai nou.
C: citire eșuatăNecunoscutNu substitui vârstă zero.

La un ceas de control presupus aliniat, 12:00:00.250, vârsta calculată a lui B este 50 ms. Acum presupune separat o incertitudine a ceasului de ±100 ms: intervalul rezultat este −50 până la 150 ms. Nu poți certifica pragul ales de 100 ms din estimarea centrală de 50. Capătul negativ nu înseamnă actualizare din viitor confirmată; arată limita alinierii. Nici 100 ms nu este standard recomandat pentru tranzacționare. În practică incertitudinea poate avea alte cauze și amplitudini.

Piață liniștită sau problemă a programului?

Compară programul cotațiilor cu programul tranzacționării acelui instrument, inclusiv convenția orară a furnizorului, pauzele și anunțurile de sărbători. În afara sesiunii, o valoare veche poate fi așteptată. Orele unei perechi valutare nu stabilesc programul unui indice sau metal din aceeași listă. Niciun număr unic de secunde nu diagnostichează fiecare instrument și strategie.

OnTick privește simbolul graficului pe care este atașat EA. Un NewTick nou nu intră în coadă dacă unul este deja în așteptare sau procesare. Numărul înregistrărilor OnTick nu trebuie să coincidă cu numărul tickurilor. La un robot cu mai multe simboluri, separă graficul gazdă de instrumentele pe care le folosește efectiv.

Dezactivarea AutoTrading interzice cererile de tranzacționare ale EA, fără să oprească automat calculele sau execuția curentă OnTick. Notează separat activitatea programului, actualizările datelor, condițiile strategiei și răspunsurile de tranzacționare. Un mesaj periodic în jurnal nu dovedește semnal de intrare. Separă „fără semnal”, „fără date” și „tranzacționare nepermisă”: nu cer aceeași intervenție.

Ce păstrezi înainte de reluarea cererilor?

Fișa include momentul și baza temporală, serverul și simbolul complet, conexiunea, succesul citirii, timestampul, Bid/Ask, sesiunea, starea programului și ultimul răspuns comercial. Exemplu: „12:00:00, axa serverului; GBP/JPY; citire reușită; tick 11:59:35; sesiune neconfirmată; intrări noi suspendate”. Elimină parola și identificatorul complet al contului dintr-o cerere de suport.

Revenirea datelor nu spune ce s-a întâmplat cu ordinul trimis anterior. După răspuns incert, reconciliază pozițiile, ordinele active și istoricul înainte de retrimitere. Erorile de ordine MT4/MT5 explică pașii. Expunerea existentă necesită verificarea protecției acceptate chiar când robotul nu trimite cereri noi.

Ce testezi fără tranzacție live?

  1. Notează contul, serverul, simbolul și programul său de cotații/tranzacționare. Compară cu ora incidentului, fără o conversie de fus presupusă.
  2. Pe demo, ia două observații cu rezultat al citirii, timestamp, Bid/Ask, conexiune și program. Măsoară intervalul și marchează lipsurile ca necunoscute.
  3. Reconciliază starea contului înainte să reiei cererile și verifică cerința de prospețime a strategiei proprii. Dacă motivul rămâne neclar, folosește fișa anonimizată pentru dezvoltator sau furnizor. Nu trimite un ordin numai pentru diagnostic.