Download MetaTrader 5

dealing with ODD or double numbers

To add comments, please log in or register
Yochanan Gerbi
608
Yochanan Gerbi  

Hello freinds,

I need your help.

I want the EA to check an operation every two minutes.

The simple way is to do:

  if (   TimeMinute(TimeCurrent()) != 2  && TimeMinute(TimeCurrent()) != 4  && TimeMinute(TimeCurrent()) != 6  && TimeMinute(TimeCurrent()) != 8  &&
         TimeMinute(TimeCurrent()) != 10 && TimeMinute(TimeCurrent()) != 12 && TimeMinute(TimeCurrent()) != 14 && TimeMinute(TimeCurrent()) != 16 &&
         TimeMinute(TimeCurrent()) != 18 && TimeMinute(TimeCurrent()) != 20 && TimeMinute(TimeCurrent()) != 22 && TimeMinute(TimeCurrent()) != 24 && 
         TimeMinute(TimeCurrent()) != 26 && TimeMinute(TimeCurrent()) != 28 && TimeMinute(TimeCurrent()) != 32 && TimeMinute(TimeCurrent()) != 34 &&
         TimeMinute(TimeCurrent()) != 36 && TimeMinute(TimeCurrent()) != 38 && TimeMinute(TimeCurrent()) != 40 && TimeMinute(TimeCurrent()) != 42 &&
         TimeMinute(TimeCurrent()) != 44 && TimeMinute(TimeCurrent()) != 46 && TimeMinute(TimeCurrent()) != 48 && TimeMinute(TimeCurrent()) != 50 &&
         TimeMinute(TimeCurrent()) != 52 && TimeMinute(TimeCurrent()) != 54 && TimeMinute(TimeCurrent()) != 56 && TimeMinute(TimeCurrent()) != 58  ) 


Can you think about simpler way to do it?

Edward Hirsch
700
Edward Hirsch  

something like this:

#define ODD  1
#define EVEN 0

int PreviousMinute = ODD;

void OnTick() {
   int CurrentMinute = TimeMinute(TimeCurrent()) % 2;
   if ((PreviousMinute == ODD) && (CurrentMinute == EVEN)) {
      // check operation every two minutes
      Alert("Bi-Minute check ",TimeMinute(TimeCurrent()));
   }
   PreviousMinute=CurrentMinute;
}
SYED NAUFAL GADDAFI
1399
SYED NAUFAL GADDAFI  
Use ontimer for a better timer.
whroeder1
15735
whroeder1  
crossy: I want the EA to check an operation every two minutes.
  1. Don't paste code
    Play video
    Please edit your post.
    For large amounts of code, attach it.

  2. While
    if(TimeMinute(TimeCurrent()) % 2 == 0) ...
    would trigger every even minute. You probably only want one trigger per.
  3. What about when there is no ticks during that minute "Free-of-Holes" Charts - MQL4 Articles don't you want to trigger at the next tick?
    static datetime everyTwoMinutes = 0;
    datetime now = TimeCurrent();
    if(now >= everyTwoMinutes){
      everyTwoMinutes = now + 120;              // Every two.
      everyTwoMinutes -= everyTwoMinutes % 120; // Top of the minute.
      :

Yochanan Gerbi
608
Yochanan Gerbi  
WHRoeder:

  1. Play video
    Please edit your post.
    For large amounts of code, attach it.

  2. Whilewould trigger every even minute. You probably only want one trigger per.
  3. What about when there is no ticks during that minute "Free-of-Holes" Charts - MQL4 Articles don't you want to trigger at the next tick?
Yochanan Gerbi
608
Yochanan Gerbi  
Thanks
To add comments, please log in or register