iCustom пожирает оперативную память

 

Добрый день, помогите с такой проблемой: Есть советник где в void OnTick() прописан вызов параметра индикатора:

1_H=iCustom(NULL,per,"Рога и копыта",1,2,10,0,0);

1_L=iCustom(NULL,per,"Рога и копыта",1,3,10,0,0);

2_H=iCustom(NULL,0,"Рога и копыта_2",per2,1,2,10,0,0);

2_L=iCustom(NULL,0,"Рога и копыта_2",per2,1,3,10,0,0);

Но сталкиваюсь с такой проблемой что по истечении времени работы советника, терминал жрет по нарастающей оперативную память, доходит даже до 1,5 Гб. Как только удаляю советник память сразу освобождается и доходит до ~70 Мб. В чем тут дело?

 
Вот как можно ответить без кода? Может там циклы в цикле насколько раз перебирают многомерные массивы
 
Evgeniy Zhdan:
Вот как можно ответить без кода? Может там циклы в цикле насколько раз перебирают многомерные массивы

В коде только этот iCustom и пару if.

 
mt1002:

Добрый день, помогите с такой проблемой: Есть советник где в void OnTick() прописан вызов параметра индикатора:

1_H=iCustom(NULL,per,"Рога и копыта",1,2,10,0,0);

1_L=iCustom(NULL,per,"Рога и копыта",1,3,10,0,0);

2_H=iCustom(NULL,0,"Рога и копыта_2",per2,1,2,10,0,0);

2_L=iCustom(NULL,0,"Рога и копыта_2",per2,1,3,10,0,0);

Но сталкиваюсь с такой проблемой что по истечении времени работы советника, терминал жрет по нарастающей оперативную память, доходит даже до 1,5 Гб. Как только удаляю советник память сразу освобождается и доходит до ~70 Мб. В чем тут дело?

Может дело в вызываемом индикаторе.

 
Скорее всего ошибка в параметрах и он бесконечно загружается в память.
 
mt1002:

В коде только этот iCustom и пару if.

Спрашивали про код индикатора, а не советника.

 
если это пятёрка, то вы на каждом тике создаёте новый хэндл, т.е. очередную копию индикатора. делайте это в OnInit().
 
Igor Zakharov:
если это пятёрка, то вы на каждом тике создаёте новый хэндл, т.е. очередную копию индикатора. делайте это в OnInit().

В MT4 делаю.

 
mt1002:

В коде только этот iCustom и пару if.

Значит дело в индикаторе. Может, на каждом тике делает перерасчет всех баров. Надо использовать IndicatorCounted()

 
mt1002:

В MT4 делаю.

Покажите скрин "Входных параметров" индикаторов

Вот это


 
mt1002:

Но сталкиваюсь с такой проблемой что по истечении времени работы советника, терминал жрет по нарастающей оперативную память, доходит даже до 1,5 Гб. Как только удаляю советник память сразу освобождается и доходит до ~70 Мб. В чем тут дело?

Утечка памяти. Без кода советника и индикатора диагноз не поставить.

Причина обращения: