Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При компиляции явные выходы могут быть замечены и вынесены в предупреждения, не явные не будут замечены компилятором, только по исполнению будет ошибка
нет - в том то и прикол что не будет ошибки при обращении к несуществующей ячейке массива выдаст 0 и не выдаст ошибку, вот такая вот халява без #property strict, на ноль делить не пробовал, но с массивом это точно работает
Vasya Vasya:
И где полные отличия обновленной версии и старой или можно взять все из MQL5 ?
Полные отличия в MetaEditor --> Справка --> Справочник MQ4
можноли обойтись без #property strict для добавления коментариев?
И все таки для меня остался неясным один важный вопрос.
Какой синтаксис при включеном #property strict
используется конструкции из MQL5 или MQL4 ?
На все вопросы можно получить ответы с большей пользой.
Заведите скрипт с именем, например, Проба. Все вопросы проверяйте в нем. Быстрее и надежнее.
Старые программы надо сильно править. Вот пример: простой скрипт. По сути A * B + C
На билде 2013 года дает такой результатНа последнем билде результат другой, т.к. изменен приоритет операций дизъюнкции (логического сложения) и конъюнкции (логического умножения)
Если добавить #property strict то результат другой, но похож на предыдущий
При перекомпилировании старых программ и появлении предупреждения check operator precedence ...
следует указать порядок вычисления с помощью скобок
Старые программы надо сильно править. Вот пример: простой скрипт. По сути A * B + C
На билде 2013 года дает такой результатНа последнем билде результат другой, т.к. изменен приоритет операций дизъюнкции (логического сложения) и конъюнкции (логического умножения)
Если добавить #property strict то результат другой, но похож на предыдущий
При перекомпилировании старых программ и появлении предупреждения check operator precedence ...
следует указать порядок вычисления с помощью скобок
удивлен даже, приоритеры И и ИЛИ менять. И зачем. Типа в почти всех языках по другому и это надо запомнить. Недавно с языком знаком. Не застал такого безобразия.
удивлен даже, приоритеры И и ИЛИ менять. И зачем. Типа в почти всех языках по другому и это надо запомнить. Недавно с языком знаком. Не застал такого безобразия.
Разработчики языка MQL-2 заложили приоритет дизъюнкции (логического сложения || ) выше приоритета конъюнкции (логического умножения &&) . Это перешло в языки MQL-3 и MQL-4. При разработке MQL-5 это где-то 2015 год положение решили исправить - теперь приоритет умножения как и у всех выше приоритета сложения. И заодно исправили в языке MQL-4. Но к тому времени по старым правилам написано множество программ, которые перестали работать. Для восстановления работоспособности их надо перекомпилировать, указав скобками нужный порядок выполнения сложных логических выражений. Для облегчения этой работы компилятор в подозрительных местах выдает предупреждения check operator precedence ... = проверьте последовательность выполнения операций: используйте скобки для уточнения. Это предупреждение выдается и в новых программах. Пример: A&&B||C
в строке 11: A&&B||C
Известен анекдот, где российский хирург удалил гланды через задний проход. Однако такой подход разработчики используют часто.
Разработчик первого процессора IBM попутал верх и низ в адресации памяти. И до сих пор программистам приходится переворачивать байты при непосредственной работе с памятью на языках низкого уровня.
В компьютерах IBM отсутствовала кириллица. И когда в СССР появились компьютеры, амеры удружили нам русскую раскладку, перевернув заодно и часть латиницы. В результате программистам (и мне в том числе) пришлось создавать программы перекодировки текстовых файлов.
Разработчики языка MQL-2 заложили приоритет дизъюнкции (логического сложения || ) выше приоритета конъюнкции (логического умножения &&) . Это перешло в языки MQL-3 и MQL-4. При разработке MQL-5 это где-то 2015 год положение решили исправить - теперь приоритет умножения как и у всех выше приоритета сложения. И заодно исправили в языке MQL-4. Но к тому времени по старым правилам написано множество программ, которые перестали работать. Для восстановления работоспособности их надо перекомпилировать, указав скобками нужный порядок выполнения сложных логических выражений. Для облегчения этой работы компилятор в подозрительных местах выдает предупреждения check operator precedence ... = проверьте последовательность выполнения операций: используйте скобки для уточнения. Это предупреждение выдается и в новых программах. Пример: A&&B||C
в строке 11: A&&B||C
Известен анекдот, где российский хирург удалил гланды через задний проход. Однако такой подход разработчики используют часто.
Разработчик первого процессора IBM попутал верх и низ в адресации памяти. И до сих пор программистам приходится переворачивать байты при непосредственной работе с памятью на языках низкого уровня.
В компьютерах IBM отсутствовала кириллица. И когда в СССР появились компьютеры, амеры удружили нам русскую раскладку, перевернув заодно и часть латиницы. В результате программистам (и мне в том числе) пришлось создавать программы перекодировки текстовых файлов.
Часто большая задача решается не по плану, а по мере поступления мелких задач и иногда это единственный путь первого решения. я понял что произошло с приоритетами, удивила мотивация постановщика задач, если он был, или это просто перепутали, хотя не верится)