Здравствуйте уважаемые разработчики и трейдеры.
Обращаюсь к вам за помощью, так как перепробовал уже все, перелистал документацию кучу раз, изгуглил весь сайт mql5 в поисках решения, пробовал, экспериментировал, вообщем сделал все, что мог. Не выходит. Еще немного и мой мозг взорвется и будет на одного трейдера меньше..
Опишу задачу.
Есть эксперт. Он контролирует некоторое количество графических объектов на графике, таких как кнопки, добавляет/удаляет/изменяет им свойства (период, стиль, текст и др.). С этим все в порядке.
Далее на графике так же есть некоторое количество графиков Moving Average. Я могу открыть диалог управления свойствами этих графиков и изменить им свойства (стиль линий, на каких таямфреймах показывать и др.)
А надо из советника изменить эти свойства, то есть я хочу по клику на кнопку (обработка в советнике) скрывать/показывать эти графики. Обычно графическим объектам я меняю свойство OBJPROP_TIMEFRAMES на OBJ_NO_PERIODS/OBJ_ALL_PERIODS тем самым скрываю или показываю объект. Но я не нахожу как указать те же свойства индикатору.
Эти индикаторы были добавлены вручную, я пытался даже из эксперта добавлять индикаторы функцией ChartIndicatorAdd() но не могу их потом удалить (так я думал реализовать показать/скрыть) и даже если бы мог, все равно не могу изменить стиль линий, а это тоже надо.
Вообщем вот в таком я тупике и единственная надежда на вас, прошу помочь господа.
Интересует любое решение, чтоб кнопкой на графике можно было скрыть/показать индикатор или создать/удалить но тогда нужно указать им стиль.
Спасибо!
Почитай мою статью 20 торговых сигналов на MQL5 я в ней писал как из графического меню менять свойства индикатора
P.S Не въехал сначала что ты хочешь сделать с индикаторами. В общем что ты хочешь вроде не реально.
void ExpertRemove();
- www.mql5.com
Решил задачу немного другим способом.
Сделал индикатор и в его OnCalculate() проверяю статус кнопки и в зависимости от него меняю свойство PLOT_DRAW_TYPE (DRAW_NONE | DRAW_LINE) тем самым прячу/показываю линию индикатора.
В принципе задача решена, но все равно интересно как управлять свойствами из эксперта.
- www.mql5.com
Можно вместо проверки статуса кнопки посылать чартэвент, который отлавливать в индикаторе и выполнять необходимые действия.
хочу приподнять данную тему, ибо актуальна и по сей день. и без неё изобретаем костыли через чартевент,
1. Как индикатору выгрузить себя с чарта (по аналогии с ExpertRemove)?
Я решения вообще не нашел, кроме как тупого вызова исключения - обращение по некорректному указателю. Но это бред.
2. заявка в сд #98320 от 2011.05.08 по сабжу данной темы.
там отвечали что
Ждем с мая месяца. Проекты заморожены, клиенты домагаются... :)
Алексей, сделайте наконец-то рождественский подарок, хотя бы синицу в руке пощупать, бета версии этих функций.
очень важно для развития софта.
хочу приподнять данную тему, ибо актуальна и по сей день. и без неё изобретаем костыли через чартевент,
Антон, спасибо за предложенный вариант решения для первого вопроса.
int OnInit() { IndicatorSetString(INDICATOR_SHORTNAME,0,"TEST"); return(0); } int OnCalculate (const int rates_total, const int prev_calculated, const int begin, const double& price[]) { ChartIndicatorDelete(0,ChartWindowFind(),"TEST"); // удаление себя с чарта return(rates_total); }как говорится на безрыбье - и рак рыба.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте уважаемые разработчики и трейдеры.
Обращаюсь к вам за помощью, так как перепробовал уже все, перелистал документацию кучу раз, изгуглил весь сайт mql5 в поисках решения, пробовал, экспериментировал, вообщем сделал все, что мог. Не выходит. Еще немного и мой мозг взорвется и будет на одного трейдера меньше..
Опишу задачу.
Есть эксперт. Он контролирует некоторое количество графических объектов на графике, таких как кнопки, добавляет/удаляет/изменяет им свойства (период, стиль, текст и др.). С этим все в порядке.
Далее на графике так же есть некоторое количество графиков Moving Average. Я могу открыть диалог управления свойствами этих графиков и изменить им свойства (стиль линий, на каких таямфреймах показывать и др.)
А надо из советника изменить эти свойства, то есть я хочу по клику на кнопку (обработка в советнике) скрывать/показывать эти графики. Обычно графическим объектам я меняю свойство OBJPROP_TIMEFRAMES на OBJ_NO_PERIODS/OBJ_ALL_PERIODS тем самым скрываю или показываю объект. Но я не нахожу как указать те же свойства индикатору.
Эти индикаторы были добавлены вручную, я пытался даже из эксперта добавлять индикаторы функцией ChartIndicatorAdd() но не могу их потом удалить (так я думал реализовать показать/скрыть) и даже если бы мог, все равно не могу изменить стиль линий, а это тоже надо.
Вообщем вот в таком я тупике и единственная надежда на вас, прошу помочь господа.
Интересует любое решение, чтоб кнопкой на графике можно было скрыть/показать индикатор или создать/удалить но тогда нужно указать им стиль.
Спасибо!