Questions from Beginners MQL5 MT5 MetaTrader 5 - page 1379

 
User_mt5 #:

Please explain...

The Bible says: The _Period variable stores the timeframe value of the current chart.

The actual values of _Period for the TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explain please, the numbers 60, 120 etc. are... no longer in vogue?

If you know, at least give me a hint as to what the trick is here?

And now I'm afraid to ask ... where else in our mysterious MQL are such tricks? :(

here are the periodshttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

instead of numbers - write the periods

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Please explain...

The Bible says: The _Period variable stores the timeframe value of the current chart.

The actual values of _Period for the TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explain please, the numbers 60, 120 etc. are... no longer in vogue?

If you know, at least give me a hint as to what the trick is here?

And now I'm afraid to ask ... where else in our mysterious MQL are such tricks? :(

You should read the entire Help:

Contents of the_Period variable, in which the timeframe value of the current chart is stored. The value can be one of valuesof enumerationENUM_TIMEFRAMES. The key word here is "... enumerationENUM_TIMEFRAMES".

And you MUST use ENUMENTS of the enumeration. For example PERIOD_H1, PERIOD_M15 ... And you don't need to know what internal value an enumeration item has.

Документация по MQL5: Предопределенные переменные / _Period
Документация по MQL5: Предопределенные переменные / _Period
  • www.mql5.com
_Period - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Please explain...

The Bible says: The _Period variable stores the timeframe value of the current chart.

The actual values of _Period for the TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explain please, the numbers 60, 120 etc. are... no longer in vogue?

If you know, at least give me a hint as to what the trick is here?

And now I'm afraid to ask ... where else in our mysterious MQL are such tricks? :(

How did you get them?

 
SanAlex #:

there are periods herehttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

instead of numbers - write the periods

Thanks for the advice.

If the feature is known, it's not hard to take it into account. I use PeriodSeconds();

Trouble is, you don't know in advance where these... features are coming from.

 
Vladimir Karputov #:

The help should be read in full:

Contents of the_Period variable, which stores the timeframe value of the current chart. The value can be one oftheENUM_TIMEFRAMESenumeration values. The key here is "...ENUM_TIMEFRAMES enumeration."

And you MUST use ENUMENTS of the enumeration. For example PERIOD_H1, PERIOD_M15 ... And you don't need to know what internal value an enumeration item has.

Thank you for your participation.

But the trouble is - I can't even read:(

And in general, I don't expect to be told what I must do. I was hoping to get an answer to my stupid question.

 
Сергей Таболин #:

How did you get them?

Print("_Period = ", _Period );
 
User_mt5 #:

There you go. You get the value of the enumeration.

User_mt5 #:

...

If the feature is known, it's not hard to take it into account. I use PeriodSeconds();

...

If you used it, the question wouldn't arise.

 
User_mt5 #:

Please explain...

The Bible says: The _Period variable stores the timeframe value of the current chart.

The actual values of _Period for the TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explain please, the numbers 60, 120 etc. are... no longer in vogue?

If you know, at least give me a hint as to what the trick is here?

And now I'm afraid to ask ... where else in our mysterious MQL are such tricks? :(

Source:

Forum on trading, automated trading systems and trading strategy testing

The Hidden Meaning of Timeframes in MQL5

Serhii Shevchuk, 2017.02.27 01:53

Yes, but it's slow. I sketched a little script for comparison:

#property script_show_inputs

input long              InpCycles=1000000000;

ENUM_TIMEFRAMES TF_list[32]={
PERIOD_MN1, PERIOD_W1,  PERIOD_D1,  PERIOD_H12,
PERIOD_H8,  PERIOD_H6,  PERIOD_H4,  PERIOD_H3,  
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20,
PERIOD_M15, PERIOD_M12, PERIOD_M10, PERIOD_M6,  
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,  
PERIOD_M1,  PERIOD_MN1, PERIOD_W1,  PERIOD_D1,
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20
};

int PeriodMinutes(ENUM_TIMEFRAMES tf)
{
      uint t = uint(tf);
      uint f = 0xc000&t;
      uint min = 0x00FF&t;
      if(f==0x4000) min*= 60;
      else if(f==0x8000) min*= 10080;
      else if(f==0xc000)  min*= 43200;
      return(int(min));  
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ulong tmp = 0;
   //
   uint idx = 0;
   ulong t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodMinutes(TF_list[0x1f&(idx++)]);  
   ulong t1 = GetMicrosecondCount();
   Print("1) tmp = ",tmp,"... dT = ",t1-t0);
//---
   tmp = 0;
   idx = 0;
   t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodSeconds(TF_list[0x1f&(idx++)])/60;
   t1 = GetMicrosecondCount();
   Print("2) tmp = ",tmp,"... dT = ",t1-t0);
//---
  }    
//+------------------------------------------------------------------+
As you can see, it's about half as slow as if-units:



и

 
Сергей Таболин #:

There you go. You are getting the value of the enumeration.

If you had, the question wouldn't have arisen.

I disagree.

I guess that's not an excuse or even an explanation.

The general logic of predefined variables is that they can be accessed directly, and they give their values.

That's how you can refer to, for example, _Point, _Digits, etc. And that's fine.

Intuitively, it's expected that all other predefined variables have similar properties.

But in the case of _Period, this is not the case.

--

Thanks again to all of you. Let's consider the issue settled.
Have a nice weekend, everyone!)

 
Fast235 #:

what is the encryptor built into mql for? i can't find a reasonable use for it

it makes no sense to encrypt from itself, and only global variable terminals are visible to a second user

Save its state to disk, exchange data over the internet.

Reason: