![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Странно. Где-то в хелпе читал, что если индикатор уже запущен, то копия не создается. М.б. чего не понял.
Наверное чего-то не понял. Я проверил всю эту гипотезу, сделал индикатор с двумя буферами, один заполняется из OnCalculate() другой из OnTimer(), скрипт, советник... из советника через iCustom() выводится в принт значение буфера заполняемого в OnCalculate() а из OnTimer() выводится пустое значение. При этом индикатор висит на графике на который кидаю скрипт или ставлю советник.
Вывод: при вызове индикатора посредством iCustom() событие OnTimer() в индикаторе не выполняется...
Возможно по этой причине в документации сказано
Функция OnTimer() вызывается при наступлении события Timer, которое генерируется системным таймером только для экспертов и индикаторов – использовать ее в скриптах нельзя.
и индикаторы никак не упомянуты...
Бывают, видимо, как полезные недокументированные фишки в mql так и недокументированные заморочки...
На чарте установлен индикатор. При этом он перерисовывается по событиям Timer, ChartEvent и Calculate.
Нужно скриптом считать текущие показатели его индикаторных буферов (INDICATOR_DATA), что видны по CTRL+D. Возможно ли это сделать в MT4?
Читается и пишется и DLL нафик не нужна
Ну, а пример где?
К сожалению, в этом случае
не поможет.
Индикатор где?
Почему это не поможет?
Подопытный:
Странно. Где-то в хелпе читал, что если индикатор уже запущен, то копия не создается. М.б. чего не понял.
Недавно выложил индикатор, там как раз выводится текстовая строка. И при вызове через iCustom строки индикатора на чарте и iCustom мешали друг другу, пришлось программно сделать только один вывод.
Может, копия кода и не создается в памяти, но перерасчет идет со своими параметрами
https://www.mql5.com/ru/code/14737/83151#!tab=code
Подопытный:
Недавно выложил индикатор, там как раз выводится текстовая строка. И при вызове через iCustom строки индикатора на чарте и iCustom мешали друг другу, пришлось программно сделать только один вывод.
Может, копия кода и не создается в памяти, но перерасчет идет со своими параметрамиКопия
https://www.mql5.com/ru/code/14737/83151#!tab=code
Копия кода не может не создаваться ,потому, что это - динамическая загрузка.
Голословное утверждение, или вы разработчик MQ? :))
Хотя, я и сам так думаю, по аналогии с DLL, где программный код в одном экземпляре, а для клиентов создаются экземпляры данных.
Короче, практический смысл в том, что если есть индюк на чарте, iCustom берет данные не с него, а с отдельно созданного экземпляра.