Может быть причины в этом:
WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init(). ?
Без кода трудно сказать.
По количеству окон: справку узаем
Пример: Print("Количество окон = ", WindowsTotal()); |
Не в процессе инициализации. Функция WindowFind() на ходится в секции start()
Это бывает, когда несколько экземпляров индикатора в одном окне открывается.
Если все экземпляры индикатора открываются в разных окнах, то все работает нормально.
Мне кажется так:
Повторюсь: без кода мы играем в "угадай что я написал и помоги исправить"/ Игра чрезвычайно интересная но трудная на столько же.
Исходя из того что я вижу на картинке, представляю более простой вариант решения.
Создается 1 индикатор с 2-мя выводимыми на график буферами.
в 1 буфер забиваем 1 индикатор, во 2 соответственно второй. При равном порядке значений (?) все будет окей.
Но опять же я не уверен в правильности своего предложения так как нет кода.
В угадайку играть неохота.
Здесь нет буферов. Что выводится через буферы - зигзаги - рисуется нормально. А вот графические построения.
А код - пожалуйста. В приаттаченном файле. Весь комплект здесь: http://forex.kbpauk.ru/showflat.php/Cat/0/Number/194159/Main/114734/#Post194159
Вариант еще один.
Если надо вывести несколько комплектов в одном окне, то выводить их в первом окне под графиком.
Для этого делается поиск окна. Если окно не находится, то принудительно задается номер окна=1.
Этот вариант сделал. Он работает. Но как-то это не изящно.
Вариант еще один.
Если надо вывести несколько комплектов в одном окне, то выводить их в первом окне под графиком.
Для этого делается поиск окна. Если окно не находится, то принудительно задается номер окна=1.
Этот вариант сделал. Он работает. Но как-то это не изящно.
Не изящно что? Работает не так как должен?
Или способ решения проблемы Вам самому же не нравится?
Это не гибко. Только в одном окне можно вывести несколько экземпляров индикатора. В других окнах только по одному экземпляру.
Но это не все проблемы. Есть и другие. Другие проблемы будут решены, скорее всего, только в следующей версии - MQL5.
Не буду сейчас обсуждать другие проблемы. Они не смертельные. Хотя и доставляют неудобства.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Возникла следующая проблема.
Необходимо вывести в одном окне два экземпляра одного индикатора с разными настройками.
Названия индикаторов выстраиваются в линию в верхнем левом углу. Каждый индикатор делает свои графические построения. С помощью функции WindowFind производится поиск окна, в котором должны выполняться построения. Первый индикатор (его имя QTA EURGBP H4 | 0/12/8/3) выводит свои построения в окно. Второй индикатор (его имя QTA EURGBP D1 | 6/1440/12/8/3) не находит окно, в котором он выведен.
Вопрос. Как узнать имя окна? То есть имеется ли возможность вывода списка имен всех открытых окон. Если будет список имен, то поиском заданной подстроки в имени окна можно найти дескриптор окна.
++=================++
Или необходимо подключать #import "user32.dll" или "gdi32.dll" ?