Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 571

 
PolarSeaman:

Est-ce que c'est, l'heure actuelle moins l'heure d'ouverture du bar ?

//+------------------------------------------------------------------+
//| Количество секунд, остающихся до закрытия свечи                  |
//+------------------------------------------------------------------+
long SecondsToCandleClose(const string symbol_name,const ENUM_TIMEFRAMES timeframe)
  {
   datetime array[];
   return(CopyTime(symbol_name,timeframe,0,1,array)==1 ? PeriodSeconds(timeframe)+array[0]-TimeCurrent() : 0);
  }
//+------------------------------------------------------------------+
 
PolarSeaman:

peut-on insérer OnCalculate() dans OnTimer() ?

Je ne sais pas comment synchroniser l'heure locale et l'heureactuelle, je ne le trouve pas dans l'aide.

Il s'agit de deux gestionnaires d'événements différents. OnCalculate() est déclenché par un nouveau tick, OnTimer() est déclenché par le temps qui est défini lorsque vous démarrez le timer.

 
PolarSeaman:

comment, ne pas faire ? seulement cette minute vous devez vérifier, et dormir pendant 24 heures)

Alors vous ne pouvez pas vous passer d'un minuteur.

 
Artyom Trishkin:

Merci. Maintenant, nous devons faire en sorte que cela fonctionne, comme qui, en l'absence de tic.

        if(SecondsToCandleClose(Symbol(),0)<=60)
              {
               if(open[i]>close[i] && high[i]-low[i]>=100*Point)
                 {
                  BufferUP[i]=low[i]-distance*Point;
                 }
              }
 
PolarSeaman:

peut-on insérer OnCalculate() dans OnTimer() ?

Je ne sais pas comment synchroniser l'heure locale et l'heureactuelle, je ne le trouve pas dans l'aide.

Au moment d'un tick nous comptons la différence TimeCurrent()-TimeLocal()
- c'est notre décalage par rapport au courtier ; si ce décalage change plus tard, tout doit être recalculé
- au début ou à l'apparition de la barre D1, recalculer tous les temps nécessaires, à l'heure locale.
- on attend le temps que l'on a "compté" dans le timer, en même temps on vérifie la non-synchronisation, la déconnexion avec le broker, on réinitialise les flèches locales.

 
Ihor Herasko:

Il s'agit de deux gestionnaires d'événements différents. OnCalculate() est déclenché par un nouveau tic-tac, OnTimer() est déclenché par le temps défini lors du démarrage de la minuterie.

Merci, je vois. L'indicateur peut-il fonctionner en OnTimer() ?

 
PolarSeaman:

Merci. Maintenant, nous devons faire en sorte que cela fonctionne en l'absence de tique.

Le code doit être inséré dans OnTimer(). Mais, là encore, il ne peut être utilisé sur l'histoire. Alors mettez tout de suite 0 au lieu de i.

 
PolarSeaman:

Merci, je vois. L'indicateur peut-il fonctionner en OnTimer() ?

L'événement OnTimer() fonctionne dans l'indicateur. Mais vous ne devez pas mettre tout le code dans OnTimer(). Il ne devrait y avoir que la partie responsable du suivi du temps restant jusqu'à la fin de la bougie. Tout le reste doit fonctionner dans OnCalculate().

 
Taras Slobodyanik:

au moment où le tic se manifeste...

Eh bien... Et si la tique ne vient pas ? Il faut qu'elle "commence" sans la tique.

 
Ihor Herasko:

Mais, encore une fois, vous ne pouvez pas l'utiliser pour une histoire.

Désolé, je ne comprends pas pourquoi vous ne pouvez pas.