Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
К 2016 году большинство С++ компиляторов пришло к одинаковым уровням оптимизации.
MSVC заставляет удивляться улучшениям с каждым апдейтом, а Intel C++ как компилятор слился - так и не вылечился от своих "internal error" на больших проектах.
Еще из наших улучшений в 1400 билде в компиляторе то, что он стал быстрее компилировать сложные проекты.
По теме. Приходиться создавать альтернативы стандартным функциям, потому что они выдают иногда не то, что нужно. Вот пример альтернативы SymbolInfoTick
Казалось бы, в тестере вызывай на каждом событии NewTick SymbolInfoTick и складывай volume-поле, чтобы узнать биржевой оборот. Ан нет, нельзя! Приходиться делать куда более логичную по смыслу MySymbolInfoDouble.
Добро пожаловать в программирование, где вы сами творец!
Мы даем максимально полный инструмент, где вы можете сделать что хотите.
Можно оптимизировать все вокруг.
Это бесконечный процесс. Но в 99% случаев экономически невыгодный.
Тут речь не об оптимизации, а об приведении старой функции к новым реалиям. Понятно, что можно было Вам не писать NormalizeDouble совсем. И люди делали бы свой вариант. Но для экономии времени Вы создали. Сейчас этого оказалось не достаточно. И хорошо бы подрихтовать старый велосипед, чтобы удовлетворял тем же биржевым инструментам.
Кстати, не так давно @iliyas предлагал массу системных функций на этапе компиляции вставлять в виде исходных кодов на MQL5, чтобы они участвовали в инлайнинге и максимальной оптимизации.
Я сразу не оценил идею, но вот сейчас вижу, что это будет великолепно. Это делает тот же самый MSVC.
Спасибо, будем проверять и смотреть на возможность изменения библиотеки.
Вы не поняли. Не библиотеки, а NormalizeDouble. Добавить перегрузку
Чтобы можно было нормализовывать цены и лоты, когда TickSize = 25, VolumeStep = 0.5
Например, нормализация выглядела бы так
Кстати, не так давно @iliyas предлагал массу системных функций на этапе компиляции вставлять в виде исходных кодов на MQL5, чтобы они участвовали в инлайнинге и максимальной оптимизации.
Я сразу не оценил идею, но вот сейчас вижу, что это будет великолепно. Это делает тот же самый MSVC.
Получается, что #import ex5 - это зло оптимизации.
Обратите, пожалуйста, внимание на возможности препроцессора
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Как последовательно перебрать перечисление?
Alexey Navoykov, 2016.09.01 23:20
Ну вот это ключевой момент. В MQL5 макросы мало того, что с фиксированным числом аргументов, так ещё и это число ограничено 8. Так что удастся сделать enum всего для 3 значений.
А насчёт теоретического появления, наверно быстрей появится штатная функция для парсинга enum. Разработчики уже обещали родить что-нибудь.
Как оказалось, можно очень хитрые и удобные в использовании конструкции создавать.
Вы не поняли. Не библиотеки, а NormalizeDouble. Добавить перегрузку
Чтобы можно было нормализовывать цены и лоты, когда TickSize = 25, VolumeStep = 0.5
Например, нормализация выглядела бы так
Так перегружать нельзя. Одинаковые сигнатуры функций.
Но мысль понятна - функция нормализации с учетом грануляции тика.
Так перегружать нельзя. Одинаковые сигнатуры функций.
Вроде, там нет проблем. В одном варинате второй параметр int (было), в другом - double (появится).
Но мысль понятна - функция нормализации с учетом грануляции тика.
fxsaber
В Вашем коде ошибка