MqlTick Flags

 

Hello, I'm kinda new to Trading but I've been programming in C#, C++, Obj-C for a while now, I ain't having any big issues at the moment with Mql5 but this with MqlTick flags...

On this code:

void OnInit()
  {
      Print("Ask: ", TICK_FLAG_ASK, " Bid: ", TICK_FLAG_BID, " Buy: ", TICK_FLAG_BUY, " Last: ", TICK_FLAG_LAST, " Sell: ", TICK_FLAG_SELL, " Volume: ", TICK_FLAG_VOLUME);
  }

I get 2, 4, 8, 16, 32, 64 respectivelly:

But trying to get it from SymbolInfoTick() I get different numbers:

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.flags, " ");
     }
   else Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }



Where do the 6 and 24 come from?? What do they represent??

It only shows 2, 4, 6 and 24 as flags for all sessions all the time, no Sell or Buy flags.

Is it an issue with my broker's data feed?? I'm with FXPro.


Can somebody please clarify this issue?


Thank you!

 

I have found this problem ,and post here last week .

but noone cares it .

 
yalewang:

I have found this problem ,and post here last week .

but noone cares it .

These are flag, that means the MqlTick.flags can report several flag.

6 = 2 + 4 => change in Bid AND Ask.

24 = 16 + 8 => change in Last AND Volume.

etc...

If you don't have Buy or Sell flag that means the broker doesn't provide them.

 
Comments that do not relate to this topic, have been moved to "Does anyone know if TICK_FLAG can have a larger value of 252?".
Reason: