В индикаторе сделать внешнюю переменную типа CalledFromEA=false;
При вызове из советника ставить true.
В индикаторе сделать внешнюю переменную типа CalledFromEA=false;
При вызове из советника ставить true.
Я пока сделал параметр в индикаторе по типу вашей идеи, задаю его значение при вызове через iCustom. Думал, может, есть какие-то способы узнать это без внешних указаний.
перебрать индикаторы чарта, и если твоего там нет, значит он вызван через iCustom
перебрать индикаторы чарта, и если твоего там нет, значит он вызван через iCustom
Ок, если нет, то понятно - через iCustom. А если есть?
Во вторых, Dmitry Fedoseev верно заметил, что может быть открыт еще один чарт с таким же символом и этим индикатором.
Проблема вообще вот в чем. Индикатор выводит на экран информацию в Label. И при вызове через iCustom этот лейбл также создается и накладывается на существующий, в результате на экране ерунда. Сейчас сделал входной параметр для того, чтобы индикатор знал, что он под iCustom и не создавал лейблы.
Ок, если нет, то понятно - через iCustom. А если есть?
Во вторых, Dmitry Fedoseev верно заметил, что может быть открыт еще один чарт с таким же символом и этим индикатором.
Проблема вообще вот в чем. Индикатор выводит на экран информацию в Label. И при вызове через iCustom этот лейбл также создается и накладывается на существующий, в результате на экране ерунда. Сейчас сделал входной параметр для того, чтобы индикатор знал, что он под iCustom и не создавал лейблы.
когда-то делал именно так, хотя это значительно муторнее чем просто передать флажок "рисовать/нерисовать".
и кстати, без разницы сколько открыто чартов - по ChartIndicatorsTotal() и ChartIndicatorName() всё равно перебираешь только для конкретного чарта.
Alexey Volchanskiy:
...Проблема вообще вот в чем. Индикатор выводит на экран информацию в Label. И при вызове через iCustom этот лейбл также создается и накладывается на существующий, в результате на экране ерунда. Сейчас сделал входной параметр для того, чтобы индикатор знал, что он под iCustom и не создавал лейблы.
Алексей, имхо, это интересный вариант решения проблемы - контролировать источник вызова индикатора ради какой-то лейблы :-))
Скромное мнение такое. Индикатор при запуске на график делает проверку по имени всех объектов текущего чарта. Если попадается подобная лейбла, то удалять её или не создавать новую, а работать со старой...
Ок, если нет, то понятно - через iCustom. А если есть?
Во вторых, Dmitry Fedoseev верно заметил, что может быть открыт еще один чарт с таким же символом и этим индикатором.
Проблема вообще вот в чем. Индикатор выводит на экран информацию в Label. И при вызове через iCustom этот лейбл также создается и накладывается на существующий, в результате на экране ерунда. Сейчас сделал входной параметр для того, чтобы индикатор знал, что он под iCustom и не создавал лейблы.
если вызвать индикатор второй раз, то lable с таким-же именем не должен создаваться, не так-ли?
индикатор может и должен задавать (в меру)уникальные имена своим объектам. Именно для случая что если юзер загрузит два экземпляра, чтобы граф.элементы обоих были видны.
И конечно начинается свистопляска с дубликатами, iCustom и шаблонами(внезапно в туда сохраняться и объекты сделанные индикатором). Ещё и учитывая что при смене таймфрейма (по крайней мере) на некоторых билдах индикаторы при загрузке "двоились". То есть существует пачка нюансов которые без тщательного тестирования не выявляются.
индикатор может и должен задавать (в меру)уникальные имена своим объектам. Именно для случая что если юзер загрузит два экземпляра, чтобы граф.элементы обоих были видны.
И конечно начинается свистопляска с дубликатами, iCustom и шаблонами(внезапно в туда сохраняться и объекты сделанные индикатором). Ещё и учитывая что при смене таймфрейма (по крайней мере) на некоторых билдах индикаторы при загрузке "двоились". То есть существует пачка нюансов которые без тщательного тестирования не выявляются.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как определить внутри индикатора, работает ли он на графике или его вызывают через iCustom?
Конкретно сейчас нужно решение под MQL4, но если есть решение под пятерку, тоже пишите плз.