错误、漏洞、问题 - 页 2621

 

在一个看似明显的地方偶然发现了一个困惑。以下是剧本。

double Sigma = 1.0;
double Smax = 5.0;
double Step = 2;


void OnStart()
{
  int scount = 1;

  double s = Sigma;

  for( ; s < Smax; scount++)
  {
    s *= Step;
    Print(scount, " ", s);
  }
  
  Print(scount);
}

不知道为什么,最后scount等于4,尽管它应该是3。只有当s为1.0、2.0、4.0时,才能在检查成功后执行增量循环。那么s中就有8,比5还多。

 
Stanislav Korotky:

在一个看似明显的地方偶然发现了一个困惑。以下是剧本。

不知道为什么,最后scount等于4,尽管它应该是3。只有当s等于1.0、2.0、4.0时,才能在检查成功后执行增量循环。那么s包含8,它大于5。

在for语句的增量是 循环体结束 进行的https://www.mql5.com/ru/docs/basis/operators/for

for(expression1; expression2;expression3)操作者。

выражение1;
while(выражение2)
  {
   оператор;
   выражение3;
  };

在谷歌上搜索了第一篇文章,以防我不记得了--在C++中也是这样工作的https://en.cppreference.com/w/cpp/language/for

init_statement
while ( condition ) {
statement
iteration_expression ;
}
 
Igor Makanu:

在for语句中,增量是在循环体结束后进行的https://www.mql5.com/ru/docs/basis/operators/for

for(expression1; expression2;expression3)

正是如此。循环变量必须传递数值1、2、3。因为在第三次乘法之后,条件就不满足了。8 > 5 - 这可以从循环的最后一次打印中看出。

 
Stanislav Korotky:

正是如此。循环变量必须传递数值1、2、3。因为在第三次乘法之后,条件就不满足了。8 > 5 - 这可以从循环的最后一次打印中看出。

是的,但是循环的主体是被执行的,对吗?所以在主体 "expression3 "结束后有一个增量,然后有一个检查 - "expression2"

 
Igor Makanu:

所以在 "expression3 "主体结束后有一个增量,然后有一个检查 - "expression2"。

星期五是一年中的最后一个星期五 :-/

 

1-测试结果 的运行已停止运行。驱动器上有空间。一切都在那里。几分钟前还在运行的东西突然停止了。

我按下启动按钮,或点击优化结果,都没有发生。这种事情就是这样出现的。

2019.12.29 11:44:51.402 测试仪 单一通道开始。

而有一次,出现了这样的信息。

2019.12.29 11:41:56.053 Tester 检测到 "Name.ex5 "的调试版本。

虽然没有启用调试,而且这个EA根本没有在编辑器中打开,编辑器也被禁用,但没有任何东西被编译或改变。

从优化到设置的参数,它成功转移,这就是它视觉上的停止。


2- 而在转发器中的 "停止 "按钮失败。另外,它的颜色没有从粉色变为绿色,或者终端只是进入了中间状态,这时它什么也不做,但我不能在 "设置 "选项卡中选择任何东西,因为那里的一切都被禁用了。

再次按下停止按钮,就会开始运行。而且你可以在前进之前停止它,然后就可以了。


3- 还有一个 "诀窍 "是,优化开始运行的速度会慢几倍。只是随着时间的推移。通过重新启动终端治愈....有些东西在某个地方堆积起来了...清除日志和缓存似乎并不影响这种减慢。但是,重新启动有很大的影响!
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Михаил:

测试结果 运行已停止运行。磁盘空间是有的。一切都在那里。几分钟前还在运行的东西突然停止了。

我按下启动按钮,或点击优化结果,都没有发生。这种事情就是这样出现的。

2019.12.29 11:44:51.402 测试仪 单一通道开始。

而有一次,出现了这样的信息。

2019.12.29 11:41:56.053 检测到 "Name.ex5 "的测试器调试版本。

虽然没有启用调试,而且这个EA根本没有在编辑器中打开,编辑器被禁用,但没有任何东西被编译或改变。

它成功地将参数从优化中保存到设置中,并在视觉上停止。


而且,转发器中的 "停止 "按钮也不能正常工作。有时它的颜色并没有从粉红色变成绿色,或者终端只是进入了中间状态,这时它什么也不做,但不能在设置选项卡中选择任何东西,因为那里的一切都被禁用了。

再次按下停止按钮,就会开始运行。而且你可以在前进之前停止它,然后就可以了。


而另一个 "诀窍 "是,优化开始时的运行速度会慢几倍。只是随着时间的推移。通过重新启动终端的补救措施.... 有些东西正在某个地方积累起来...清除日志和缓存似乎并不影响这种减慢。但是,重新启动有很大的影响!

你必须用F7编译释放版。你按下了F5并编译了debug-version

 
Artyom Trishkin:

你必须通过F7编译发布版本。你按下了F5并编译了debug-version

不,我是用鼠标和 "编译 "按钮编译的。但这并不适用于所述情况,因为这个EA是前天编制的。 然后,它被成功地优化并运行了几次。然后它就崩溃了。重新启动终端有助于...

因此,它只是感觉在某个地方堆积了一些虫子。这导致了故障和刹车。重置(重新启动)可以治愈...
 
还有一件事--正向运行离正向运行的开始日期越远(按日期计算),它的速度就越慢。起初,它是快速的,然后越来越慢。然后灾难性地变慢。这是个好主意,要解决这个问题)
 
Михаил:
还有一件事--正向运行离正向运行的开始日期越远(按日期计算),它的速度就越慢。起初,它是快速的,然后越来越慢。然后灾难性地变慢。如果能解决这个问题就好了)

无代码播放--无响应