Особенности языка mql5, тонкости и приёмы работы - страница 295
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
PPS/ ArrayPrint неудобен тем что печатает весь массив (они бывают эпичных размеров). Всё равно приходится переопределять, сокращая выхлоп
Там есть соответствующие входные.
INC_SORT_BY(array,field) - сортировать массив структур по заданному полю;
Короче уже вряд-ли возможно :-)
По теме производительности.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2022.06.19 16:17
Я бы наоборот отказался от точки с запятой в конце вызова макроса, чтобы подчеркнуть, что это не функция.
Я бы наоборот отказался от точки с запятой в конце вызова макроса, чтобы подчеркнуть, что это не функция.
Тогда код становится хуже читаемым. Нарушается его восприятие. И ещё, при использовании цикла, в макросе можно использовать break.
Интересно, отличается ли итоговый код компилятора с/без do-while, если не используется break.
пользователь-пользователь:
INC_SORT_BY(array,field) - сортировка массива структур по заданному полю;
Короче уже вряд ли возможно :-)
пользователь-пользователь:
INC_SORT_BY(array,field) - сортировка массива структур по заданному полю;
Короче уже вряд ли возможно :-)
Я бы изменил ваши макросы в соответствии с этой лучшей реализацией:
Я использовал простую функцию "сортировки вставкой" из-за ее небольшого размера кода, хотя это не самая быстрая сортировка.
Для большей скорости вам следует заменить ее на QuickSort или гибридную функцию сортировки.
Редактировать:
Вы также можете использовать мою библиотеку introsort для максимальной производительности https://www.mql5.com/en/code/57233.
Возможно как-нибудь сделать так, чтобы в define задавать текст без кавычек и использовать его в дальнейшем как строку? Без кавычек ошибка.
Можно ли задать текст без кавычек и использовать его как строку? Без инвертированных запятых возникает ошибка.
Это можно сделать с помощью оператора stringify # внутри макроса:
В вашем примере перед использованием оператора # необходимо использовать перенаправление (макрос второго уровня), чтобы расширить макрос 'str' до aaa: