Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 648

 
Il problema sembra essere che quando si cambia timeframe, l'Expert Advisor viene preinizializzato, il che porta a molte variabili vuote. E se sono vuoti, significa che presumibilmente non ci sono scambi e dobbiamo aprirne di nuovi.
 
intrade:
Il problema sembra essere che quando si cambia il timeframe, l'Expert Advisor viene preinizializzato, il che porta a molte variabili vuote. E se sono vuoti, significa che presumibilmente non ci sono scambi e dobbiamo aprirne di nuovi.

Quindi non create variabili vuote. E controlla ciò che è già stato aperto dal simbolo, dal mago, e se necessario - dal tempo. Ma non ci sono telepati qui, non c'è niente da dire senza il codice.
 
intrade:
Il problema sembra essere che quando si cambia timeframe, l'Expert Advisor viene preinizializzato, il che porta a molte variabili vuote. E se sono vuoti, significa che presumibilmente non ci sono scambi e dobbiamo aprirne di nuovi.

La domanda è: perché cazzo dobbiamo cambiare il timeframe quando l'Expert Advisor è in esecuzione? Devi stabilire un tabù - metti l'EA, dimenticati del grafico, se hai bisogno di vedere qualcosa, apri un nuovo grafico e fai con esso quello che vuoi.
 
intrade:
Il problema sembra essere che quando si cambia il timeframe, l'Expert Advisor si preinizializza, il che porta a un sacco di variabili vuote. E se sono vuoti, significa che presumibilmente non ci sono scambi e dobbiamo aprirne di nuovi.


Usate dei timer come, per esempio:

iClose

Restituisce il prezzo di chiusura della barra (specificata dal parametro shift) del grafico corrispondente.

doubleiClose(
simbolo della stringa,// simbolo
inttimeframe,// periodo
intshift// shift
);

E cambia il periodo di tempo quanto vuoi! Guarda nel Doc, è tutto lì per te!

 
Le stampe rallentano l'ottimizzazione dell'EA o non vengono elaborate?
 
ClanVi:
Le stampe rallentano l'ottimizzazione dell'EA o non vengono elaborate?

Sì, qualsiasi linea di codice richiede tempo di CPU, e il codice che fa messaggi o lavora con oggetti grafici rallenta considerevolmente l'esecuzione del programma...
 
ClanVi:
Le stampe rallentano l'ottimizzazione di EA o non vengono gestite?


Questo è molto facile da evitare! Quando il codice è stato testato nel tester, mettetelo davanti a Print o Comment

  if(!IsOptimization() || !IsTesting()) 

E non cuce!

 
VOLDEMAR:

Sì, qualsiasi linea di codice richiede tempo di CPU e il codice che fa messaggi o lavora con oggetti grafici rallenta considerevolmente l'esecuzione del programma...
Gli oggetti grafici sono ignorati in optimizer e tester se non sono in modalità visiva, ma le stampe sono interessanti per me...
 
Buon pomeriggio a tutti. Signori consigliate cosa fare con l'errore "Errore 6" nessuna connessione con il server, ma i tick vanno e tutto è come dovrebbe.... gufi sul test... oggi mi sono alzato ed eccovi..... ci sono 4 gufi 5M 15M 30M 1H tale errore ha buttato fuori nei log su M5 M15 M30 tutti in tempi e prezzi diversi.... Chi ha esperienza con questo tipo di cose per favore mi aiuti. Grazie.
 

Il Debugger non funziona - cosa c'è che non va?

Auguri a tutti i membri del forum!

Nessuno ha risposto alla mia domanda sulla pagina 644. Devo averlo chiesto male, quindi lo chiederò di nuovo. Quindi,

Metatrader Bild 646, Editor Bild 934. Ecco un semplice indicatore:

class CDebuggerFix { } ExtDebuggerFix; //Это заклинание, исправляющее известный баг.
void start()                     
  {
   int i=10,                           
       k3;
   string k2;
  
     while(i>=1)                      
     {
      k2=Symbol();
    
      if (k2=="EURUSD") k3=3;
      if (k2=="USDCHF") k3=4;
      if ((k2=="EURUSD"||k2=="USDCHF")!=True) k3=5;
       Alert("k2=",k2,"\n","k3=",k3);
       
          i--;                         
      }
  return;
  }

L'ho eseguito su EURUSD, grafico M1, e questo è ciò che ottengo:


Cioè tutto è come dovrebbe essere.

E ora faccio un breakpoint prima di Alert ed eseguo il Debugger:


Appare il graficoH1 di USDCHF. Da dove viene? SoloEURUSD ,M1 era aperto.

Premo OK e questo è ciò che vedo:


Cioè l'indicatore prende i dati esattamente da questo USDCHF,H1. Qual è il problema qui?

La seconda domanda: l'editor non mette lo script scritto nella cartella Scripts ma nella cartella MQL4 e ci mette anche il file compilato. Devo trascinare manualmente il codice sorgente nella cartella Scripts, poi compilarlo e lo script apparirà in Navigator solo allora. Gli indicatori non hanno questo problema, vanno subito nella loro cartella. Sto facendo qualcosa di sbagliato o l'editor sta facendo un errore?

Buona fortuna a chiunque mi risponda.