Заполнение массива[1000]

 

В советнике распакован индикатор,
он имеет массивы:

double a[1000],  b[1000] ,  c[1000] , d[1000];

ArrayInitialize(a,1000);
ArrayInitialize(b,1000);
ArrayInitialize(c,1000);
ArrayInitialize(d,1000);

В таком оформлении ошибок нет выхода за пределы массива, но очень медленное тестирование.

Как избавиться от изначально заполненных массивов и чтобы не было выхода за пределы массива?
double a[],  b[] ,  c[] , d[];

 

1. Писать индикаторы нормально.

2. Из советника вызывать их через iCustoim()

 
Dmitry Fedoseev #:

1. Писать индикаторы нормально.
2. Из советника вызывать их череp iCustoim()

Если нет вариантов решения вопроса, то зачем вообще что-то писать в таком стиле?
Нечем помочь, проходите мимо в этом случае.
Есть задача которую надо решить, а такие варианты как iCustom можно не предлагать.

 
forex2030 #:

Если нет вариантов решения вопроса, то зачем вообще что-то писать в таком стиле?
Нечем помочь, проходите мимо в этом случае.
Есть задача которую надо решить, а такие варианты как iCustom можно не предлагать.

Нормальный ответ, не заполнять каждый раз массив, а дописывать. Это сложнее в коде, сложно для понимания, как в массив последний убрать, передвинуть и дописать. Но направление правильное.

 
forex2030 #:

Если нет вариантов решения вопроса, то зачем вообще что-то писать в таком стиле?
Нечем помочь, проходите мимо в этом случае.
Есть задача которую надо решить, а такие варианты как iCustom можно не предлагать.

Решение вопроса - писать нормальные индикаторы и вызывать их из эксперта через iCustom()... Если вам с первого раза не удалось прочитать...

Без iCustom() - в эксперте отсутствуют средства для оптимального расчета того, для чего специально предназначены индикаторы. 

В эксперте нет функции IndicatorCounted() или чего-то подобного. Поэтому любые попытки рассчитать индикатор в эксперте - это кустарный самодел.

 

Помощники))
Если бы это задача была бы с прикрепленным гонораром, то решение быстро бы нашлось!
Ладно, тема закрыта, сам разберусь, как обычно((

 
forex2030 #:

Помощники))
Если бы это задача была бы с прикрепленным гонораром, то решение быстро бы нашлось!
Ладно, тема закрыта, сам разберусь, как обычно((

Так будет гонорар или нет :))?

 
Aliaksandr Hryshyn #:

Так будет гонорар или нет :))?

Для меня обязательно будет;)

 
forex2030 #:

Помощники))
Если бы это задача была бы с прикрепленным гонораром, то решение быстро бы нашлось!
Ладно, тема закрыта, сам разберусь, как обычно((

Не волнуйтесь, товарищ. Разберём поведение этих товарищей на собрании комитета разбора поведения товарищей. Накажем всех провинившихся.
 
forex2030:

В советнике распакован индикатор,
он имеет массивы:

double a[1000],  b[1000] ,  c[1000] , d[1000];

ArrayInitialize(a,1000);
ArrayInitialize(b,1000);
ArrayInitialize(c,1000);
ArrayInitialize(d,1000);

В таком оформлении ошибок нет выхода за пределы массива, но очень медленное тестирование.

Как избавиться от изначально заполненных массивов и чтобы не было выхода за пределы массива?
double a[],  b[] ,  c[] , d[];

https://www.mql5.com/ru/articles/4602

Как перенести расчетную часть любого индикатора в код эксперта
Как перенести расчетную часть любого индикатора в код эксперта
  • www.mql5.com
Причины для переноса кода индикатора в советник могут быть различными. Но как оценить плюсы и минусы такого подхода? В данной статье предлагается технология переноса кода индикатора в советник. Проведены несколько экспериментов по оценке скорости работы советника.
 

Тут сначала надо то, что переносишь, привести в нормальное состояние.