初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1379

 
User_mt5 #:

请解释...

圣经》说:_Period变量存储了当前 图表的时间框架值

TF的_Period 的实际值。

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 =16385

H4 =16388

H6 =16390

请解释一下,60、120等数字......已经不流行了?

如果你知道,至少给我一个提示,这里的诀窍是什么?

现在我不敢问......在我们神秘的MQL中还有哪些地方有这样的招数?:(

下面是各期https://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

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

而不是数字--写上句号

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

请解释...

圣经》说:_Period变量存储了当前 图表的时间框架值

TF的_Period 的实际值。

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 =16385

H4 =16388

H6 =16390

请解释一下,60、120等数字......已经不流行了?

如果你知道,至少给我一个提示,这里的诀窍是什么?

现在我不敢问......在我们神秘的MQL中还有哪些地方有这样的招数?:(

你应该阅读整个《帮助》。

_Period 变量的内容,其中存储了当前图表的时间框架值。该值可以是ENUM_TIMEFRAMES枚举 中的一个 这里的关键词是"......ENUM_TIMEFRAMES 枚举"。

而且你必须使用枚举的ENUMENTS。例如 PERIOD_H1, PERIOD_M15 ...而且你不需要知道一个枚举项有什么内部值。

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

请解释...

圣经》说:_Period变量存储了当前 图表的时间框架值

TF的_Period 的实际值。

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 =16385

H4 =16388

H6 =16390

请解释一下,60、120等数字......已经不流行了?

如果你知道,至少给我一个提示,这里的诀窍是什么?

现在我不敢问......在我们神秘的MQL中还有哪些地方有这样的招数?:(

你是如何得到它们的?

 
SanAlex #:

这里有句话https://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

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

而不是数字--写上句号

谢谢你的建议。

如果这个特征是已知的,那么要考虑到它并不难。我使用PeriodSeconds()。

问题是,你事先不知道这些......功能来自哪里。

 
Vladimir Karputov #:

应全文阅读该帮助。

_Period 变量的内容,它存储了当前图表的时间框架值。该值可以是ENUM_TIMEFRAMES 枚举 之一 这里的关键是"...ENUM_TIMEFRAMES 枚举"。

而且你必须使用枚举的ENUMENTS。例如 PERIOD_H1, PERIOD_M15 ...而且你不需要知道一个枚举项有什么内部值。

谢谢你的参与。

但问题是--我甚至不能阅读:(

而且一般来说,我不期望别人告诉我必须做什么。我希望能得到我这个愚蠢问题的答案。

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

你是如何得到它们的?

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

你去吧。你得到的是枚举的值。

User_mt5#:

...

如果这个特征是已知的,那么要考虑到它并不难。我使用PeriodSeconds()

...

如果你使用 它,这个问题就不会出现。

 
User_mt5 #:

请解释...

圣经》说:_Period变量存储了当前 图表的时间框架值

TF的_Period 的实际值。

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 =16385

H4 =16388

H6 =16390

请解释一下,60、120等数字......已经不流行了?

如果你知道,至少给我一个提示,这里的诀窍是什么?

现在我不敢问......在我们神秘的MQL中还有哪些地方有这样的招数?:(

资料来源。

关于交易、自动交易系统和交易策略测试的论坛

MQL5中时间框架的隐藏含义

Serhii Shevchuk, 2017.02.27 01:53

是的,但它很慢。我草拟了一个小脚本进行比较:

#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);
//---
  }    
//+------------------------------------------------------------------+
正如你所看到的,它比if-units 慢一半左右:



и

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

你去吧。你得到的是枚举的值。

如果 有,这个问题就不会出现了。

我不同意。

我想这不是一个借口,甚至不是一个解释。

预定义变量的一般逻辑是,它们可以被直接访问,并给出它们的值。

这就是你如何参考,例如, _点,_数字, 等等。 而这很好。

直观地说,预计所有其他预定义的变量都有类似的属性。

但在_Period 的情况下,情况并非如此。

--

再次感谢你们所有人。让我们考虑一下这个问题的解决。
祝大家周末愉快!)

 
Fast235 #:

我找不到它的合理用途。

从自己身上加密是没有意义的,只有全局变量 终端对第二个用户可见。

将其状态保存到磁盘,通过互联网交换数据。