Тоже сегодня наткнулся на такое. WindowFind() не находит окно, если индикатор на графике.
трудности с главным окном были давно, я определял индикаторы в подокнах, но в главном окне не распознавалась обыкновенная МА,
'Грaфические ордера == метаязык графических линий - торговых приказов, доработка советника GTerminal'
т.е. беру МА без ее поиска, но индикаторы в подокнах с поиском.
...
MQ по этому вопросу никто не беспокоил, а вообще - надо бы.
string s="Bar Timer[1]"; string s2="Moving Average (14)"; string s3="StdDev(20)"; string s4="Bolinger Bands (20)"; WindowRedraw(); Print(WindowFind(s)); Print(WindowFind(s2)); Print(WindowFind(s3)); Print(WindowFind(s4));
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Наткнулся на непонятную ситуацию: присоединяю индикатор в главное окно и потом в скрипте пытаюсь проверить его наличие (например, чтобы получить с него данные).
Читаю документацию:
void IndicatorShortName( string name)
Установка "короткого" имени пользовательского индикатора для отображения в подокне индикатора и в окне DataWindow.
int WindowFind( string name)
Возвращает номер подокна графика, содержащего индикатор с указанным именем name, если он найден, иначе возвращается -1.
WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init().
и (вроде) делаю все по ней:
и скрипт проверяющий его наличие:
ожидаю увидеть хоть один 0 как признак того что индикатор обнаружен в главном окне, но вместо этого получаю две -1 - т.е. индикатор не находится никак :(
ну и теперь subj собственно: Как проверить наличие индикатора в главном окне ?! (без установки в индикаторе глобальных переменных, как маркера наличия индикатора, и использования их в скрипте).