错误、漏洞、问题 - 页 418

 

我已经用MT5工作了几天,注意到现在可以用鼠标编辑止损点和利润,这很好,但其中有一个小错误。 当我把鼠标移到止损点时,它的指针会发生变化,显示该止损点处于活动状态可供编辑,但使用 "十字线 "工具时,指针也会发生变化,这意味着如果我想测量与止损点的距离,不是很方便,因为第二个点在指针后面,我无法看到我把它带到哪里。我想做PrintScreen,但它没有拍下鼠标的照片。

底线:用 "十字准线 "从站台上测量是不方便的。

 
mql5:
该错误已被修复。
讨论了开关检查的 "取",不可能实现正确/正确的控制。
开关表达式的值可以是任何东西,比如说。

好吧,我明白了。编译器不能代替程序员来控制开关表达式的值。

作为一个附带的问题,这个结构在上面的例子 中被使用。

enum EV { v1, v2, };
...
   switch(EV(3))

这是否意味着,不仅可以用命名的常量(v1、v2等)来引用一个枚举类型的数据,而且可以通过指定它们在枚举中的序号(EV(n))来引用?

...我做了这样的结构来解决这样的问题--但在这里可以更简单。

 
Yedelkin:

这是否意味着,不仅可以用命名的常量(v1、v2等)来引用一个枚举类型的数据,而且可以通过在枚举中指定它们的序号(EV(n))来引用?

在这种情况下,只是应用标准的int类型转换为EV。在函数符号中。

在mql5中,有两种可能的类型转换的语法形式,其结果是相等的。 (Type_name) Value Type_name(Value)

我的意思是,这不是一些与枚举有关的特殊功能,它只是一个正常的类型转换。

 
Jhonny:

我已经用MT5工作了几天,注意到现在可以用鼠标编辑止损点和利润,这很好,但其中有一个小错误。 当我把鼠标移到止损点时,它的指针会发生变化,显示该止损点处于活动状态可供编辑,但使用 "十字线 "工具时,指针也会发生变化,这意味着如果我想测量与止损点的距离,不是很方便,因为第二个点在指针后面,我无法看到我把它带到哪里。我想做PrintScreen,但它没有拍下鼠标的照片。

一句话:用 "十字准线 "从站台上测量是不方便的。

我同意,这是一个很好的观察,但这不是一个错误。

对MT5的良好祝愿

 
MetaDriver:

在这种情况下,只是应用了一个 标准的int到EV的转换。在函数符号中。

在mql5中,有两种可能的类型转换语法形式,其结果是相同的。 (Type_name) Value Type_name(Value)

我的意思是,这不是一些与枚举有关的特殊功能,它只是一个正常的类型转换。

酷!我将努力消化它。但从你所说的,我的问题的答案是肯定的。这很好!谢谢你!(笑)。
 

不能在可视化模式下启动测试。视频展示台本身启动,但测试没有开始。这是它在日志中所说的。

2011.06.16 21:25:47 EURUSD:符号 同步,收到2904字节的符号信息
2011.06.16 21:25:47 符号EURUSD同步错误
2011.06.16 21:25:47 无法获得历史EURUSD,M1
2011.06.06.16 21:25:47 日志文件 "C:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log "写道
2011.06.16 21:25:48 tester agent shutdown

 

开发人员。

视觉测试仪真的那么慢吗,还是我只是在幻想?

 
molotkovsm:

不能在可视化模式下启动测试。视频展示台本身启动,但测试没有开始。这就是日志中所写的内容。

2011.06.16 21:25:47 EURUSD:符号同步,收到2904字节的符号信息
2011.06.16 21:25:47 EURUSD符号同步错误
2011.06.16 21:25:47 无法获取历史记录 EURUSD,M1
2011.06.16 21:25:47 日志文件 "C:{Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log "写入
2011.06.16 21:25:48 测试机代理关闭

同样的问题。代理人日志不能通过指定路径打开。

2011.06.16 22:40:52     tester agent shutdown
2011.06.16 22:40:52     log file "C:\Program Files\MetaTrader 5 - 64\Tester\Agent-127.0.0.1-3000\logs\20110616.log" written
2011.06.16 22:40:52     cannot get history EURUSD,M1
2011.06.16 22:40:52     symbol EURUSD synchronization error
2011.06.16 22:40:52     EURUSD: symbol synchronized, 2904 bytes of symbol info received
2011.06.16 22:40:51     Pentium Dual-Core  T4300 @ 2.10 GHz, 3001 MB
2011.06.16 22:40:51     13 Kb of total initialization data received
2011.06.16 22:40:51     successfully initialized
2011.06.16 22:40:51     expert file added: Experts\Тест.ex5. 2958 bytes loaded
2011.06.16 22:40:51     346 bytes of selected symbols loaded
2011.06.16 22:40:51     196 bytes of input parameters loaded
2011.06.16 22:40:51     1490 bytes of tester parameters loaded
2011.06.16 22:40:51     3788 bytes of group info loaded
2011.06.16 22:40:51     login (build 468)
2011.06.16 22:40:51     initialization finished
2011.06.16 22:40:51     MetaTester 5 started on 127.0.0.1:3000
2011.06.16 22:40:51     MetaTester 5 x64 build 468 (16 Jun 2011)


 
请提供代码。
 
Renat:
请给我代码。

晚上好,我在想,如果在这个代码中

  if(B >= spred && IND == true && proverka()==true)

在检查了B>spred,即 "FALSE "之后,其余的值被检查。

它增加了测试的运行时间,所以我必须按以下方式修改代码

   if(B >= bar)
    {
     if (IND == true) 
      {
       if (proverka)==true)
        {
         .......

而在计算方面最耗时的是(proverka()--复制指标的缓冲值)。

我把它放在最后,但它并不检查最后一个。我想知道。

为什么这么说呢?

或者它不检查最后一个。

 if(B >= bar) if (IND == true) if (proverka()==true)