вобщем сабж.
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); // освобождение хэндла индикатора
намек на IndicatorRelease не подходит, так как во-первых речь про обычный вынос индикатора на чарт, а не программный. Во-вторых индюк продолжает выполнять расчеты.
Вопрос больше адресован разработчикам.
ситуация такова - в индикаторе есть таймер, который выполняет некоторый расчет. При удалении индикатора с чарта - продолжаю видеть поступающую из таймера инфу в журнал.
То есть индюк продолжает загружать процессор своими функциями, хотя "как бы" уже не должен. Я понимаю, что аппеляция может быть к справке к пункту того же IndicatorRelease:
Удаление хендла производится сразу, удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет).
Но вижу, что сидит индикатор в памяти и по 20 секунд.
Как выполнить полное удаление и сразу?
Столкнулся с подобной проблемой. В моем случае скрипт перебирает различные варианты индикатора (пробегает по наборам параметров индикатора), IndicatorRelease присутствует в конце каждой итерации. Оперативная память все время работы на одном уровне, но скорость расчета со временем падает (в разы) и в один прекрасный момент индикатор из комплекта терминала выкидывает invalid ex5 file (12) и работа прекращается. 12 строчка в индикаторе - это пустая строчка.
И вопрос остается - Как выполнить полное удаление и сразу ?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования