Ошибка 4025 (нет памяти). Что это такое и как с этим бороться? Может кто подскажет?

 

Обычно работая с индикаторами через iCustom или напрямую, например iMA, при вызове индикатора происходит полный расчет по всем барам, а берется всего 1 значение. При следующем запуске опять все рассчитывается заново и берется другое значение. При тестировании на м1 на большом промежутке производится слишком много лишних вычислений. Я хочу эти индикаторы записать в массив и добавлять по 1 значению на новом баре, а значения, которые мне нужны брать не с индикаторов, а с этих массивов. В справке написано "Общее число элементов в массиве не может превышать 2'147'483'647". Это в одном массиве или во всех вместе взятых??? Если в одном, то у меня до этого размера еще много должно остаться места. Да даже во всех вместе взятых такого количества набрать сложно, даже если 7млн баров.

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

 
Dmitry Sumsky:

Обычно работая с индикаторами через iCustom или напрямую, например iMA, при вызове индикатора происходит полный расчет по всем барам, а берется всего 1 значение. При следующем запуске опять все рассчитывается заново и берется другое значение. При тестировании на м1 на большом промежутке производится слишком много лишних вычислений. Я хочу эти индикаторы записать в массив и добавлять по 1 значению на новом баре, а значения, которые мне нужны брать не с индикаторов, а с этих массивов. В справке написано "Общее число элементов в массиве не может превышать 2'147'483'647". Это в одном массиве или во всех вместе взятых??? Если в одном, то у меня до этого размера еще много должно остаться места. Да даже во всех вместе взятых такого количества набрать сложно, даже если 7млн баров.

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

У вас MT4? На малых интервалах тестирования советника памяти хватает? Если много индикаторов iCustom, то могут быть проблемы - попробуйте их объединить и уменьшить глубину расчета на истории.
 
-Aleks-:
У вас MT4? На малых интервалах тестирования советника памяти хватает? Если много индикаторов iCustom, то могут быть проблемы - попробуйте их объединить и уменьшить глубину расчета на истории.
Да МТ4. Но мне надо решить проблему с ArrayResize. Выдается ошибка 4025, и размер не задается. Вернее очередной массив (у меня их несколько). Это в компьютере не хватает памяти или в терминале?
 

т.е. я хочу вместо использования индикаторов сделать внутренний массив с данными внутри советника и прописать код индикатора в самом советнике

Просто не пойму - это недостаточная память в компьютере или это что-то не так работает? Пробовал запускать в тестере, так там всего 1000 баров, а тест срывается без объяснения причин... 

Вернее ошибка та же, но не от терминала а через GetLastError...

 
Dmitry Sumsky:

Обычно работая с индикаторами через iCustom или напрямую, например iMA, при вызове индикатора происходит полный расчет по всем барам, а берется всего 1 значение. При следующем запуске опять все рассчитывается заново и берется другое значение. При тестировании на м1 на большом промежутке производится слишком много лишних вычислений. Я хочу эти индикаторы записать в массив и добавлять по 1 значению на новом баре, а значения, которые мне нужны брать не с индикаторов, а с этих массивов. В справке написано "Общее число элементов в массиве не может превышать 2'147'483'647". Это в одном массиве или во всех вместе взятых??? Если в одном, то у меня до этого размера еще много должно остаться места. Да даже во всех вместе взятых такого количества набрать сложно, даже если 7млн баров.

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

При каком следующем запуске? 

 
Dmitry Sumsky:

т.е. я хочу вместо использования индикаторов сделать внутренний массив с данными внутри советника и прописать код индикатора в самом советнике

Просто не пойму - это недостаточная память в компьютере или это что-то не так работает? Пробовал запускать в тестере, так там всего 1000 баров, а тест срывается без объяснения причин... 

Вернее ошибка та же, но не от терминала а через GetLastError...

Вы код приведите, со слов не ясно
 
Dmitry Sumsky:
Да МТ4. Но мне надо решить проблему с ArrayResize. Выдается ошибка 4025, и размер не задается. Вернее очередной массив (у меня их несколько). Это в компьютере не хватает памяти или в терминале?
Напишите точную ошибку из лога и кусочек кода, куда ссылается терминал, если ссылается.
 
Dmitry Sumsky:

т.е. я хочу вместо использования индикаторов сделать внутренний массив с данными внутри советника и прописать код индикатора в самом советнике

Просто не пойму - это недостаточная память в компьютере или это что-то не так работает? Пробовал запускать в тестере, так там всего 1000 баров, а тест срывается без объяснения причин... 

Вернее ошибка та же, но не от терминала а через GetLastError...

А зачем тут вообще ArrayResize ??? вам где-то необходимы показания за __всю__ историю?

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

 
Dmitry Sumsky:

Обычно работая с индикаторами через iCustom или напрямую, например iMA, при вызове индикатора происходит полный расчет по всем барам, а берется всего 1 значение. При следующем запуске опять все рассчитывается заново и берется другое значение. При тестировании на м1 на большом промежутке производится слишком много лишних вычислений. Я хочу эти индикаторы записать в массив и добавлять по 1 значению на новом баре, а значения, которые мне нужны брать не с индикаторов, а с этих массивов. В справке написано "Общее число элементов в массиве не может превышать 2'147'483'647". Это в одном массиве или во всех вместе взятых??? Если в одном, то у меня до этого размера еще много должно остаться места. Да даже во всех вместе взятых такого количества набрать сложно, даже если 7млн баров.

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

Вам для тестирования нужен полностью весь индикатор или несколько его последних рассчитанных баров?

Рекомендую уменьшить количество рассчитываемых баров до 2-10, все равно формула расчета одна и та же - что в начале истории, что в конце.

Если же в расчете индикатора используется усреднение цены, то нужно прибавить количество баров, которые нужны для усредняющего расчета.