[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 323

 
Vinin писал(а)>>

这就是为什么你会故意犯错。

而且是故意的,这很有趣...我很想看看这个错误,但我找不到。

 
Daiver2 >> :

我把一些函数作为测试脚本运行,看看是否有编译错误,在终端检查哪些函数是否工作。我今天采取了窗口中条形的预计算功能。

很自然地,*没有足够的条数*的信息就出来了,但是在一个新的勾选中,我知道这个信息会无限期地再次出现。

现在我添加了一个变量,并写了一个if 语句,同时在未来的错误处理程序Bloc_Error 中,我放入了一个操作符开关 ,并得出了结果。

问题是我在switch 语句中做错了什么,为什么没有显示*专家不工作*的信息,以及为什么EA真的停止工作?????。
//+------------------------------------------------------------------+      
    switch()//?????????????? почему в switch не передаёте параметр 
      {
      case 3:          // Неверные параметры:
      Work=false;
      return(0);
      }


 

大家好!

我不明白在EA运行时出现错误的原因。我正在一个终端上同时测试一个EA的11个货币对(模拟账户)。我在每小时开始时检查进入条件,即11个EA同时开始工作。IsTradeBusy()函数(从这里https://www.mql5.com/ru/articles/1412) 已被用于不干扰对方。最近,当专家顾问试图改变TradeIsBusy 全局变量的值而不是开仓时,一直在报告错误。这里是代码的一部分。

     // пытаемся менять значение TradeIsBusy с 0 на 1
     // если нам это удаётся, выходим из ф-ции, возвращая 1 - "успешное завершение"
     if(GlobalVariableSetOnCondition( "TradeIsBusy", 1.0, 0.0 )) 
         return(1);
     else
     // если нет, возможны 2 причины: TradeIsBusy = 1 (тогда надо ждать), либо 
     // возникла ошибка (это мы и проверим)
     {
        _GetLastError = GetLastError();
        // если это всё таки ошибка, выводим информацию и пробуем ещё раз
        if(_GetLastError != 0)
        {
           Print("TradeIsBusy()-GlobalVariableSetOnCondition(\" TradeIsBusy\",1.0,0.0 )-Error #",
           _GetLastError );
           continue;
        }
     }

错误代码。

#4002 - "数组索引 - 超出范围"

#4105 - "没有选择订单"。

我不明白使用GlobalVariableSetOnCondition 命令时,什么条件可能导致这些错误

Terminal Broco Trader 4.0 build 225.

终端会出现这样的故障吗?

 
Urain писал(а)>>

>>谢谢你,我会的。

 
OAndrey писал(а)>>

大家好!

我不明白在EA运行时出现错误的原因。我正在一个终端上同时测试一个EA的11个货币对(模拟账户)。我在每小时开始时检查进入条件,即11个EA同时开始工作。IsTradeBusy()函数(从这里https://www.mql5.com/ru/articles/1412) 已被用于不干扰对方。最近,当专家顾问试图改变TradeIsBusy 全局变量的值而不是开仓时,一直在报告错误。这里是代码的一部分。

错误代码。

#4002 - "数组索引 - 超出范围"

#4105 - "没有选择订单"。

我不明白使用GlobalVariableSetOnCondition 命令时,什么条件可能导致这些错误

Terminal Broco Trader 4.0 build 225.

终端可能会出现这样的故障?

我不能对这段代码说什么。作为一个提示。重置函数开始时的最后一个错误的状态。它可能发生在其他地方。

   GetLastError();  //Сбрасываем состояние 

   // пытаемся менять значение TradeIsBusy с 0 на 1
   // если нам это удаётся, выходим из ф-ции, возвращая 1 - "успешное завершение"
   if(GlobalVariableSetOnCondition( "TradeIsBusy", 1.0, 0.0 )) 
      return(1);
   else
   // если нет, возможны 2 причины: TradeIsBusy = 1 (тогда надо ждать), либо 
   // возникла ошибка (это мы и проверим)
   {
      _GetLastError = GetLastError();
      // если это всё таки ошибка, выводим информацию и пробуем ещё раз
      if(_GetLastError != 0)
      {
         Print("TradeIsBusy()-GlobalVariableSetOnCondition(\" TradeIsBusy\",1.0,0.0 )-Error #",
         _GetLastError );
         continue;
      }
   }
 

如何在文本中进行换行?例如,我在一个图形上显示一些东西,在OBJ_LABEL 中,我想把文字写成几行。

 
Mathers >> :

如何在文本中进行换行?例如,我在图表上显示一些东西,在OBJ_LABEL中,我想把文字写成几行。

在多个标签中显示。

 

如果行数是动态变化的呢?而且它可能相当大。也许可以用其他东西来代替标签?


还有一个问题:假设我有一个脚本,在一个无限的循环中做一些事情,延迟时间为一秒钟。当我试图删除它时--我选择了 "删除脚本",但它并没有从图表中删除,而是毫无延迟地开始冲撞。当我再按一次 "删除 "时,它就会删除该脚本。怎么了?也许我应该在代码中添加一些东西来正确完成它?

 
Mathers >> :

如果行数是动态变化的呢?而且它可能相当大。也许可以用其他东西来代替标签?

提醒,或者说。评论 -- 这很好。

还有一个问题:假设我有一个脚本,在一个无限的循环中做一些事情,延迟时间为一秒钟。当我试图删除它时--我选择了 "删除脚本",但它并没有从图表中删除,而是毫无延迟地开始冲撞。当我再按一次 "删除 "时,它就会删除该脚本。怎么了?也许我应该在我的代码中添加一些额外的字。

用 while(!IsStopped() 替换 while(true)

 
Mathers >> :

如果行数是动态变化的呢?而且它可能相当大。也许可以用其他东西来代替标签?

不,除非评论不合适。写一个f函数,在那里将生成输出,并通过它写出你需要的东西。

还有一个问题:假设我有一个脚本,在一个无限的循环中做一些事情,延迟时间为一秒钟。当我试图删除它时--我选择了 "删除脚本",但它并没有从图表中删除,而是毫无延迟地开始冲撞。当我再按一次 "删除 "时,它就会删除该脚本。怎么了?也许我应该在我的代码中添加一些额外的字。

应该是这样的。

原因: