来自一个 "傻瓜 "的问题 - 页 117

 
meneo:

这怎么可能呢?(见变量k的计算和调试模式下所有变量的值)

这很简单。lparam是长类型(整数),wdpix是int类型(整数)。lparam/wdpix是私有长类型(整数)。由于lparam < wdpix,lparam/wdpix ==0。

参见MQL5参考/ 语言基础知识/ 数据类型/ 类型转换

 
meneo:

你如何解释图表上相邻柱状体之间的空隙?

如果你看到它,请联系服务台并告知他们有关错误。
 
谢谢大家!)
 
你能看出哪个专家在另一个窗口中运行吗?
 
meneo:
你能看出哪个专家顾问在另一个窗口中运行吗?
这似乎是不可能的(如果我没有错过什么的话)。 但是,将自己的人与 "其他人""区分 "开来是可能的。如果项目 中有几个程序,你可以通过自定义消息指定它们的礼节性交换协议。他们应该打招呼,摘下帽子,翻出口袋,等等。
 

是否也可以通过枚举的方式进行枚举

像这样?

for (int i =PERIOD_M1;i<=PERIOD_D;i++)

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

是否也可以通过枚举的方式进行枚举

像这样?

for (int i =PERIOD_M1;i<=PERIOD_D;i++)

这是不可能的。

关于这个--我应该试试。

for (ENUM_TIMEFRAMES i = PERIOD_M1;i<=PERIOD_D;i++) {}

虽然 "理论上 "有机会,但我怀疑这不会成功。:)

 

嗯,我试过了。

void OnStart()
  {
//---
   for (ENUM_TIMEFRAMES i = PERIOD_M1;i<=PERIOD_D;i++) { Print(EnumToString(i));}
  }
//+------------------------------------------------------------------+

甚至不愿意编译。

'ForEnum.mq5' ForEnum.mq5 1 1
'i' - 意外令牌 ForEnum。mq5 15 25
'i' - 未声明的标识符 ForEnum.mq5 15 25
'PERIOD_D' - 未声明的标识符 ForEnum。mq5 15 42
'i' - EnumToString的参数必须是一个枚举ForEnum。mq5 15 77
4个错误(s), 0个警告(s) 5 1

但似乎没有什么违法之处。

 
MetaDriver:

我试过了。

程序员甚至不愿意进行编译。

而且似乎没有任何违法之处。


为了使用枚举,你可能至少应该添加以下这些函数

enum::GetNameenum::GetValue

foreach 语言结构

然后,枚举将由MQL自动进行。

 

当然,这也是可行的。

#property script_show_inputs

input  ENUM_TIMEFRAMES P = PERIOD_D1;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for (int i = PERIOD_M1;i<=P;i++)  // { Print(EnumToString(ENUM_TIMEFRAMES(i)));}
    {
      string S=EnumToString(ENUM_TIMEFRAMES(i));
      if (StringGetCharacter(S,0)=='P')   

        {{{{ Print(S);  }}}}

    }

  }

最棒的是--它并没有说P是一个意外的标记未声明的标识符

相反,作为一个普通客户,它提供了所有的便利。



奇怪的.....;)