![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это всё баловство. Не так трудно вставить необходимый код в функцию.
Вы фактически скрываете от пользователя библиотеки, что в функцию добавляется какой-то код.
Если Вам придётся разбираться с такими трюками в чужой программе, Вы проклянёте автора.
Вопрос в удобстве и востребованности данного решения. В данном случае наделить или убрать индикатор синхронными качествами возможно через одну строку. Возможно, именно Вам это неудобно.
А вот пример неправильного использования макросов в Вашей библиотеке:
Этот макрос скрывает, что в этом месте может быть выход из функции.
Для чего он нужен вообще? Ради копеечной экономии букв? Это несерьёзно.
Вырывать так из контекста нехорошо. Макрос используется в каждой On-функции.
Допустимо использовать макросы для условной компиляции и для объявления типа (пока нет нормального typedef).
Ещё иногда приходится объявлять константы при помощи макросов.
Во всех остальных случаях макросы только запутывают код.
Вот яркий пример запутывания: https://www.mql5.com/ru/forum/170952/page50#comment_5488178
Этот чем плох?
А если нужно заменить OrdersTotal()?
Вырывать так из контекста нехорошо. Макрос используется в каждой On-функции.
Я их все видел. Во всех этих функциях он не делает ничего полезного.
Этот чем плох?
Он также ничего не делает, только запутывает.
А если нужно заменить OrdersTotal()?
Не нужно заменять OrdersTotal().
Я их все видел. Во всех этих функциях он не делает ничего полезного.
Он также ничего не делает, только запутывает.
Не нужно заменять OrdersTotal().
Услышал Вас. Не знаю, насколько удобно использовать другим выложенные библиотеки и сколько людей являются их пользователями.
Поэтому за других не скажу. Возможно, когда-нибудь дорасту до иного отношения к макросам. Сейчас же не могу с Вами согласиться.