Dentro l'articolo
MT5 collegato ma ordini rifiutati: distinguere permessi, server e vera esecuzione
Un conto che compare come «connesso» non significa automaticamente che possa ricevere ordini di trading. La connessione può permettere la lettura di saldo, posizioni o prezzi mentre una richiesta di acquisto viene respinta. Questo equivoco è frequente quando si usano MetaTrader 5, un bridge autorizzato o un'interfaccia di analisi come Disciply. Questa guida serve a capire dove si ferma una richiesta, quali dati leggere e quando non riprovare. Non attiva il trading automatico, non cambia i permessi del broker e non garantisce che un ordine sarà eseguito.
1. Connessione, autorizzazione e operazione sono tre stati diversi
La connessione tecnica verifica che terminale e server riescano a comunicare. L'autorizzazione al trading riguarda invece le condizioni dell'account, del broker e dell'applicazione. Infine l'esecuzione è il risultato registrato da ordini e deal. Se un servizio mostra «conto collegato», quello stato non dovrebbe trasformarsi in «ordine eseguito» o «account abilitato a tutto». Per una diagnosi attendibile annota il tipo di account, il server MT5, la data dell'errore e il fatto che la richiesta sia stata o meno trasmessa. Non condividere password o numeri di conto in post pubblici.
2. Cosa dice davvero OrderSend
Nella documentazione MQL5, OrderSend invia una MqlTradeRequest e restituisce una risposta MqlTradeResult. Il valore booleano ottenuto dalla funzione, da solo, non prova che un deal sia stato eseguito. Bisogna controllare retcode e, quando applicabile, ordine e deal effettivamente creati. Un terminale o una dashboard che si limiti a mostrare «richiesta accettata» può quindi indurre in errore. La conferma operativa è separata dalla conferma di trasporto. Fonte primaria: https://www.mql5.com/en/docs/trading/ordersend .
3. Il codice 10027: blocco del terminale client
TRADE_RETCODE_CLIENT_DISABLES_AT, cioè 10027, indica che il trading automatico è disabilitato nel terminale client. Non significa per forza che le credenziali siano errate, che il broker sia offline o che lo storico sia scomparso. Significa che la richiesta di automazione incontra una protezione lato terminale. Prima di intervenire verifica che il proprietario dell'account abbia autorizzato esplicitamente la strategia e che l'operazione sia consentita. Un messaggio dentro Disciply non sostituisce il controllo dei permessi reali di MetaTrader. Tabella ufficiale: https://www.mql5.com/en/docs/constants/errorswarnings/enum_trade_return_codes .
4. Il codice 10026: blocco dal server
TRADE_RETCODE_SERVER_DISABLES_AT, 10026, segnala invece che il server ha disabilitato l'autotrading. È diverso da 10027: agire sui pulsanti locali non può garantire di rimuovere una limitazione imposta dall'infrastruttura o dalle condizioni dell'account. Le ragioni possono richiedere un confronto con il broker o con l'amministratore della challenge. Non eludere una restrizione sostituendo account o terminale. Se la causa è una regola del provider, l'interfaccia applicativa deve mostrarla come blocco esterno e non promettere una riparazione automatica.
5. Le altre risposte che non vanno confuse
10017 significa che il trading è disabilitato; 10018 indica mercato chiuso; 10019 segnala fondi insufficienti; 10021 indica assenza di quotazioni adatte alla richiesta; 10031 un problema di connessione. Un ordine con stop non valido può produrre 10016; prezzo non valido 10015; volume non ammesso 10014. Sono diagnosi differenti e non è responsabile rispondere a tutte con «riattiva Algo Trading». La stessa interfaccia dovrebbe presentare codice, spiegazione e rimedio pertinente senza trattenere credenziali o dati sensibili nei log condivisi.
6. Dove controllare AutoTrading in MetaTrader 5
La guida ufficiale MetaTrader colloca le impostazioni Expert Advisors nella configurazione del terminale. Il permesso generale «Allow Auto Trading» può impedire a script ed Expert Advisor di inviare operazioni anche se continuano a svolgere analisi. Un singolo EA può avere un'autorizzazione separata. La piattaforma può inoltre disabilitare preventivamente l'automazione dopo cambio di conto, profilo, simbolo o timeframe, secondo le opzioni abilitate. Prima di riattivare qualcosa verifica di avere scelto l'account corretto e compreso le implicazioni di rischio. Fonte: https://www.metatrader5.com/en/terminal/help/startworking/settings .
7. Il caso più delicato: cambio conto fra demo e reale
Un trader può passare da un conto simulato a uno reale e trovare l'esecuzione automatica disabilitata. Questa protezione serve a evitare che una strategia continui a operare su un account non previsto. Se un servizio collegato visualizza il nuovo conto, non è una prova che i permessi del terminale siano già stati nuovamente concessi. Evita automatismi ciechi che riabilitano ogni account appena selezionato. Un consenso esplicito per il conto preciso e un controllo del saldo di rischio sono preferibili a un toggle sempre attivo.
8. API Python, EA e rischi di sicurezza
MetaTrader distingue autorizzazioni per Expert Advisors e trading tramite API Python esterna. La documentazione segnala che quest'ultima possibilità è disabilitata per impostazione predefinita per motivi di sicurezza. Non è corretto consigliare a chiunque di disattivare indiscriminatamente tutte le protezioni. Sono particolarmente rischiose le importazioni DLL da programmi sconosciuti e i WebRequest verso URL non affidabili. Prima di abilitare un bridge, identifica processo, account, permessi, programma sorgente e funzionalità necessarie; mantieni il minimo privilegio richiesto e conserva una procedura per revocare il consenso.
9. Esecuzione parziale non significa ordine rifiutato
Il codice 10009 indica richiesta completata, mentre 10010 segnala che soltanto una parte è stata eseguita. Il codice 10008 descrive un ordine piazzato, non obbligatoriamente una posizione già aperta. Questo è importante per il journal: non bisogna tradurre indiscriminatamente ogni retcode in «trade chiuso» o «trade aperto». Nel caso di una partial fill vanno riconciliati volume richiesto, volume eseguito e stato residuo. Prima di mostrare una posizione in Disciply, i record del terminale devono essere confrontati con gli identificativi del server.
10. Perché il secondo clic dopo un timeout può essere pericoloso
Quando una richiesta perde la risposta per una disconnessione o va in timeout, lo stato è incerto: non è sempre dimostrato che non sia successo nulla. Cliccare immediatamente due volte può generare una seconda richiesta, o produrre un conflitto con un ordine già in elaborazione. Occorre verificare prima ordini attivi, deal recenti, volume residuo, commento o identificatore della richiesta e ultimo evento server. Un sistema serio distingue «fallito prima dell'invio», «rifiutato dal server», «stato indeterminato» ed «eseguito». Un errore di rete non deve segnare automaticamente un conto come collegato e utilizzabile, né ripetere ordini senza conferma.
11. Una procedura diagnostica senza denaro a rischio
Per un primo test privilegia un ambiente demo e una richiesta innocua, come la lettura di simbolo e permessi senza inviare operazioni reali. Verifica la connessione e il server corretto; controlla che il simbolo sia disponibile e che il mercato sia aperto. Raccogli il codice numerico e la descrizione ufficiale. Se la causa riguarda un permesso, consulta le impostazioni senza modificarle di nascosto. Solo dopo consenso informato e verifica dei vincoli del broker valuta l'esecuzione di test esplicitamente autorizzati. Un'app può guidare l'utente, ma non deve fingere che un modulo web approvi automaticamente le finestre di sicurezza del terminale.
12. Challenge, limiti e responsabilità degli ordini
Durante una Disciply Trading Challenge o un test simulato possono esistere regole proprie, modalità demo e limiti diversi da un conto personale. La pagina delle regole va letta per l'edizione effettiva, senza attribuire automaticamente condizioni di una prop firm esterna a Disciply. Anche un ordine tecnicamente consentito potrebbe non essere ammissibile dal regolamento. Per calcolare un'esposizione prima di un'operazione usa i dati reali del contratto e il calcolatore di rischio, verificando sempre spread e leva presso il broker.
13. Quali informazioni deve mostrare una schermata di errore
Un messaggio utile riporta timestamp, account mascherato, simbolo, operazione richiesta, codice 10027 o altro retcode, descrizione comprensibile e stato certo dell'esecuzione. Dovrebbe distinguere errore locale, errore server, prezzo non disponibile e timeout. Non basta scrivere «riprovare» senza spiegare se ci sia stato un fill. Quando è sicuro farlo, un link alla documentazione ufficiale dà all'utente uno strumento di diagnosi migliore di una notifica generica. Per il journal conta soprattutto non inventare ordini inesistenti e non perdere quelli realmente eseguiti.
Conclusione: un ordine riuscito si prova con l'eseguito
La domanda giusta non è soltanto «MT5 è connesso?», ma «l'account è autorizzato, la richiesta è valida, qual è il retcode e quale deal compare sul server?». I codici 10027 e 10026 distinguono due famiglie di blocchi; 10009, 10010 e 10008 descrivono stati diversi di accettazione ed esecuzione. Conserva la diagnosi, evita retry ripetuti e non disabilitare protezioni senza un motivo verificato. Questa è una guida educativa sulla sicurezza operativa, non un invito ad avviare trading automatico.
Continua a leggere su Disciply
Condividi articolo
Disciply
Vuoi iniziare a fare trading sul serio?
Riduci improvvisazione ed errori impulsivi con checklist, motivi d'ingresso e review operative.
Trasforma ogni trade in un processo chiaro, costante e misurabile.
Metodo prima del risultato.
Inizia con Disciply
Commenti
Ultimi commenti
Tutti i commenti