Home > Blog > Codici di errore MT5: 10027, 10030, 10016 e altri

MT5MQL5

Codici di errore MT5: 10027, 10030, 10016 e altri

Pubblicato: 2026-05-18Lettura: circa 5 min
⏱ Questo articolo riflette le informazioni alla data di pubblicazione. Le prestazioni degli EA (PF, DD, rendimento annuo) cambiano con il trading live e le rivalidazioni — consulta gli ultimi dati nelle pagine degli EA. Vedi gli ultimi risultati degli EA →
Contenuti (7)
  1. Consultazione rapida: codice → significato → soluzione
  2. Come controllare la scheda Expert
  3. Codici di errore più comuni e relative soluzioni
  4. Classificazione degli errori per priorità
  5. Come leggere la scheda Expert in modo efficiente
  6. Riepilogo
  7. FAQ

Codici di errore MT5 / MQL5: retcode 10004–10031 ed errori di runtime

MT5 segnala due tipi di errori: i retcode di trading a 5 cifre (ad es. 10027 AutoTrading disattivato, 10030 modalità di riempimento non supportata, 10016 stop non validi, 10019 fondi insufficienti) e gli errori di runtime a 4 cifre restituiti da GetLastError() (ad es. 4401, 4756) — la tabella qui sotto associa a ciascuno la relativa soluzione.

Consultazione rapida: codice → significato → soluzione

Numeri e nomi delle costanti seguono il riferimento ufficiale MQL5 (codici di ritorno del server di trading ed errori di runtime).

Retcode di trading (MqlTradeResult.retcode)

CodiceCostanteSignificatoSoluzioneDettagli
10004TRADE_RETCODE_REQUOTERequote — il prezzo si è mosso prima dell'esecuzioneAmpliare la deviazione consentita oppure reinviare l'ordine al prezzo aggiornatoOff quotes e requote
10006TRADE_RETCODE_REJECTRichiesta rifiutataDi solito uno spread ampio o un mercato veloce; lasciare che l'EA riprovi a un tick successivo—
10013TRADE_RETCODE_INVALIDRichiesta non validaUn campo della richiesta (azione, tipo di ordine, simbolo) è errato; validarla con OrderCheck() prima dell'invio—
10014TRADE_RETCODE_INVALID_VOLUMEVolume non valido nella richiestaArrotondare il lotto al minimo, al massimo e al passo del simbolo (SYMBOL_VOLUME_MIN / MAX / STEP)—
10015TRADE_RETCODE_INVALID_PRICEPrezzo non valido nella richiestaNormalizzare il prezzo in base ai decimali e alla dimensione del tick del simbolo; assicurarsi che un ordine pendente si trovi sul lato corretto del mercato—
10016TRADE_RETCODE_INVALID_STOPSStop non validi nella richiestaTenere SL/TP più lontani dello stops level del broker e sul lato corretto del prezzoInvalid stops
10017TRADE_RETCODE_TRADE_DISABLEDIl trading è disabilitatoControllare la modalità di trading del simbolo in Specifica e di aver effettuato l'accesso con la password di trading (non quella investitore); altrimenti chiedere al broker—
10018TRADE_RETCODE_MARKET_CLOSEDIl mercato è chiusoAttendere l'apertura della sessione di trading del simboloMercato chiuso
10019TRADE_RETCODE_NO_MONEYFondi insufficienti per completare la richiestaRidurre la dimensione del lotto, chiudere posizioni o depositare fondiFondi insufficienti
10021TRADE_RETCODE_PRICE_OFFNessuna quotazione per elaborare la richiestaControllare la connessione e se il simbolo è attualmente quotato, quindi riprovareOff quotes e requote
10026TRADE_RETCODE_SERVER_DISABLES_ATAutotrading disabilitato dal serverIl broker blocca il trading algoritmico su questo conto; contattare il brokerAutoTrading disattivato
10027TRADE_RETCODE_CLIENT_DISABLES_ATAutotrading disabilitato dal terminale clientAttivare il pulsante Algo Trading e consentire l'algo trading nelle Opzioni e nelle proprietà dell'EAAutoTrading disattivato
10030TRADE_RETCODE_INVALID_FILLTipo di riempimento dell'ordine non validoImpostare type_filling su una modalità supportata dal simbolo (FOK / IOC / Return)Modalità di riempimento non supportata
10031TRADE_RETCODE_CONNECTIONNessuna connessione con il server di tradingControllare la barra di stato della connessione, la rete del VPS e lo stato del server del broker—

Errori di runtime (GetLastError())

CodiceCostanteSignificatoSoluzioneDettagli
4001ERR_INTERNAL_ERRORErrore interno imprevistoNon è legato a un'unica causa: chiamare ResetLastError() prima della funzione che si sta verificando, quindi riavviare o aggiornare il terminale se persiste—
4401ERR_HISTORY_NOT_FOUNDStorico richiesto non trovatoChiamare HistorySelect() per un periodo che contenga il deal o l'ordine prima di leggerlo—
4752ERR_TRADE_DISABLEDTrading tramite Expert Advisor vietatoAttivare Algo Trading e spuntare «Consenti Algo Trading» nelle proprietà dell'EAAutoTrading disattivato
4756ERR_TRADE_SEND_FAILEDInvio della richiesta di trading non riuscitoOrderSend() ha restituito false; leggere MqlTradeResult.retcode per conoscere il motivo reale (spesso 10027, 10030 o 10016)—

Arrivate da MT4? MT4 usa numeri diversi, per lo più a 3 cifre, per le stesse situazioni (134, 130, 132, 136, 4109 …). Ogni sezione qui sotto riporta l'equivalente MT4, tratto dal riferimento ufficiale MQL4. Si noti che in MT5 il numero 4109 significa ERR_CHART_WRONG_PROPERTY (un errore del grafico), non un errore di trading.

I nostri 3 EA principali (pubblicati tutti i dati del backtest a lungo termine e del forward pubblico)

📧 Corso email gratuito (8 email) + pacchetto di 13 indicatori MT5 riservato agli iscritti

* Privacy rigorosamente protetta. Potete cancellarvi in qualsiasi momento.

Come controllare la scheda Expert

Fare clic sulla scheda Expert nella parte inferiore di MT5 per vedere il log cronologico di tutta l'attività degli EA.

Formato del log:
2026.05.18 10:00:01.234  GOLD VIPER XAUUSD,M30: [ERROR] 10016

Data/ora    Nome EA          Simbolo   Timeframe  Messaggio

Quando compare un errore, usare il numero del codice per trovarne la causa nella tabella qui sopra.


Codici di errore più comuni e relative soluzioni

10019 — Fondi insufficienti (TRADE_RETCODE_NO_MONEY)

Equivalente MT4: 134 ERR_NOT_ENOUGH_MONEY. ERR_NO_MONEY è un'abbreviazione molto diffusa per la stessa situazione.

Esempi di messaggio: "Order failed: not enough money"
                     "No money"

Causa: Margine insufficiente — l'EA non può aprire una nuova posizione.

Soluzione:

  1. Verificare il livello di margine attuale nella scheda Trading di MT5
  2. Se il margine è vicino o inferiore al 100%, valutare un deposito aggiuntivo
  3. Abbassare l'impostazione RiskPercent dell'EA per ridurre la dimensione della posizione
  4. Chiudere manualmente alcune posizioni aperte per liberare margine

📖 Per capire perché compare anche quando il saldo sembra sufficiente, e il codice MQL5 che lo previene, vedere Not enough money su MT5 — cause e soluzioni.


10027 — AutoTrading disabilitato dal client (TRADE_RETCODE_CLIENT_DISABLES_AT)

Errore di runtime MT5 correlato: 4752 ERR_TRADE_DISABLED. Equivalente MT4: 4109 ERR_TRADE_NOT_ALLOWED.

Esempi di messaggio: "AutoTrading disabled by client"
                     "Trade is not allowed"

Causa: Il trading automatico è disattivato in MT5.

Soluzione:

  1. Fare clic sul pulsante Algo Trading nella barra degli strumenti di MT5 per attivarlo (deve diventare verde)
  2. Andare in Strumenti → Opzioni → Expert Advisor → attivare Consenti Algo Trading, quindi riavviare MT5

Questo errore si verifica spesso quando MT5 si avvia automaticamente dopo il riavvio del VPS.

📖 Per l'intera catena dei permessi (impostazioni delle Opzioni, Consenti Algo Trading per singolo grafico, password investitore e differenza tra 10027 e 10026), vedere AutoTrading disattivato su MT5 — la soluzione completa.


10018 — Mercato chiuso (TRADE_RETCODE_MARKET_CLOSED)

Equivalente MT4: 132 ERR_MARKET_CLOSED.

Esempio di messaggio: "Market closed"

Causa: L'EA ha tentato di aprire un trade al di fuori dell'orario di mercato (weekend o festività).

Soluzione: Non è necessario fare nulla. Il mercato è chiuso durante il weekend e qualsiasi tentativo di ingresso in quell'intervallo produce questo errore; l'EA riprende automaticamente alla riapertura del mercato.

📖 Compare nei giorni feriali? Sessioni di trading del simbolo, ora del server e modalità di sola chiusura sono trattate in Market closed (10018/132) — cause e soluzioni.


10016 — Stop non validi (TRADE_RETCODE_INVALID_STOPS)

Equivalente MT4: 130 ERR_INVALID_STOPS.

Esempio di messaggio: "Invalid stops"

Causa: Il valore di SL (stop loss) o TP (take profit) viola il requisito di stop level minimo del broker.

Soluzione:

  1. Verificare lo stop level del broker (distanza minima dello SL): fare clic con il tasto destro sul simbolo in MT5 → Specifica → cercare il campo Stops level
  2. Assicurarsi che la distanza dello SL dell'EA sia superiore allo stop level
  3. Questo errore è più comune nei periodi di bassa volatilità, quando i valori dell'ATR sono molto ridotti

📖 Per capire come funzionano davvero gli stop level, la differenza tra 10016 e 130 e il codice MQL5 che lo previene definitivamente, vedere Invalid stops (10016/130) — la soluzione completa.


10021 — Nessuna quotazione (TRADE_RETCODE_PRICE_OFF)

Equivalente MT4: 136 ERR_OFF_QUOTES.

Esempio di messaggio: "Off quotes"

Causa: Nessuna quotazione ricevuta dal server del broker — un problema di connettività.

Soluzione:

  1. Verificare lo stato della connessione nella barra di stato di MT5, nella parte inferiore dello schermo
  2. Se disconnesso, riavviare MT5
  3. Controllare la pagina di stato dei server del broker per eventuali disservizi
  4. Verificare la connessione di rete del VPS

📖 Per la differenza rispetto ai requote (10004/138), la regolazione della deviazione e un'implementazione dei nuovi tentativi, vedere Off quotes e requote (10021/10004) — la soluzione completa.

📖 Compare Unsupported filling mode (10030) subito dopo aver cambiato broker? È un problema diverso — vedere Unsupported filling mode (10030) — come risolverlo.


10012 — Richiesta scaduta per timeout (TRADE_RETCODE_TIMEOUT)

Equivalente MT4: 128 ERR_TRADE_TIMEOUT.

Esempio di messaggio: "Request canceled by timeout"

Causa: L'ordine è andato in timeout per congestione del server o latenza di rete.

Soluzione:

  1. È più comune subito dopo le notizie importanti, quando il carico del server è elevato
  2. Di norma l'EA riprova al tick successivo — non è richiesta alcuna azione
  3. Se accade frequentemente, rivedere l'ambiente di rete del VPS o valutare un altro broker

10006 — Richiesta rifiutata (TRADE_RETCODE_REJECT)

Esempio di messaggio: "Request rejected"

Causa: Il broker ha rifiutato l'ordine — in genere perché lo spread supera i limiti o il prezzo si muove troppo velocemente.

Soluzione:

  1. Controllare l'impostazione MaxSpreadPoints; questo errore è comune quando gli spread si allargano in modo significativo
  2. Durante le notizie e subito dopo è un comportamento previsto — lo si può ignorare
  3. Se si verifica frequentemente, aumentare leggermente il valore di MaxSpreadPoints

"Margin level too low"

Esempio di messaggio: "Margin level too low. Skip signal."

Causa: L'impostazione UseMarginCheck = true dell'EA ha rilevato che il livello di margine è sceso sotto MinMarginLevel (ad es. 200%), quindi i nuovi ingressi vengono bloccati automaticamente.

Soluzione:

  1. Si tratta di un normale comportamento di protezione — non è un errore
  2. Gli ingressi riprendono automaticamente quando il livello di margine si recupera
  3. Soluzione di fondo: depositare più fondi o abbassare RiskPercent

"No signal on this bar" oppure "Wait for next bar"

Non sono errori — sono voci del log di debug.

"No signal. ATR=1245, EMA(50)=1998.23"

L'EA valuta il grafico a ogni candela e registra quando le condizioni di ingresso non sono soddisfatte. È il normale funzionamento.


Classificazione degli errori per priorità

PrioritàErroreAzione
Critico10019 Fondi insufficienti (MT4: 134)Depositare fondi o ridurre subito la dimensione del lotto
Critico10027 AutoTrading disattivato / 4752 (MT4: 4109)Attivare Algo Trading
Avviso10016 Stop non validi (MT4: 130)Rivedere le impostazioni dello SL
Avviso10030 Tipo di riempimento non validoImpostare una modalità di riempimento supportata dal simbolo
Avviso10021 Nessuna quotazione (MT4: 136) ricorrenteVerificare la connessione
Normale10018 Mercato chiuso (MT4: 132) solo nel weekendNessuna azione necessaria
Normale10012 Timeout (MT4: 128) occasionaleNessuna azione necessaria
NormaleMargin level too lowProtezione normale con margine basso

Come leggere la scheda Expert in modo efficiente

Filtrare i log

Fare clic con il tasto destro all'interno della scheda Expert e selezionare Filtro per visualizzare solo i log di un determinato EA o tipo di errore.

Percorso dei file di log

I file di log di MT5 vengono salvati qui:

C:\Users\[NomeUtente]\AppData\Roaming\MetaQuotes\Terminal\[ID]\MQL5\Logs\

I file vengono creati automaticamente per data. Aprire questa cartella quando si indagano gli errori.


La maggior parte degli errori degli EA rientra in quattro categorie:

  1. Margine insufficiente (10019) — Depositare più fondi o ridurre la dimensione del lotto
  2. AutoTrading disattivato (10027 / 4752) — Fare clic sul pulsante Algo Trading per attivarlo
  3. Problemi di connessione (10021 / 10031) — Riavviare MT5 o verificare la rete del VPS
  4. Comportamento normale — Nessuna azione necessaria (chiusura del mercato nel weekend, attesa per evitare lo spread, ecc.)

Prendete l'abitudine di controllare la scheda Expert ogni giorno, così da individuare rapidamente gli errori critici (10019 e 10027) prima che causino problemi.


FAQ

D: Dove posso cercare i codici di errore?

Il riferimento ufficiale MQL5 elenca tutti i codici: codici di ritorno del server di trading per l'intervallo 10004–10046 ed errori di runtime per l'intervallo 4xxx. È possibile cercarli anche nella guida integrata di MT5 (premere F1).

D: Qual è la differenza tra un retcode e GetLastError()?

Un retcode (10004–10046) è la risposta del server di trading a un ordine e viene memorizzato in MqlTradeResult.retcode. GetLastError() restituisce un errore di runtime del programma MQL5 stesso (4xxx e 5xxx). Quando OrderSend() fallisce, spesso si ottengono entrambi: 4756 da GetLastError() più un retcode che indica il motivo effettivo.

D: Devo fermare l'EA se gli errori compaiono spesso?

Se 10018 (mercato chiuso) o 10012 (timeout) compaiono occasionalmente, non è necessario fermare l'EA. Tuttavia, se 10019 (fondi insufficienti) si ripete, mettere in pausa l'EA, verificare la situazione del margine e riavviarlo una volta risolto il problema.

D: Viene visualizzato l'errore «Invalid account».

È possibile che le credenziali di accesso a MT5 (nome del server, ID di accesso o password) siano errate. Andare in File → Apri un conto per accedere di nuovo.

D: Non compare alcun errore, ma l'EA non apre posizioni.

Se non ci sono né errori né ingressi, l'EA sta semplicemente aspettando che le sue condizioni di ingresso siano soddisfatte — è del tutto normale. Gli EA non entrano a ogni candela; entrano solo quando tutte le condizioni coincidono. Dategli un po' di tempo. Un EA su H1 che entra da una a tre volte al giorno funziona normalmente.

📧 Corso email gratuito (8 email) + pacchetto di 13 indicatori MT5 riservato agli iscritti

* Privacy rigorosamente protetta. Potete cancellarvi in qualsiasi momento.

Hai domande su EA o Forex?

Puoi pubblicarle sul forum di trading di Nattzy (registrazione gratuita). Sono benvenute anche domande che vanno oltre questo articolo: impostazioni degli EA, scelta del broker e altro.

Chiedi su Nattzy ↗

Commenti e domande