Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
если пользователль открыл 2 (ДВА! или более) подокна с одним и тем-же индикатором с одинаковым "коротким именем", он-же юзер, ему можно..
то ChartWindowFind вернёт первый. А не тот из которого запущена.
И все метки отрисуются только на нём, а не на каждом :-(
В ините можно установить индикатору короткое имя, сделать ему какую-нибудь уникальную добавку.
В ините можно установить индикатору короткое имя, сделать ему какую-нибудь уникальную добавку.
string IndicatorName="Rates";
int wind=WindowFind(IndicatorName);
string IndicatorName="Rates";
int wind=WindowFind(IndicatorName);
Та-дам...в OnInit ChartWindowFind(indicatoirName) возвращает 0
в общем рецепт остался прежним:
- при первом вызове OnCalculate индикатору заведомо уникальное имя (от рандома или GetTickCount...)
- или сами или через ChartWindowFind ищем этот уник
- возвращаем имя обратно на читаемое
кстати так можно заодно выяснить запущен индикатор на чарте или через iCustom
Та-дам...в OnInit ChartWindowFind(indicatoirName) возвращает 0
в общем рецепт остался прежним:
- при первом вызове OnCalculate индикатору заведомо уникальное имя (от рандома или GetTickCount...)
- или сами или через ChartWindowFind ищем этот уник
- возвращаем имя обратно на читаемое
кстати так можно заодно выяснить запущен индикатор на чарте или через iCustom
вообще то WindowFind а не ChartWindowFind
Примечание
WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init().
Та-дам...в OnInit ChartWindowFind(indicatoirName) возвращает 0
...
Не надо в ините искать, надо в OnCalculate. В процессе работы номер может измениться. Например, был на графике какой-то индикатор в подконе, после него присоединили свой, а потом первый сняли.
Примечание
WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init().
ну это у кого как получается
если наименование индикатора тождественно совпадает, то корректно все работает
пример кода выцарапан из рабочего индюка
ну и верно пишет Дмитрий, не в инитедолжен-же быть более простой способ
Должен быть рабочий способ, остальное - не важно. Оформите код в виде mqh и забудьте про реализацию.
если пользователль открыл 2 (ДВА! или более) подокна с одним и тем-же индикатором с одинаковым "коротким именем", он-же юзер, ему можно..
то ChartWindowFind вернёт первый. А не тот из которого запущена.
И все метки отрисуются только на нём, а не на каждом :-(
Хоть 10 штук
ChartWindowFind(); // без передаваемых параметров
Вернет то окно в котором он находится!