错误、漏洞、问题 - 页 2611

 
RickD:

测试器中也没有专家顾问的文件夹。但在测试专家顾问 时,MQLInfoString(MQL_PROGRAM_NAME)返回相同的值。

我需要同样的值来关联测试中的版本和使用命名通道的图表上的版本。

固定的是
 
 

我在调试模式 下运行EA。我需要在我手动卸载EA的确切时刻建立一个断点。我如何做到这一点?


问题是,当我删除EA时,终端会永久挂起。我需要了解它发生在哪个地方。

 
fxsaber:

我在调试模式 下运行EA。我需要在我手动卸载EA的确切时刻建立一个断点。我如何做到这一点?

我写了以下代码。

int OnInit()
  {
     if(IsStopped()) DeInitEA(1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if(IsStopped()) DeInitEA(2);

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(IsStopped()) DeInitEA(3);
  }
//+------------------------------------------------------------------+

void DeInitEA(const int callfunc)
{
   string s = "";
   switch (callfunc)
   {
      case 1: s = "OnInit"; break;
      case 2: s = "OnDeinit"; break;
      case 3: s = "OnTick"; break;
   }
   Print(s + " , остановка работы советника");
   
}

在字符串s=""上设置断点;--顺利返回到ME,出现了调试窗口,嗯,一切如常。

 

他们先是削减了统计数字,现在又把它们完全干掉了?


 
Igor Makanu:

写了以下代码。

在字符串s=""上设置断点;--顺利返回到ME,出现了调试窗口,嗯,一切如常。

采用这种方法,我们必须在每个运算符之后设置一个断点检查。它不适合。

 
TheXpert:

他们先是削减了统计数字,现在又把它们完全干掉了?

它的工作

 
fxsaber:

用这种方法,你必须在每个操作者之后放一个停止检查。不适合。

你不需要在每个语句之后做,使用半数除法检查--在代码的开头、结尾和中间,然后当你找到正确的半数时,再重复一次,把代码分成两部分,我认为这很快速

 
Igor Makanu:

在每条语句之后没有必要,放一个半分法检查--在代码的开头、结尾和中间,然后找到代码的右半部分,再重复将代码分成两部分,我认为这是快的。

这是个大项目。每次重现挂机的情况大约需要30秒。

 
fxsaber:

我在调试模式 下运行EA。我需要在我手动卸载EA的确切时刻建立一个断点。我如何做到这一点?


问题是,当我删除EA时,终端会永久挂起。我需要了解它发生的地方。

它是完全修复了还是需要一段时间来卸载EA?如果是后者,请寻找一个循环。