Când MT4 sau MT5 refuză un ordin, păstrează mesajul exact și verifică starea contului înainte de alt clic. Problema poate privi prețul, volumul, distanța stopului, permisiunile sau sesiunea instrumentului. Un ordin acceptat cu orice preț nu este scopul diagnosticului: corecția poate modifica riscul. Identifică platforma, operațiunea și condițiile concrete ale simbolului furnizat de broker.

O eroare dovedește că nu s-a întâmplat nimic?

Deosebește respingerea confirmată de executare și de un rezultat încă neclar. După o întrerupere ori un timeout, reconciliază pozițiile, ordinele active și istoricul înainte de retrimitere. Identifică ticketul, simbolul complet, volumul și ora. Absența unui rând nou într-o singură fereastră nu reconstruiește întregul traseu al cererii. Compară cantitatea executată cu cea solicitată, inclusiv o executare parțială.

În MQL5, OrderSend=true nu dovedește executarea. Documentația cere examinarea structurii rezultatului și a evenimentelor ulterioare; retcode contează. O operațiune acceptată pentru procesare nu este automat o poziție nouă complet executată. Pentru reducerea riscului, folosește închiderea poziției corecte: un Sell opus pe un cont hedging poate deschide altă poziție. Operarea contului de pe mobil dezvoltă verificarea stării după pierderea răspunsului.

Codul provine din MT4 sau MT5?

MQL4 citește codul prin GetLastError(); rezultatul unei cereri MQL5 conține retcode. Tabelul grupează probleme asemănătoare, fără să declare proceduri identice pentru orice operațiune. Păstrează și textul mesajului. Un robot poate afișa propriul mesaj, diferit de codul serverului.

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

Coduri selectate din listele oficiale MetaQuotes
ProblemăMT4MT5Prima verificare
Stopuri nevalide13010016Bid/Ask, distanță, grilă.
Volum nevalid13110014Minim, pas, maxim.
Tranzacționare dezactivată13310017Permisiuni, modul simbolului.
Piață închisă13210018Sesiunea instrumentului.
Fonduri insuficiente13410019Marjă cerută, starea contului.
Cotații indisponibile13610021Ora cotației, răspunsul serverului.

Notează dacă ai cerut intrare, modificare sau închidere. Traducerea etichetei nu stabilește dacă alt ordin a fost executat între timp. Requote explică separat propunerea unui preț nou; nu orice refuz este requote.

Prețul arată bine, dar stopul este nevalid: de ce?

Separă Point, incrementul minim de preț și distanțele din specificație. Numărul zecimalelor descrie afișarea; nu înlocuiește grila permisă. În MT5, SYMBOL_TRADE_TICK_SIZE este variația minimă de preț; Stops Level exprimă distanța minimă în puncte, iar Freeze Level limitează operațiunile în zona de înghețare. Pentru MT4, MODE_TICKSIZE este documentat în puncte: nu copia numărul brut ca preț fără conversia unității.

Modelul inițial, fictiv și liniar: Point 0.00001, increment de preț 0.00005, Stops Level 20 puncte, Bid 1.10000 și Ask 1.10010. Pentru SL al unui long nou verificăm distanța de la Bid. Nivelul 1.09983 se află la 17 puncte și nu este pe grilă: 1.09983 / 0.00005 = 21 996,6. Nivelul 1.09980 este pe grilă și oferă 20 puncte în această fotografie a pieței. Cele două verificări nu garantează acceptarea sau executarea.

Dacă intrarea ar fi executată la Ask indicat, distanța până la stopul corectat ar fi 0.00030. Pentru 10 000 unități ale monedei de bază și evaluare USD, pierderea din preț modelată crește de la 2,70 USD la 3 USD. Presupunem umpleri exacte numai pentru calcul, fără comisioane, finanțare sau alunecare. Nivelul poate deveni tehnic admisibil și totuși să depășească planul. SL și TP explică partea relevantă a cotației.

În MT4, zero MODE_STOPLEVEL poate însemna lipsa restricției minime ori control dinamic al serverului. Nu este promisiunea acceptării oricărui stop; nu transfera automat această explicație fiecărui câmp MT5. Pentru o modificare respinsă, înregistrează și MODE_FREEZELEVEL sau SYMBOL_TRADE_FREEZE_LEVEL, cu unitatea corectă. Alte zecimale în formular nu elimină restricția. La următoarea verificare citește cotații noi; fotografia precedentă poate fi deja veche.

Un pas corect al volumului rezolvă problema?

Verifică separat minimul, maximul și pasul pentru lot, unitatea volumului poziției. În model, minimul este 0,10 lot, iar pasul 0,01. Volumul calculat de 0,04 respectă pasul, dar nu minimul. Ridicarea la 0,10 mărește expunerea de 2,5 ori: nu repară planul inițial. Pentru o închidere parțială contează și volumul rămas, nu numai cel trimis spre închidere.

Pas valid, dar volum sub minim

Pas valid, dar volum sub minimModel fictiv: plan 0,04 lot, pas 0,01 și minim 0,10. Respectarea pasului nu înlocuiește minimul sau bugetul. Ridicarea la minim mărește expunerea de 2,5 ori.Plan: 0,04 lotPas 0,01: DAMinim 0,10: NU0,10 / 0,04 = 2,5Volumul minim ar mări expunerea de 2,5 ori.
Pas valid, dar volum sub minim. Modelul inițial păstrează minimul 0,10, pasul 0,01 și planul 0,04 lot.

Ajustarea la minim mărește expunerea de 2,5 ori; acceptarea tehnică nu validează bugetul.

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.

Marja răspunde altei întrebări decât pierderea planificată la Stop Loss. Fondurile insuficiente nu justifică alegerea automată a unei dârghii mai mari. Recalculează cantitatea, costurile și rezerva contului. Dimensionarea poziției arată cum folosești distanța revizuită, fără să confunzi disponibilitatea marjei cu respectarea bugetului.

Trei praguri, un singur verdict: exemplu RON

Extensie ipotetică distinctă: același preț de intrare 1.10010 și stop corectat 1.09980, contract 100 000 EUR/lot, minim 0,10 și pas 0,01. Alegem buget 13,20 RON și conversie constantă 4,50 RON/USD. Nu este curs curent, ofertă de cont RON sau limită recomandată. Excludem costurile și presupunem execuții exacte exclusiv pentru aritmetică; în realitate pierderea poate fi mai mare.

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

Corecția tehnică și bugetul se verifică separat
ConfigurațiePierdere modelatăBuget 13,20 RONMinim 0,10 lot
0,10 lot; stop inițial 1.0998312,15 RONÎn limităRespectat; stop nevalid în model
0,10 lot; stop corectat 1.0998013,50 RONDepășire 0,30 RONRespectat
0,09 lot; stop corectat 1.0998012,15 RONÎn limităNerespectat

La distanța nouă, bugetul ar permite teoretic aproximativ 0,09778 lot. Coborârea la pasul 0,01 dă 0,09, sub minim. Ridicarea la minim dă 13,50 RON, peste buget. Așadar, în ipotezele alese nu există volum care să treacă simultan minimul și bugetul. Verdictul util este respingerea configurației, nu forțarea unui mesaj verde. Diferența de 1,35 RON dintre primele două rânduri provine din distanța schimbată, nu dintr-un comision inventat.

Tranzacționare dezactivată sau fără cotații: ce verifici?

Începe cu serverul, contul și simbolul complet, inclusiv sufixul. Citește sesiunea acelui instrument: programul altei perechi ori altei piețe nu dovedește disponibilitatea lui. Verifică ora ultimei cotații, conexiunea și operațiunile permise. Modul close-only nu justifică încercarea unei intrări opuse pentru ocolirea restricției.

Pentru automatizare separă consimțământul terminalului, setările programului și permisiunile serverului. Cotațiile care se mișcă nu dovedesc dreptul de tranzacționare. Nu activa orbește fiecare permisiune. Un mesaj către suport trebuie să includă platforma și versiunea, identificatorul mascat al contului, simbolul, ora cu fus, tipul cererii, parametrii și răspunsul exact. Nu include parola sau codurile de autentificare. Când starea este neclară, folosește canalul oficial al furnizorului.

Ce faci după lectură?

  1. Scrie o singură fișă a incidentului: cerere inițială, răspuns observat și stare confirmată. Marchează câmpurile necunoscute, fără să deduci executarea sau respingerea din așteptări.
  2. Pe demo, copiază Point, incrementul cu unitatea sa, distanța stopului, minimul și pasul volumului. Calculează un nivel ipotetic fără trimiterea ordinului. Nu produce deliberat erori pe un cont cu bani.
  3. Compară planul înainte și după corecție: distanță, cantitate, costuri și marjă. Oprește configurația care depășește limita. Rezultatul exercițiului este diagnosticul corect, nu acceptarea ordinului cu orice risc.