新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1116

 
Roman:

帮助说应该返回时间框架值,而不是用EnumToString() 转换的标识符
_Period变量返回int。
ENUM_TIMEFRAMES Period()也意味着会返回int。

你是唯一一个暗示它的人。实际上Period()返回enum_TIMEFRAMES 的值。

如果你打印出这个枚举中常量的值,你会看到你已经熟悉的数字。

而且一直都是这样。自从MQL5诞生以来,就一直是这样。

而且在帮助中清楚地写明了什么是返回。

值可以是 枚举 ENUM_TIMEFRAMES一个值

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

你是唯一一个暗示这一点的人。事实上,Period()返回ENUM_TIMEFRAMES 枚举的值。

如果你打印出这个枚举中常量的值,你会看到你已经熟悉的数字。

而且一直都是这样。自从MQL5诞生以来,就一直是这样。

而且在帮助中清楚地写明了什么是返回。

你认为 ENUM 枚举返回的是什么类型?)
而该参考文献明确指出
返回当前图表的时间框架值

自行打印

Print(PERIOD_M30);
Print(PERIOD_H1);
 
Roman:

而ENUM枚举,你认为它返回什么类型?)
而参考文献中明确说到
返回当前图表的时间框架值

打印你自己的。

你想向我证明什么?

我完全了解正在打印的内容和正在返回的数据,何时何地。

你想知道当前时段的分钟数?

以这种方式获得。

PeriodSeconds(Period())/60;

或像这样。

PeriodSeconds(PERIOD_CURRENT)/60;

或者像这样。

PeriodSeconds()/60;
 
Artyom Trishkin:

你想向我证明什么?

对你来说没有什么,我没有给你写过问题,我写给了开发商。
在M30和H1上多印一些,看看有什么不同。

Print(_Period);
 
Roman:

你不关心,我没有给你写问题,我写给了开发商。
在M30和H1上多印一些,看看有什么不同。

这不是一个问题。它从来都不是。

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

虫子,虫子,问题

Artyom Trishkin, 2020.04.09 22:11

你想证明什么?

我对打印的内容和返回的数据、时间和地点有很好的理解。

你想知道当前时段的分钟数?

以这种方式获得它们。

PeriodSeconds(Period())/60;

或像这样。

PeriodSeconds(PERIOD_CURRENT)/60;

或像这样。

PeriodSeconds()/60;

 
Roman:

你不必这样做,我没有把问题写给你,我是写给开发者的。
在M30和H1上多印一些,看看有什么不同。

你就不能离开MQL4吗?

在MQL4中这样做。

PeriodSeconds(Period())/60;

或像这样。

PeriodSeconds(PERIOD_CURRENT)/60;

或者像这样。

PeriodSeconds()/60;

并打印出结果值。

 
Artyom Trishkin:

你就不能离开MQL4吗?

在MQL4中这样做。

或像这样。

或像这样。

并打印出结果值。

我没有用过mql4 )),我没有习惯它。
为什么要再除以60呢?
帮助中哪里说了?
这已经是你的拐杖绕过了错误。
现在检查一下你的拐杖,在所有的时间范围

Print(_Period / 60);
 
Roman:

我没有用过mql4 )),我没有习惯它。
为什么要再除以60呢?
帮助中哪里说了?
这已经是你的拐杖绕过了错误。

打脸...
 
Roman:

变量_Period和Period()功能,直到并包括M30的输出值,单位为分钟。
如果是M1时期,则为1
如果周期M2,那么2
...
如果期间M30,那么30

符合逻辑的是,每小时的时间将是60分钟。
两小时的时间 120
三小时180
等。

但从H1开始,显示的是错误的数值。

如果程序输出 "错误的值",你需要看看程序的 "想法",但它只能以二进制格式思考。

我检查了一下,确实如此。

void OnStart()
{

   ENUM_TIMEFRAMES allperiod[] = {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
                                 };
   for(int i = 0; i < ArraySize(allperiod); i++)
      Print(UintToBinary((uint)allperiod[i]));

}
//+------------------------------------------------------------------+
string UintToBinary(uint n)
{
   string r = "";
   if(n == 0) return("0");
   while(n != 0)
   {
      r = (n % 2 == 0 ? "0" : "1") + r;
      n /= 2;
   }
   return(r);
}
//+------------------------------------------------------------------

2020.04.10 00:38:57.118 tst (EURUSD,H1) 0

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1

2020.04.10 00:38:57.118 tst (EURUSD,H1) 10

2020.04.10 00:38:57.118 tst (EURUSD,H1) 11

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 101

2020.04.10 00:38:57.118 tst (EURUSD,H1) 110

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1010

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1111

2020.04.10 00:38:57.118 tst (EURUSD,H1) 10100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 11110

2020.04.10 00:38:57.118 tst (EURUSD,H1) 10000000001

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000010

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000011

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000110

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000001000

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1000000001100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000011000

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000001

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1100000000000001


 
Artyom Trishkin:
打脸...

真的袖子...

在不同的时间范围内打印。

Print(_Period);
2020.04.09 23:39:49.963 VP (EPM20,M1)   1
2020.04.09 23:39:53.135 VP (EPM20,M3)   3
2020.04.09 23:39:53.758 VP (EPM20,M5)   5
2020.04.09 23:39:54.377 VP (EPM20,M10)  10
2020.04.09 23:39:55.094 VP (EPM20,M15)  15
2020.04.09 23:39:55.679 VP (EPM20,M30)  30
2020.04.09 23:39:56.384 VP (EPM20,H1)   16385  //Почему не 60 ?
2020.04.09 23:39:57.071 VP (EPM20,H4)   16388  //Почему не 240 ?
2020.04.09 23:39:57.641 VP (EPM20,D1)   16408  //Почему не 1440 ?
2020.04.09 23:39:58.181 VP (EPM20,W1)   32769  и т.д.
2020.04.09 23:39:58.768 VP (EPM20,MN1)  49153
原因: