Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна - страница 20
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нужно использовать именно имена перечислений, а не их значения.
Не согласен с этим утверждением, но это не мое дело. Просьба сообщить, какие перечисления поменяли свои значения? И планируются ли еще изменения в других перечислениях?
Простой пример, когда изменение значения перечисления вызывает проблемы. Некоторые юзеры Маркета используют сеты (set-файлы) для купленных продуктов. Некоторые - шаблоны (tpl-файлы).
Попродвинутей - чарты (chr-файлы). Там прописаны входные настройки индикаторов и советников, к которым привык пользователь.
Если входной ENUM_APPLIED_PRICE-типа (среди индикаторов это сплошь и рядом), то после изменения значения все set/tpl/chr-фалы становятся некорректными. При этом программист совсем не при делах.
Да всё бы ничего, но тогда и в СБ нужно поправить, на что и было указано выше.
Код из "\MQL5\Include\Indicators\Indicator.mqh":
В этом коде используется свой массив
из него и возвращается значение согласно индекса.
В этом коде используется свой массив
из него и возвращается значение согласно индекса.
Предложи способы использования указанного метода для возврата описания используемой цены расчёта.
Предложи способы использования указанного метода для возврата описания используемой цены расчёта.
Именно по этой, в том числе, причине я использую СБ по минимуму…
Именно по этой, в том числе, причине я использую СБ по минимуму…
Таки не предложил...
Я надеялся, что ты, пытаясь предложить способ использования этого метода, сам и увидишь озвученную выше ошибку.
Простой пример, когда изменение значения перечисления вызывает проблемы. Некоторые юзеры Маркета используют сеты (set-файлы) для купленных продуктов. Некоторые - шаблоны (tpl-файлы).
Это означает только то, что нельзя использовать предопределенные перечисления вида ENUM_XXX в качестве input параметров. К тому же такое использование не позволяет заместить имя комментарием
Пользовательские же перечисления свободны от указанных недостатков
Таки не предложил...
Я надеялся, что ты, пытаясь предложить способ использования этого метода, сам и увидишь озвученную выше ошибку.
Да какая ошибка, Артём… Ошибка в СБ, а не в MQL. Одно несоответствие ТФ со значениями MQL4 уже не позволяет, лично мне, пользоваться числовыми значениями перечислений. А опубликованный метод это демонстрация как делать не надо… Вполне достаточно EnumToString для получения того что хочешь проверить…
Да какая ошибка, Артём… Ошибка в СБ, а не в MQL. Одно несоответствие ТФ со значениями MQL4 уже не позволяет, лично мне, пользоваться числовыми значениями перечислений. А опубликованный метод это демонстрация как делать не надо… Вполне достаточно EnumToString для получения того что хочешь проверить…
Пусть первый в меня бросит камень тот, кто скажет, что я утверждал, что это ошибка в MQL5.
Очень удобно!
ЗЫ И прием, подобный СБ, использую.
Код получается лаконичный, понятный и быстрый.
Вовсю использую следующие равенства.
Очень удобно!
ЗЫ И прием, подобный СБ, использую.
Код получается лаконичный, понятный и быстрый.
В каких-то местах удобно. Но перечисления и именованные константы были придуманы не для такого их использования. Как раз замена числовых значений без ущерба коду и является основным их удобством.
Приведенный пример как раз является плохим кодом. Правильнее все это разруливать через switch, в котором перечислены именованные константы, но ни в коем случае не значения.
Скорее всего какие-то элементы СБ писались недостаточно опытными кодерами.
А вот по замечанию насчет set-файлов соглашусь. Но только в том ключе, что MQ выбрали неправильный путь в сохранении значений перечислений. Для универсализма стоило бы переводить их в строки. Тогда бы никаких проблем не возникло при изменении значений констант.