Помогите с проблемой : array out of range - страница 2

 
Aleksei Stepanenko:

Когда r равно 0, невозможно посмотреть значение предыдущего элемента, поскольку это и так самый первый элемент. В этот момент r-1 не существует. Нужно менять логику.

Например так:

Я пришлю вам весь код полностью. Пожалуйста, проверьте. Я новичок в этой области. Ошибка продолжает появляться и в других строках.
Файлы:
GH_strategy.mq4  24 kb
 

Ошибки Ваши исправил, вроде какие-то стрелочки рисует.

Файлы:
GH_strategy.mq4  23 kb
 
Aleksei Stepanenko:

Ошибки Ваши исправил, вроде какие-то стрелочки рисует.

Здесь есть 2 индикатора. Это должно было выглядеть следующим образом. Я открыл отправленный вами код. Но это не сработало. Я пришлю тебе код еще раз. Обратите внимание именно на это. Пожалуйста, уделите мне немного времени.. Я не мог решить уже 1 неделю.
Файлы:
 

Второй индикатор рисует стрелки, а логика первого мне не понятна, и времени разбираться тоже не особо есть. Сравните Вашу первую часть с оригиналом, возможно там есть расхождения в коде.

Вот последний версия:

Файлы:
GH_strategy.mq4  23 kb
 
Aleksei Stepanenko:

Второй индикатор рисует стрелки, а логика первого мне не понятна, и времени разбираться тоже не особо есть. Сравните Вашу первую часть с оригиналом, возможно там есть расхождения в коде.

Вот последний версия:

да, спасибо. второй индикатор работатет.
А почему вы удалили эту строку? Он не нужен?

  limit2 = Bars - counted_bars2;
      for (m = 0; m <= limit2; m++) {
         n = m;         u = 0;         k = 0;
         //for (n = m; n <= m + 9; n++) k += MathAbs(High[n] - Low[n]);
         u = k / 10.0;
 
я сделал i=limit-1, тогда r будет всегда больше нуля
 
Aleksei Stepanenko:

Второй индикатор рисует стрелки, а логика первого мне не понятна, и времени разбираться тоже не особо есть. Сравните Вашу первую часть с оригиналом, возможно там есть расхождения в коде.

Вот последний версия:

Уважаемый Алексей Степаненко. Спасибо за помощь. Первый индикатор работает на старом языке MQL4, но не работает на новом. Как это преодолеть? Важна ли для этого логика индикатора?
 
ZARA:
А почему вы удалили эту строку? Он не нужен?

Это не удалял. Раскомментируйте, это нужно:

for (n = m; n <= m + 9; n++) k += MathAbs(High[n] - Low[n]);
 

Для MQL5 нужно переписывать код. Там есть существенные различия.

Если планируете изучать язык, начинайте сразу с MQL5.

 
Aleksei Stepanenko:
я сделал i=limit-1, тогда r будет всегда больше нуля
Уважаемый Алексей Степаненко. И мы наконец сделали это. Первый индикатор тоже сработал. С вашей помощью мне удалось добиться такого результата. Я вам очень благодарна. Желаю удачи и успехов. Большое вам спасибо за то, что уделили мне время.
Файлы:
Screenshot_2.jpg  171 kb
Причина обращения: