[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 490

 
splxgf:

Di solito creo una variabile LastBarAlert e ci scrivo Time[0] quando scatta l'allarme.

E poi elementare, l'avviso viene emesso se LastBarAlert!=Time[0]


Grazie. Funziona davvero. Ma perché l'indicatore salva il valore della variabile LastBarAlert, ma non il valore di qualsiasi altra variabile. L'ho fatto in questo modo. È essenzialmente lo stesso, ma per qualche motivo non funziona.

if (Signal && AllowAlert = true){
Alert('Signal detected');
AllowAlert = false;
} 
 
sss2019:


Grazie. Funziona davvero. Ma perché l'indicatore salva il valore della variabile LastBarAlert, ma non il valore di qualsiasi altra variabile. L'ho fatto in questo modo. Sembra che funzioni allo stesso modo, ma per qualche motivo non è così.

Dove si trova nel tuo codice l'inizializzazione della variabile AllowAlert con il valore true?

Se prima di controllare il segnale e lo stato di questa variabile nella linea...

if (Signal && AllowAlert = true)

... ...allora resettare ulteriormente il flag a false non farà nulla. Dopo tutto, sarà inizializzato di nuovo con true prima di questo controllo...

 
sss2019:


Grazie. Funziona davvero. Ma perché l'indicatore salva il valore della variabile LastBarAlert, ma non il valore di qualsiasi altra variabile. L'ho fatto in questo modo. È essenzialmente lo stesso, ma per qualche motivo non funziona.

Il problema deve essere nella logica... Se usate una variabile che prende i valori 0 e 1, il suo valore deve essere resettato ad ogni nuova barra, e questo molto probabilmente non accade. Oppure la variabile è descritta localmente senza staticità e il suo valore non viene salvato tra le chiamate. È inutile fare congetture senza codice.
 

Спасибо. Это действительно работает. Но почему индикатор сохраняет значение переменной LastBarAlert, а значение какой нибудь другой переменной не сохраняет. Я делал так. По сути получается точно так же, но почему то не работает.

if (Signal && AllowAlert = true){
Alert('Signal detected');
AllowAlert = false;
} 

Avete AllowAlert impostato su true al momento del controllo. Dovrebbe essere così (doppio =):

if (Signal && AllowAlert == true){
Alert('Signal detected'); 
AllowAlert = false;
}   

O meglio così:

if (Signal && AllowAlert){
Alert('Signal detected');
AllowAlert = false; }   
 
leksiq:

Avete AllowAlert impostato su true al momento del controllo. Dovrebbe essere così (doppio =):

O meglio così:




Fondamentalmente, la variabile era dichiarata statica, e veniva resettata dopo alcune battute. La condizione era la seguente.

static bool AllowAlert = true;

if(Time[i] == Time[2] && AllowAlert == true)
  {
  Alert("sdfsdf");
  AllowAlert = false;
  }

if(Time[i] != Time[2])
  {
  AllowAlert = true;
  }
Idealmente il segnale dovrebbe essere una volta sulla barra corrente, ma è stato attivato su ogni tick.
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool NewBar(){static int prevBar;
   if(prevBar!=Time[0]){
      prevBar =Time[0];
      return(true);
   }
   return(false);
}
//+------------------------------------------------------------------+
Perché non date un'occhiata preliminare qui: https://www.mql5.com/ru/forum/131853?
 
FAQ:
Perché non date un'occhiata preliminare qui: https://www.mql5.com/ru/forum/131853?

Sono più interessato non a come farlo, ma al perché il mio codice non funziona. Più precisamente, perché funziona nell'EA ma non nell'indicatore.
 

Molto probabilmente, e questo mi è stato suggerito qui (per mancanza del tuo codice)

Avete diversi avvisi, e applicate la stessa variabile statistica a tutti loro

 

Salve.

qualcuno può dirmelo?

come faccio a far funzionare una gamma di un EA?

tracciare una linea e rinominarla "buy_down".

disegnare una seconda linea, rinominarla "buy_up"

e lasciare che l'EA faccia trading solo tra queste linee.

Non vedo alcuna differenza tra loro.

 
TESKATLIPOKA:

Salve.

qualcuno può dirmelo?

come faccio a far funzionare una gamma di un EA?

tracciare una linea e rinominarla "buy_down".

disegnare la seconda linea, rinominarla "buy_up"

e lasciare che l'EA faccia trading solo tra queste linee.

Non vedo alcuna differenza tra loro.


Vai qui: https: //www.mql5.com/ru/job
Motivazione: