Это, что ли, нормальное поведение WindowFind()?
"Возвращает номер подокна графика, содержащего индикатор с указанным именем name, если он найден, иначе возвращается -1."
Поиск производится по первому имени, выведенному в верхней строке подокна. Если ищется второй, третий и т.д индикатор в подокне, то они не найдутся.
WindowFind не определяет, присутствует или нет тот или иной индикатор.
Значение, возвращаемое этой функцией, используется для создания
объектов. Поэтому просматривается только первый индикатор
в подокне, так как именно он определяет масштаб горизонтальной
сетки подокна.
"Возвращает номер подокна графика, содержащего индикатор с указанным именем name, если он найден, иначе возвращается -1."
Поиск производится по первому имени, выведенному в верхней строке подокна. Если ищется второй, третий и т.д индикатор в подокне, то они не найдутся.
WindowFind не определяет, присутствует или нет тот или иной индикатор.
Значение, возвращаемое этой функцией, используется для создания
объектов. Поэтому просматривается только первый индикатор
в подокне, так как именно он определяет масштаб горизонтальной
сетки подокна.
Опять же, как индикатор узнает, куда складывать объекты, если он не первый?
Проблема с функцией возникла вот почему.
Мне нужно определить, загружен или нет тот или иной индикатор.
Семафор на глобальной переменной подошел бы. Только как узнать тогда, работает индикатор сам по себе, или запускается через iCustom?
Очень надеюсь на Вашу помощь.
Масштаб основного окна определяет цена. По первому индикатору в подокне определяется масштаб этого подокна.
Если речь идёт о кастомных индикаторах, то можно завести дополнительный булевский параметр. Прикреплён вручную - одно значение, запущен из эксперта - другое значение.
Масштаб основного окна определяет цена. По первому индикатору в подокне определяется масштаб этого подокна.
Если речь идёт о кастомных индикаторах, то можно завести дополнительный булевский параметр. Прикреплён вручную - одно значение, запущен из эксперта - другое значение.
Желательно было бы иметь логически полную функциональность WindowFind. К тому же, проблема с поиском подокна для объектов не первого индикатора остается. И она, наверное, даже более актуальна, хоть и всплыла здесь случайно.
Спасибо.
Я сказал: "масштаб горизонтальной сетки". А не горизонтальный масштаб.
Мы учтём пожелания в будущих разработках.
Очевидно, тогда речь идет о вертикальном масштабе. Наверное, опечатка
Решение очевидное, но, к сожалению, не универсальное. Если бы я писал программы для себя, проблемы не было бы. Только сам я и так могу видеть, загружен индикатор или нет. А вот что там с головой и руками пользователя предугадать невозможно. Как показывает практика, может быть все, что угодно :)
Желательно было бы иметь логически полную функциональность WindowFind. К тому же, проблема с поиском подокна для объектов не первого индикатора остается. И она, наверное, даже более актуальна, хоть и всплыла здесь случайно.
Спасибо.
Вот кстати говоря хочу поднять этот топик. Есть такая задача. Необходимо найти, сколько экземпляров индикатора прикреплено к тому или иному чарту и в том случае, если больше одного изменять значение одной переменной. WindowFind находит индекс только для первого экземпляра, который увидит. Остальные эта функция игнорирует. Что посоветуете в данном случае? И второй вопрос, вытекающий из первого. В идеале необходимо, чтобы были отловлены также все установленные на чарт предыдущие версии индикатора, скажем если они именуются короткими именами ind_v01, ind_v02, и т.п. А поиска по шаблону в параметре функции WindowFind также нет. И как это сделать? Вобщем какая-то функция получается недоделанная, как мне кажется.
-предполагаем имя индиктаора, проверяем есть/нет, предполагаем следующее имя))))
поиск методом тыка, другого не предусмотрено.
-предполагаем имя индиктаора, проверяем есть/нет, предполагаем следующее имя))))
Ок, спасибо, вторую часть проблемы это пожалуй решит. Метод конечно не smart, но как я понимаю, другого нет. А как быть с первой частью проблемы? Как понять, сколько экземпляров одного и того же индикатора одной и той же версии согласно его short name запущено на чарте? А еще лучше изначально запретить пользователю навешивать его больше одного раза.
to Gans-deGlucker
WindowFind() ищет имя из IndicatorShortName()
проблема в том что эти имена изменяются в зависимости о параметров
например: IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
здесь можно было бы перебирать в цикле возможные имена и подсчитывать по первой части имени "MACD("
однако, неизвеcтно сколько раз придется перебирать, так как не известно общее число индикаторов.
Т.е. МТ-4 это всего лишь терминал с ограниченныеми возможностями, но никак не система (много изъятий)
Вероятно есть способ хакнуть, и добраться до количества и имен индикаторов через дескрипторы окна....
но каждый раз приходится выбирать - что лучше: мирно торговать или ломать инструмент.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
То есть если загружено 12 индикаторов в основном окне и еще 6 в дополнительном, WindowFind(), вызванный 18 раз с названием каждого из загруженных индикаторов 17 раз вернет -1 и обнаружит только самый первый индикатор в дополнительном окне.
Что функция, вообще, должна искать? В документации про такое ограничение ничего нету.