Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Для информации: мы в следующем билде выпустим профайлер на исторических данных, что позволит оптимизировать программы оораздо легче.
Это здорово. Особенно радует фраза "в следующем билде", а то многие анонсы растягиваются на годы. А что такое мертвые инструменты?
Для информации: мы в следующем билде выпустим профайлер на исторических данных, что позволит оптимизировать программы оораздо легче.
Я участвовал в разработке довольно серьезных проектов, написаных на MS VC++ с использованием MFC, соответственно, мой "стиль" - в основном идет оттуда.
Сам использую:
0. Пишу код сразу для DEBUG и RELEASE вариантов, имеется ряд макросов, которые в релизе пустые, а в дебаге - раскрываются в проверки, трассировку, дополнительные действия. Причем, трассировка может включаться-выключаться специальным дефайном и для релиза (в дебаге она включена всегда), Алексей прав - когда все грубые ошибки исправлены - трассировка в логфайл здорово помогает в выявлении "особых случаев". Print - практически не использую (здесь тоже полностью согласенс Алексеем насчет его минусов).
1. Все объявляемые переменные всегда сразу при создании заполняются невалидными значениями. Это позволяет легче выявлять ошибки "забыл инициализировать".
2. На входе каждой функции ставлю ASSERT'ы - все входные значения проверяются на валидность-невалидность.
3. Прохожу функцию под отладчиком, стараясь пройти все "линии работы", контролируя значение переменных и результатов.
4. Во всех "подозрительных местах" делаю TRACE'ы в лог-файл всех значений.
5. В особо хитрых случаях - использую кастомное возвращаемое значение, и вылавливаю баги, запуская полную оптимизацию на нужном диапазоне параметров, пытаясь понять, в каких случаях появляется ошибка.
Кстати, я большие проекты из десятков файлов часто редактирую в Visual Studio. Надо в настройках задать расширения mql , как с++
А я - все до этого просветления никак не дойду.
Хотя, у меня каждый класс оформляется в виде пары mqh-mq5, так что даже простые проекты у меня включают более сотни файлов. В самом файле советника - всегда буквально десяток строк. Объявление объекта-фабрики частей эксперта и подключения шаблона, в котором описаны все стандартные точки входа типа OnInit(), OnTick() и так далее. Но, с объявлением объекта-фабрики - сразу происходит подключение всех необходимых файлов.
Надо бы попробовать перейти к работе на VS...
А я - все до этого просветления никак не дойду.
Хотя, у меня каждый класс оформляется в виде пары mqh-mq5, так что даже простые проекты у меня включают более сотни файлов. В самом файле советника - всегда буквально десяток строк. Объявление объекта-фабрики частей эксперта и подключения шаблона, в котором описаны все стандартные точки входа типа OnInit(), OnTick() и так далее. Но, с объявлением объекта-фабрики - сразу происходит подключение всех необходимых файлов.
Надо бы попробовать перейти к работе на VS...
а зачем так делать? ведь класс это исходник включаемого файла, зачем класс или его часть вставлять в mq5?
у меня ошибок не бывает.
брехня...
брехня...
Вполне возможно если код из 20 строк. А в большом проекте без ошибок никак.
Вполне возможно если код из 20 строк. А в большом проекте без ошибок никак.
речь идет о кодах имеющих практическое применения