При создании нового хендла из параметров, получаем -1, то есть не создаются хендлы. Что то не так с параметрами наверное
Почему так
handles[s]=IndicatorCreate(NULL,PERIOD_CURRENT,IND_RSI,ind[i].countParam,ind[i].param);
а не так
handles[s]=IndicatorCreate(NULL,PERIOD_CURRENT,ind[i].type,ind[i].countParam,ind[i].param);
?
У Вас, кстати, вот тут ошибка в коде:
if(ArrayResize(ind,s+1,total_Indicators)>0) ind[s].names = ChartIndicatorName(chart_ID,i,j); ind[s].handle = ChartIndicatorGet(chart_ID,i,ChartIndicatorName(chart_ID,i,j)); ind[s].countParam = IndicatorParameters(ind[s].handle,ind[s].type,ind[s].param);
Надо так:
if(ArrayResize(ind,s+1,total_Indicators)>0) { ind[s].names = ChartIndicatorName(chart_ID,i,j); ind[s].handle = ChartIndicatorGet(chart_ID,i,ChartIndicatorName(chart_ID,i,j)); ind[s].countParam = IndicatorParameters(ind[s].handle,ind[s].type,ind[s].param); }
Вообще, старайтесь всегда использовать {} в опереторах if-else
В очередной раз в ступоре. Не понимаю, что не так. Ни справка ни форум не дают ответов.
Кто понимает как работает удаление и загрузка индикаторов на график?
Создаем массив структур для хранения данных о индикаторах на графике.
И массив для хранения хендлов.Заполняем структуру. В цикле проходим по окнам, в окнах проходим по индикаторам. Если индикатор не тот, который мы сейчас загружаем, то в массив структур добавляем его имя, хендл, количество параметров, заполняем массив MqlParam с помощью функции IndicatorParameters(). И сразу удаляем индикатор с графика
Структура должна содержать столько элементов, сколько индикаторов было на графике. Проходим по этим элементам и по параметрам индикатора создаем его хендл
Пробуем загрузить обратно на график индикаторы
Получаем ошибку
удаление индикатора с графика никак не работает
можно только выключить
если из OnInit выйти так:
if(ЕслиИндикаторНеНадо==true)return(INIT_PARAMETERS_INCORRECT);
else if(ЕслиИндикаторНадо==true)return(INIT_SUCCEEDED);удаление индикатора с графика никак не работает
можно только выключить
если из OnInit выйти так:
if(ЕслиИндикаторНеНадо==true)return(INIT_PARAMETERS_INCORRECT);
else if(ЕслиИндикаторНадо==true)return(INIT_SUCCEEDED);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В очередной раз в ступоре. Не понимаю, что не так. Ни справка ни форум не дают ответов.
Кто понимает как работает удаление и загрузка индикаторов на график?
Создаем массив структур для хранения данных о индикаторах на графике.
И массив для хранения хендлов.int handles[];
Заполняем структуру. В цикле проходим по окнам, в окнах проходим по индикаторам. Если индикатор не тот, который мы сейчас загружаем, то в массив структур добавляем его имя, хендл, количество параметров, заполняем массив MqlParam с помощью функции IndicatorParameters(). И сразу удаляем индикатор с графика
Структура должна содержать столько элементов, сколько индикаторов было на графике. Проходим по этим элементам и по параметрам индикатора создаем его хендл
Пробуем загрузить обратно на график индикаторы
Получаем ошибку