C'è un'interessante idea di trading. Aiutami a trovare gli errori nel codice (mql4). - pagina 7

 
Sergey Gritsay:
Questa variante è adatta se hai un EA a valuta singola, se fai un EA multivaluta, allora devi creare indicatori per tutte le coppie nell'Iniq.
Capisco - mi è sfuggito questo punto, significa per tutte le valute che sono aperte nel terminale?
 
La versione di MT5 ha bisogno di più lavoro, la versione che ho postato è abbastanza glitchata
 
Сергей Криушин:
Capisco - mi è sfuggito questo punto, significa per tutte le valute che sono aperte nel terminale?

 

Ciao a tutti, ho riscritto il mio EA per MT5 usando le classi standard. Finora il volo è ok, testiamolo e riportiamo eventuali errori. Per testare l'EA nella modalità di visualizzazione nel tester, dovrei prescrivere i simboli richiesti, la funzione assomiglia a questa

bool symbol_tester(string symbol)
  {
   if(!MQLInfoInteger(MQL_VISUAL_MODE))return(true);
//if(!MQLInfoInteger(MQL_TESTER))return(true);
//if(!MQLInfoInteger(MQL_OPTIMIZATION))return(true);

   if(symbol=="EURUSD")return(true);
   if(symbol=="AUDUSD")return(true);
   if(symbol=="GBPUSD")return(true);
   if(symbol=="USDCAD")return(true);
   if(symbol=="USDCHF")return(true);
   if(symbol=="USDJPY")return(true);
   if(symbol=="NZDUSD")return(true);
   if(symbol=="GBPCAD")return(true);

   return(false);
  }
File:
 

C'è qualcosa che non va nelle classi degli indicatori o sono davvero pesanti, il tester perde velocità davanti ai miei occhi. In generale, ho rielaborato l'elaborazione degli indicatori senza classi standard. Aggiunta anche la selezione dei segnali.

signal_01 - se cci(13) è inferiore a -100 per comprare, superiore a 100 per vendere.

signal_02 - se cci(13) incrocia -100 dal basso verso l'alto per comprare, se cci(13) incrocia 100 dal basso verso l'alto per vendere

signal_03 - se cci(13) incrocia -100 dal basso per vendere, se cci(13) incrocia 100 dall'alto per vendere

signal_04 - se cci(13) incrocia 100 dal basso verso l'alto, se cci(13) incrocia -100 dall'alto verso il basso per vendere

signal_05 - se cci(13) incrocia sopra 100 per comprare, sotto -100 per vendere.

Rimossi alcuni glitch nel pannello, sistemata la ricerca dei trend al riavvio dell'EA.

File:
 
aggiunta una selezione di segnali nella versione mt4
File:
 

Corretto l'errore di arresto sbagliato. Ho anche notato che nel tester MT5 l'Expert Advisor gira più velocemente nella funzione OnTick() che in OnTimer(). Perciò consiglio di sostituirli nel codice quando lo si esegue sul tester.

 
Sergey Gritsay:

Corretto l'errore di arresto sbagliato. Ho anche notato che nel tester MT5 l'Expert Advisor gira più velocemente nella funzione OnTick() che in OnTimer(). Perciò consiglio di sostituirli nel codice quando lo si esegue sul tester.

Nello Strategy Tester non funziona affatto... Non è chiaro come faccia a fare lotti senza fermarsi in MT5 e a piazzare posizioni su coppie che non sono presenti nel terminale: USDSEK; USD ZAR; USDMXM, ma sono in Market Watch... forse è per questo che il tester sta rallentando...

 
la tabella è diventata 2 colonne a schermo intero - una colonna
 

Bug corretti. Strumenti testati realizzati in parametri di input, scritti con la virgola. Controllato su futures su demo funziona anche.

File: