Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 473

 
Bek001:

Mettiamola in un altro modo. Come si può determinare il prezzo massimo negli ultimi 10 secondi?

In MT5 - CopyTicks()

In MT4 - salvare i tick in array di strutture MqlTick. Da esso, prendete i prezzi massimi/minimi.

 

Puoi dirmi come fare? Ho scritto una funzione di notifica e le notifiche arrivano ad ogni tick! La funzione stessa è semplicemente scritta in int Start. Condizioni di PATTERN sulla M30.

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

int DayT=0,BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

Puoi dirmi come fare? Ho scritto una funzione di notifica e le notifiche arrivano ad ogni tick! La funzione stessa è semplicemente scritta in int Start.

int statico DayT=0;
 
@Artyom Trishkin Grazie! Interessante è uscito ora è tranquillo a tutti!
 
Rewerpool:
@Artyom Trishkin Grazie! Interessante è uscito ora è tranquillo a tutti!
È difficile leggere il codice da un cellulare. Probabilmente c'è qualcos'altro che non va.
 
Rewerpool:

Puoi dirmi come fare? Ho scritto una funzione di notifica e le notifiche arrivano ad ogni tick! La funzione stessa è semplicemente scritta in int Start. Condizioni di PATTERN sulla M30.

int DayT=0;
datetime BarTime=TimeCurrent();
void NOTIFICATION()
{
   if(DayT!=Day())// Если новый день - нужно опросить
   {
      DayT=Day();
      if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
      if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
   }
   if (BarTime==Time[0]) // Если новый бар - нужно опросить
   {
      BarTime=Time[0];
      if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
      if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
   }
}

Si dichiarano le variabili e si confrontano immediatamente con esse. Naturalmente si ottiene sempre lo stesso risultato.

 
Artyom Trishkin:
È difficile leggere il codice su un cellulare. Ci deve essere qualcos'altro che non va.

Penso che sarebbe dovuto andare così

datetime BarTime;
 

@Konstantin Nikitin Ciao!!! Risolto!!! I segnali giornalieri sono aumentati! Devo ancora controllare quelli intraday!

Risolto! Qui:

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

static int DayT=0;
datetime BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

@Konstantin Nikitin Ciao!!! Risolto!!! I segnali giornalieri sono aumentati! Devo ancora controllare quelli intraday!

Risolto! Qui:

static int DayT=0;
datetime BarTime;

Portalo a livello globale. Li avrete sempre uguali a 0, perché ogni volta che la funzione viene chiamata, ne viene dichiarata una nuova.

 
@Konstantin Nikitin Stai suggerendo di prendere questi parametri fuori dal corpo della funzione? O lasciarli come ho scritto nell'ultimo screenshot?