Массивы, память и проблемы со всем этим.

 

Приветствую всех.


Написал скрипт который проводит анализ котировок начиная с минутных котировок по всем оскрытым парам которые были найдены в обзоре рынка. обработка идет по алгоритму все путем, но есть одно маленькое но... постоянно увеличивается своп файл и загрузка памяти. на компе 2Гб стоит, дойдя до предела скрипт отключается в логах значится AUDCAD,H1: uninit reason 0.

К истории валютных пар обращаюсь через iOpen, iHigh, iLow, iClose, iVolume, iTime к соответствующей паре.


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

 

Советник с циклом по всем символам создает файл для очередного символа с параметрами работы скрипта, горячими клавишами запускает скрипт, скрипт читает файл с параметрами (символ на котором надо работать), работает, по завершению работы сохраняет результаты работы в файл и в другой файл пишет, что завершил свою работу. Эксперт после запуска скрипта следит за сообщением от скрипта (в файле), как прочитает о завершении работы скрипта переходит к следующему символу.

 
Если только МТ4 перезагружать...
 
Zhunko писал(а) >>
Если только МТ4 перезагружать...

Возможно, и что только так. Но пока предполагаю, что обращение к iOpen, iHigh, iLow, iClose, iVolume, iTime выполняется также как и к пользовательским индикаторам, т.е. по завершению работы скрипта память будет освобождаться.

 
А если работать напрямую с файлами HST. Впринципе переделать то не сложно, но стоит ли это усилий. Мне просто интересны варианты очистки памяти, кто как решал. По сути загруженная история в память после обработки является лишней и не используемой нигде. есть проги которые память чистют и дефрагментируют убирая лишние процессы. Может такой путь. Вообще хотелос бы реализации в следующем билде или в MT5 уж то что-бы не хранилась инфа в памяти если она не используется больше нигде. нужно проанализировать более 30 валютных пар и все таймфреймы, а тут такое блин ограничение...
 

Можно посмотреть в периодконверторе как работать с файлами hst, только новые данные в них дописываются после завршения работы терминала. Надо будет подгрузить все данные, перезапустить терминал и вперед.

 

Заметил, что вся история "цепляется" к МТ4. Её сбросить из программ МТ4 не получается.

Это так диспетчер памяти у МТ4 сделан.

 
Если загрузить график любой валюты, загрузка идет в память, если график выключить память от этих данных освобождается дописав в базу новые котировки. странно что тоже самое не происходит при обращении к истории через вышеописанные функции. Ради чего она там остаётся висеть непонятно.
Причина обращения: