Обсуждение статьи "LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)" - страница 6

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как представляете себе статью?! Беру свой исходник из КБ и начинаю в статье расписывать, почему решил применить в этом месте макрос и почему он именно такой?
К каждой работе в КБ есть ветка обсуждений. Там можно задавать вопросы и по исходникам.
К примеру, вот здесь Я вообще дупля не отбиваю)
Было-бы не плохо описать вот такие вещи!
К примеру, вот здесь Я вообще дупля не отбиваю)
Было-бы не плохо описать вот такие вещи!
Это многостроковый макрос с пятью входными параметрами. Посмотрите по тексту, с какими параметрами он вызывается.
Он создает соответствующие методы с названиями MT4OrderTicket, MT4OrderClosePrice и т.д. Методы на 95% совпадают по тексту и их много. Чтобы не городить огромную копипасту, где может легко закрасться ошибка, делается макрос. Все компактно и сразу видно.
Более того, такой код подчеркивает, что функции на 95% одинаковые. Т.е. при чтении сразу об этом понимаешь. А вот если бы написать классически, то такой вывод можно было бе сделать только прочитав и проанализировав код 20-ти (там столько их) методов. А это нехилая головная боль. А так все 20 методов на одном экране и все подчеркнуто, что методы почти совпадают. И только входные параметры макросов говорят об отличиях. Вот на эти отличия, а не на мишуру при чтении и обращаешь внимание. Т.е. код сразу показывает главное - ядро, а не муторную оболочку.
Те штуки, которые он проделывает дают нестандартные фишки. Это ценные знания, которыми надо делиться с общественностью!
Ну так он делится. Некоторые его посты и описания к коду в КБ содержательнее половины здешних статей.
Тоже не понимаю, зачем искусственный справочник, если есть живые ответы от него на все задаваемые вопросы.
Лучше бы Ренат избавился от привычки банить его за каждое резкое высказывание.
Сделали бы разработчик в редактор к кнопке "Компилировать" дополнительную команду "сделать копию файла, заменить макросы без компиляции и открыть файл". Специально для изучения макросов от fxsaber.
Ну или же в контекстное меню команду. Ставим мышку на вызов макроса, выбираем команду, в буфер копируется код, получаемый после замены макроса.
Вообще макросы вот так можно понять:
1. Надо отделить имя макроса от его значения. Сначала в строке идет #define, потом пробел, после него это имя (оно с параметрами может быть), потом еще пробел или переход на новую строку и значение макроса.
2. Смотрим как макрос вызывается в коде, какие у него параметры. Делаем себе копию значения макроса и делаем замену параметров на те параметры, с которыми он вызывается где-то в коде.
3. Там, где в коде вызывается макрос заменяем его на то что получилось в п.2.
Примерно так.
Тут нужно кое-что знать: \ - это означает продолжение на новой строке. ## - это соединение строк.Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2017.12.05 11:39
В дебаг-режиме нельзя узнать значение, которое возвращает функция или выражение.
Например
Например, что вернули выделенные функции.
Использую (не только в дебаг-режиме) такой способ
Результат
Оформил его в виде mqh.
В качестве примера кроссплатформенный скрипт
Ну и захотелось, допустим, узнать, что возвращает в этом коде OrderClosePrice(). Делаем так
А вот код, если захотелось узнать почти все (такое бывает, когда совсем не понимаешь, где проблема в своем или чужом коде)
Т.е. любое место, значение которого хочется увидеть, облачаем в _P(). Результат
Или, например, есть такое выражение
Нужно быстро врубиться, почему же 19602 выходит. Облачаем быстро интересуемые куски в наш макрос
И видим пошагово результат вычисления
ЗЫ За вместо куска статьи...