Hello friends
It seems new version of MQL5 have problem to get the value of Period, I have tried both " Period() , _Period " But the out come is wrong
I write this simple code, and change time frame to check the result, But the out come is Wrong !!!
I use MQL5 version 3030
That's right, there are no mistakes. ENUM_TIMEFRAMES is an enumeration.
Example:
//+------------------------------------------------------------------+ //| ENUM_TIMEFRAMES.mq5 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.002" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- ENUM_TIMEFRAMES timeframes_array[22]= { PERIOD_CURRENT, PERIOD_M1,PERIOD_M2,PERIOD_M3, PERIOD_M4,PERIOD_M5,PERIOD_M6, PERIOD_M10,PERIOD_M12,PERIOD_M15, PERIOD_M20,PERIOD_M30,PERIOD_H1, PERIOD_H2,PERIOD_H3,PERIOD_H4, PERIOD_H6,PERIOD_H8,PERIOD_H12, PERIOD_D1,PERIOD_W1,PERIOD_MN1 }; string descriptions_array[22]= { "Current timeframe", "1 minute","2 minutes","3 minutes", "4 minutes","5 minutes","6 minutes", "10 minutes","12 minutes","15 minutes", "20 minutes","30 minutes","1 hour", "2 hours","3 hours","4 hours", "6 hours","8 hours","12 hours", "1 day","1 week","1 month" }; int size=ArraySize(timeframes_array); for(int i=0; i<size; i++) Print(i,": \"",EnumToString(timeframes_array[i]),"\" '",timeframes_array[i],"' \"",descriptions_array[i],"\""); } //+------------------------------------------------------------------+
Thanks Vladimir.
Period () shows exactly the current timeframe. There are no digits '1', '2' ... instead there are ENTRY ITEMS: 'PERIOD_M1', 'PERIOD_M2', 'PERIOD_M3' ...
Read the help: ENUM_TIMEFRAMES enumeration
ENUM_TIMEFRAMES
ID | Description |
PERIOD_CURRENT | Current timeframe |
PERIOD_M1 | 1 minute |
PERIOD_M2 | 2 minutes |
PERIOD_M3 | 3 minutes |
PERIOD_M4 | 4 minutes |
PERIOD_M5 | 5 minutes |
PERIOD_M6 | 6 minutes |
PERIOD_M10 | 10 minutes |
PERIOD_M12 | 12 minutes |
PERIOD_M15 | 15 minutes |
PERIOD_M20 | 20 minutes |
PERIOD_M30 | 30 minutes |
PERIOD_H1 | 1 hour |
PERIOD_H2 | 2 hours |
PERIOD_H3 | 3 hours |
PERIOD_H4 | 4 hours |
PERIOD_H6 | 6 hours |
PERIOD_H8 | 8 hours |
PERIOD_H12 | 12 hours |
PERIOD_D1 | 1 day |
PERIOD_W1 | 1 week |
PERIOD_MN1 | 1 month |
- www.mql5.com
- Seyed Hadi Ghoreishimedyseh #: But I want to get current chart Time frame value . The only way is Period(). But it do not show correct result. how can I get Current chart Time frame value ?
ENUM_TIMEFRAMES tf = ENUM_TIMEFRAMES(_Period);
- Seyed Hadi Ghoreishimedyseh: But the out come is wrongIt does not “come out wrong.” It is not a “wrong value.” It is an enumeration; its value is irrelevant. Its value is not in minutes; use PeriodSeconds(tf)/60 if you want that.
Thanks Vladimir.
Just create your own function like:
int eTF2minTF( const ENUM_TIMEFRAMES tf ) { switch(tf) { case PERIOD_CURRENT: return(0); case PERIOD_M1: return(1); case PERIOD_M2: return(2); case PERIOD_M3: return(3); case PERIOD_M4: return(4); case PERIOD_M5: return(5); case PERIOD_M6: return(6); case PERIOD_M10: return(10); case PERIOD_M12: return(12); case PERIOD_M15: return(15); case PERIOD_M20: return(20); case PERIOD_M30: return(30); case PERIOD_H1: return(60); case PERIOD_H2: return(120); case PERIOD_H3: return(180); case PERIOD_H4: return(240); case PERIOD_H6: return(360); case PERIOD_H8: return(480); case PERIOD_H12: return(720); case PERIOD_D1: return(1440); case PERIOD_W1: return(10080); case PERIOD_MN1: return(43200); } return(-1); } int min = eTF2minTF(_Period);
Sir,
is it possible to use higher TF for calculating in a specific timeframe?
for example : use M15 data on M1 TF.
Something Like This :
input ENUM_TIMEFRAMES tf1 = 15; // Time Frame (15) ENUM_TIMEFRAMES(_Period) = tf1;
Thnaks
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hello friends
It seems new version of MQL5 have problem to get the value of Period, I have tried both " Period() , _Period " But the out come is wrong
I write this simple code, and change time frame to check the result, But the out come is Wrong !!!
I use MQL5 version 3030