新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1317

 

问候大家!提前感谢大家!

这种类型的错误。

在数组Bar_data_D1 [][6] 中,有一行Low_D1_Level,我们正在寻找相对于它新水平Min_D_L evel。

//--全局变量

double_D1_Level。

double Bar_data_D1 [][6]; //将指定图表的条形数据复制到数组中,并返回复制的D1条形的数量。

数组的第一维包含条数。第二个维度有6个元素的值。

0 - 时间,
1 - 开盘价,
2 - 最低价(低),
3 - 最高价(高),
4 - 收盘价(收),
5 - 成交量。

//+------------------------------------------------------------------+
//|                        Функция Level 
//+------------------------------------------------------------------+
void Level() 
ArrayCopyRates(Bar_data_D1,_Symbol,PERIOD_D1); // Копирует в массив данные баров указанного графика и возвращает 
Low_D1_Level   = iLow (_Symbol,PERIOD_D1,1);   // Возвращает значение минимальной цены бара  D1
//--- Min_D_Leve  
 for(int i = 1; 0 <= Bar_data_D1 [i][2] ;i++)
    {
     Print(" i = ",i," Bar_data_D1 [i][2] = ",Bar_data_D1 [i][2]);
     if( Bar_data_D1 [i][2] < Low_D1_Level)
       {
        Min_D_Level = Bar_data_D1 [i][2];break;
       }
    } 
//---

打印 打印

2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 998 Bar_data_D1 [i][2] = 1.3364
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 999 Bar_data_D1 [i][2] = 1.33562
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 1000 Bar_data_D1 [i][2] = 1.33532
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 1001 Bar_data_D1 [i][2] = 1.33705
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1: array out of range in '_Test.mq4' (451,34)
2020.12.09 15:19:29.110 2016.12.16 00:00:00  Testing pass stopped due to a critical error in the EA
2020.12.09 15:19:29.110 EURUSD,H1: 136637 tick events (25 bars, 63904705 bar states) processed in 0:00:17.844 (total time 0:00:24.547)
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
 
Aliaksei Karalkou:
请帮助。我已经尝试了所有方法,但仍然得到

错误130

对我来说一切正常,没有错误

 

策略测试器中,从2016.12.15开始运行。

2016.12.16
 
MakarFX:

对我来说,它是有效的,没有错误

运行优化程序。优化过程被一个CriticalError消息打断了

 
Aliaksei Karalkou:
请帮助。我已经尝试了所有方法,但仍然得到

错误130

摘自概况介绍

 
Dark Kchlyzov:

我不明白,这个循环在哪里结束?

for(int i = 1; 0 <= Bar_data_D1 [i][2] ;i++)

它应该是数组的 最后一个元素。不是吗?

然后做一个不平等的检查

for(int i = 0; i<ArrayRange(Bar_data_D1,0) ;i++)
   {
   if(Bar_data_D1 [i][2]>=0)
      {
      
      }
   }
那么就不会有走出阵列的 意外了。
 
Aliaksei Karalkou:

开始优化。优化过程被CriticalError消息打断。

没有错误,从2016年12月1日到今天的优化情况


 

如果你想去https://www.mql5.com/ru/forum/357558

一应俱全

Array out of range in Нужна Помощь
Array out of range in Нужна Помощь
  • 2020.12.09
  • www.mql5.com
Приветствую Всех ! Заранее всем спасибо...
 
Dark Kchlyzov:


更新了我的帖子
 
Aleksei Stepanenko:

我不明白,这个循环在哪里结束?

它应该是数组的 最后一个元素。不是吗?

然后做一个不平等的检查。

那么在阵列 之外就不会有任何惊喜了
Aleksei Stepanenko:

对不起,这个循环在哪里结束?

它应该是数组的 最后一个元素。不是吗?

然后做一个不平等的检查。

那么就不会有走出阵列 的意外了。

好的,我知道了,我现在就去试试。

谢谢你!

原因: