Скачать MetaTrader 5

Как удалить индикатор из памяти при его удалении с чарта?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
o_o
Модератор
24105
o_o  
вобщем сабж.
Andrej Nikitin
15921
Andrej Nikitin  
sergeev:

вобщем сабж.
 int HI1=iMACD(symbol,period, macd_fast_per,macd_slow_per,macd_signal_per,macd_applied_price);
 if(HI1==-1) { Print("ERROR не удалось загрузить индикатор!");  return(false); }
 string sI1="";
 if( ChartIndicatorAdd(0,1,HI1) ) sI1=ChartIndicatorName(0,1,  ChartIndicatorsTotal(0,1)-1);
 Print("Added Indicator <",sI1,">");
 
 //...
 
 if(sI1!="")ChartIndicatorDelete(0,1, sI1);  // удаление индикатора из окна графика 
 IndicatorRelease(HI1);                      // освобождение хэндла индикатора

o_o
Модератор
24105
o_o  

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

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

ситуация такова - в индикаторе есть таймер, который выполняет некоторый расчет. При удалении индикатора с чарта - продолжаю видеть поступающую из таймера инфу в журнал.

То есть индюк продолжает загружать процессор своими функциями, хотя "как бы" уже не должен. Я понимаю, что аппеляция может быть к справке к пункту того же IndicatorRelease:
Удаление хендла производится сразу, удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет).

Но вижу, что сидит индикатор в памяти и по 20 секунд.

Как выполнить полное удаление и сразу?

Justinas Shimkus
179
Justinas Shimkus  

Столкнулся с подобной проблемой. В моем случае скрипт перебирает различные варианты индикатора (пробегает по наборам параметров индикатора), IndicatorRelease присутствует в конце каждой итерации. Оперативная память все время работы на одном уровне, но скорость расчета со временем падает (в разы) и в один прекрасный момент индикатор из комплекта терминала выкидывает invalid ex5 file (12) и работа прекращается. 12 строчка в индикаторе - это пустая строчка.

И вопрос остается -  Как выполнить полное удаление и сразу ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий