Permesso di Trade

Automazione del Trade

Il linguaggio MQL5 fornisce un gruppo speciale di funzioni di trading progettate per lo sviluppo di sistemi di trading automatizzati. I programmi sviluppati per il trading automatizzato senza intervento umano sono chiamati Expert Advisor o robot di trading. Per creare un Expert Advisor in MetaEditor, avvia MQL5 Wizard e seleziona una delle due opzioni:

  • Expert Advisor (modello) - consente di creare un template con funzioni di gestione eventi già pronte che devono essere integrate con tutte le funzionalità necessarie tramite programmazione.
  • Expert Advisor (generato) - ti consente di sviluppare un robot di trading a tutti gli effettisemplicemente selezionando i moduli necessari: modulo segnali di trading, modulo gestione del denaro e modulo trailing stop.

MQL5_Wizard

Le funzioni di trading possono funzionare solo con Expert Advisor e script. Il trading non è consentito per gli indicatori.

Verifica dell'Autorizzazione per Eseguire il Trading Automatizzato

Per poter sviluppare un Expert Advisor affidabile in grado di lavorare senza intervento umano, è necessario organizzare una serie di controlli importanti. Innanzitutto, dovremmo verificare programmaticamente se il trading è consentito. Si tratta di un controllo di base indispensabile quando si sviluppa qualsiasi sistema automatizzato.

Verifica dell'autorizzazione per eseguire il trading automatizzato nel terminale

Le impostazioni del terminale ti forniscono la possibilità di consentire o vietare il trading automatizzato per tutti i programmi.

TERMINAL_TRADE_ALLOWED

Puoi cambiare l'opzione di trading automatizzato direttamente sul pannello Standard del terminale:  

  • AutoTrading_enabled- trading automatizzato abilitato, è consentito l'uso delle funzioni di trading nelle applicazioni avviate.
  • AutoTrading_disabled - trading automatizzato disabilitato, le applicazioni in esecuzione non sono in grado di eseguire funzioni di trading.

Esempio di controllo:

if (!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) 
   Alert("Controlla se il trading automatizzato è consentito nelle impostazioni del terminale!");

 

Verifica se il trading è consentito per un determinato Expert Advisor/script in esecuzione

È possibile consentire o vietare il trading automatizzato per un determinato programma al momento dell'avvio. Per fare ciò, utilizzare la casella di controllo speciale nelle proprietà del programma.

MQL_TRADE_ALLOWED

Esempio di controllo:

   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
      Alert("Controlla se il trading automatizzato è consentito nelle impostazioni del terminale!");
   else
     {
      if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
         Alert("Il trading automatizzato è vietato nelle impostazioni del programma per ",__FILE__);
     }

 

Verifica se è consentito il trading per qualsiasi Expert Advisor/script per il conto attuale

Il trading automatizzato può essere disabilitato sul lato del server di trading. Esempio di controllo:

   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
      Alert("E' vietato il trading automatizzato per il conto ",AccountInfoInteger(ACCOUNT_LOGIN),
      " sul lato server di trading");

Se il trading automatizzato è disabilitato per un conto di trading, le operazioni di trading di Expert Advisor/script non vengono eseguite.

Verifica se è consentita il trading per il conto attuale

In alcuni casi, tutte le operazioni di trading sono disabilitate per un determinato conto di trading – non è possibile eseguire né il trading manuale né quello automatizzato. Esempio di controllo quando è stata utilizzata una password investitore per connettersi a un conto di trading:

   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
      Comment("E' vietato il trading per il conto ",AccountInfoInteger(ACCOUNT_LOGIN),
            ".\n Forse è stata utilizzata una password investitore per connettersi al conto di trading.",
            "\n Controllare il diario del terminale per la seguente voce:",
            "\n\'",AccountInfoInteger(ACCOUNT_LOGIN),"\': il trading è stato disabilitato - modalità investitore.");

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) può restituire false nei seguenti casi:

  • nessuna connessione al server di trade. Ciò può essere verificato utilizzando TerminalInfoInteger(TERMINAL_CONNECTED);
  • conto di trading passato alla modalità di sola lettura (inviato all'archivio);
  • il trading sul conto è disabilitato sul lato server di trading;
  • la connessione a un conto di trading è stata eseguita in modalità Investitore.

 

Vedi anche

Proprietà del Terminale Client, Proprietà dell'Account, Proprietà di un Programma MQL5 in Esecuzione