Пишу
В списке объектов вижу треугольники,
но i_TotalTriangle = 0, всегда !
Пишу
имена треугольников распечатываются...
треугольники рисуются всем известным индикатором ZUP_v92.ex4
какие идеи ?
Да, есть такая фишка в новом MQL4 )))
Дело в том, что у ObjectsTotal теперь существует перегруженная версия. Она по набору параметров до боли напоминает компилятору старую функцию, а в списке перегрузок идет первой. В итоге компилятор во многих случаях выбирает новую версию:
int ObjectsTotal( long chart_id, // идентификатор графика int sub_window=-1, // индекс окна int type=-1 // тип объекта );
Получается, что Вы в первом параметре передаете не тип объекта, а ID чарта. Такого ID, скорее всего, нет. Вот и получаете 0 объектов.
Чтобы этого избежать, помогите компилятору выбрать нужный тип функции:
ObjectsTotal((int)OBJ_TRIANGLE);
Да, есть такая фишка в новом MQL4 )))
Дело в том, что у ObjectsTotal теперь существует перегруженная версия. Она по набору параметров до боли напоминает компилятору старую функцией, а в списке перегрузок идет первой. В итоге компилятор во многих случаях выбирает новую версию:
Получается, что Вы в первом параметре передаете не тип объекта, а ID чарта. Такого ID, скорее всего, нет. Вот и получаете 0 объектов.
Чтобы этого избежать, помогите компилятору выбрать нужный тип функции:
Интересно и много таких тонкостей?
Как и в любом другом деле)). Знания и умения приходят только с опытом. Просто прочитав документацию или учебник, профессионалом не стать.
спасибо, друг...
но фактически это ведь ошибка в компиляторе...
Как и в любом другом деле)). Знания и умения приходят только с опытом. Просто прочитав документацию или учебник, профессионалом не стать.
Согласен, но все же, верно подметил more это все же ошибка, а если это специфическая тонкость, то зачем писать одноименные функции и процедуры, а потом ломать голову как же правильно их использовать.
спасибо, друг...
но фактически это ведь ошибка в компиляторе...
Дело в том, что я уже сталкивался именно с этой проблемой и описывал в одной из тем, связанных с новостями о билдах МТ4 (не помню, в какой именно). Мне ответили, что это вовсе не ошибка. Все так и останется.
Чтобы избежать подобных ошибок в будущем, взял для себя правило: использовать те функции, которые совместимы с MQL5 (если они есть в MQL4, конечно). К примеру, все функции, связанные с построением графических объектов, начинаю с указания ID чарта.
P. S. Нашел, где писал об этом - https://forum.mql4.com/ru/65341/page47#1000196. Оказалось, что никто ничего не ответил, да и ситуация была обратная указанной. Поэтому подумал, что разработчики не признают это в качестве ошибки. Хотя, если так подумать, то при компиляции старых экспертов (до 600-го билда) получим ошибки выполнения.
Дело в том, что я уже сталкивался именно с этой проблемой и описывал в одной из тем, связанных с новостями о билдах МТ4 (не помню, в какой именно). Мне ответили, что это вовсе не ошибка. Все так и останется.
Чтобы избежать подобных ошибок в будущем, взял для себя правило: использовать те функции, которые совместимы с MQL5 (если они есть в MQL4, конечно). К примеру, все функции, связанные с построением графических объектов, начинаю с указания ID чарта.
P. S. Нашел, где писал об этом - https://forum.mql4.com/ru/65341/page47#1000196. Оказалось, что никто ничего не ответил, да и ситуация была обратная указанной. Поэтому подумал, что разработчики не признают это в качестве ошибки. Хотя, если так подумать, то при компиляции старых экспертов (до 600-го билда) получим ошибки выполнения.
В любом случае спасибо за информацию.
Дело в том, что я уже сталкивался именно с этой проблемой и описывал в одной из тем, связанных с новостями о билдах МТ4 (не помню, в какой именно). Мне ответили, что это вовсе не ошибка. Все так и останется.
Чтобы избежать подобных ошибок в будущем, взял для себя правило: использовать те функции, которые совместимы с MQL5 (если они есть в MQL4, конечно). К примеру, все функции, связанные с построением графических объектов, начинаю с указания ID чарта.
P. S. Нашел, где писал об этом - https://forum.mql4.com/ru/65341/page47#1000196. Оказалось, что никто ничего не ответил, да и ситуация была обратная указанной. Поэтому подумал, что разработчики не признают это в качестве ошибки. Хотя, если так подумать, то при компиляции старых экспертов (до 600-го билда) получим ошибки выполнения.
проблема в том, что и эта версия в МТ4 не работает:
int i_TotalTriangle = ObjectsTotal(ChartID(),0,OBJ_TRIANGLE);
проблема в том, что и эта версия в МТ4 не работает:
int i_TotalTriangle = ObjectsTotal(ChartID(),0,OBJ_TRIANGLE);
Проверил такой код:
Alert("Треугольников old = ", ObjectsTotal((int)OBJ_TRIANGLE)); Alert("Треугольников new = ", ObjectsTotal(0, 0, OBJ_TRIANGLE));
Результат:
Проверил такой код:
Результат:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пишу
В списке объектов вижу треугольники,
но i_TotalTriangle = 0, всегда !
Пишу
имена треугольников распечатываются...
треугольники рисуются всем известным индикатором ZUP_v92.ex4
какие идеи ?