MT5终端今天更新,"优化 "窗口在测试过程中没有显示出来 - 页 22

 
Aleksey Vyazmikin:

重点是INIT_PARAMETERS_INCORRECT经常被用来通过排除不符合逻辑/不需要的值来缩小搜索范围,这在使用完整的枚举时大大加快了优化。如果没有INIT_PARAMETERS_INCORRECT,那么遗传学就会遇到不必要的变体,并对其进行摆弄,所以不排除变量值不是一个选项。所以这就是我想问的,作为一个专业人士,你建议如何解决这个问题,而不需要太多努力。手动列举所有正确的变量,对于没有间隙的列举,并在知道的情况下排除INIT_PARAMETERS_INCORRECT值是不可能的 - 非常长。使用智能计数器并不适合所有人,它还可能损害遗传学。

那么剩下的是什么呢?在1天内传递所有的参数,并将它们的正确值写入代码,从而为遗传学选择它们?

请看我上面的解释。

你对世界的描绘与遗传算法不相容。通过否认杀死四分之一的人口 - 遗传学仍将生存,即使是在损失的情况下。杀死98%的人口--这就是进化的终点。无论你的愿望或偏好的操作方式 如何。

请阅读我上面链接的材料。

我的启蒙教育结束了,对不起。INIT_PARAMETERS_INCORRECT主题的延续被关闭,所有评论将被删除。

[删除]  
void collectNecessaryDataOnTick()
{
   //--- считать последние цены на тике
   SymbolInfoTick(Symbol(),last_tick);
   
   ArrayFree(buf_CCI);
   
   if(CopyBuffer(handle_CCI,0,0,bars_4_tr_cur,buf_CCI) < 0 )               // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
   {                                                                       // если есть ошибки
      Comment("Не удалось скопировать данные из индикаторного буфера");    // то выводим сообщение
      return;                                                              // и выходим из функции
   }
   bars_4_tr_cur  = 10;
   
   return;
}

在今天的更新之前,一切都在工作。现在有一个错误信息

 
Сергей Таболин:

在今天的更新之前,一切都在工作。现在有一个错误信息

GetLastError()返回什么值?

在调用CopyBuffer之前,变量bar_4_tr_cur的值是多少?

在时间序列中,handle_CCI指标是按多少个条形计算的?

[删除]  
Slava:

GetLastError()返回什么值?

在调用CopyBuffer之前,变量bar_4_tr_cur的值是多少?

计算handle_CCI指标的时间序列有多少条?

变量=33

М15

   ResetLastError();
   if(CopyBuffer(handle_CCI,0,0,33,buf_CCI) < 0 )               // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
   {                                                                       // если есть ошибки
      Comment("Не удалось скопировать данные из индикаторного буфера");    // то выводим сообщение об ошибке
      Print(GetLastError());
      return;                                                              // и выходим из функции
   }

4003 -调用系统函数时出现错误的参数

 
Сергей Таболин:

变量=33

М15

4003 -调用系统函数时出现错误的参数

下一个问题。我的理解是否正确,你是在从CCI指标中获取数据?

请告诉我你是用什么参数创建这个指标的。

[删除]  
Slava:

下一个问题。我的理解是否正确,你是在从CCI指标中获取数据?

请告诉我你是用什么参数创建这个指标的。

//--- активируем хендл индикатора CCI
   handle_CCI = iCCI(Symbol(),0,14,PRICE_TYPICAL);
   if(handle_CCI==INVALID_HANDLE)                        // проверяем наличие хендла индикатора
   {
      Comment("Не удалось получить хендл индикатора");   // если хендл не получен, то выводим сообщение об ошибке
      return(-1);                                        // завершаем работу с ошибкой
   }
   ArraySetAsSeries(buf_CCI,true);                       // устанавливаем индексацию для массива buf_CCI как в таймсерии
 
Сергей Таболин:

变量=33

М15

4003 -调用系统函数时参数无效

正是33岁?这是一个使用直接值33的直接调用,返回错误4003吗?

再次检查

[删除]  
Slava:

正是33岁?是使用直接值33的给定的直接调用,返回错误4003吗?

再次检查

int OnInit()
{
............
//--- количество баров для определения трендов CCI
   bars_4_tr_cur  = 33;
............
//+--------
   return(INIT_SUCCEEDED);
}

再一次。在更新之前,该EA在3家经纪公司的模拟账户上运行良好。

我甚至试图从早期的版本中替换指标。它仍然在嚷嚷。

[删除]  

我已经搞清楚了。

该错误是在读取保存的参数文件时发生的。

它是。

      if(filehandle != INVALID_HANDLE)

换了之后,它起作用了。

      if(FileIsExist(filename,FILE_COMMON) && filehandle != INVALID_HANDLE)
 
Сергей Таболин:

让我重复一遍。在更新之前,该EA在3家经纪公司的模拟账户上运行良好。

我甚至试图从早期的版本中替换指标。它说脏话,仅此而已。

请运行这个EA。

我特意将其设置为从iCCI指标 的0至33条中循环接收数据,而不是每一个刻度。

附加的文件:
iCCI.mq5  11 kb