Особенности языка mql5, тонкости и приёмы работы - страница 99
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Возникает необходимость передать по ссылке без модификации - для скорости, либо же объект.
Ну с этим-то никаких проблем вообще нет. Если необходимости передать для модификации не возникает, тогда можете смело пропустить всё написанное мной мимо ушей )
Есть реальный пример в MQL5, когда возникает эта проблема?
Реального примера удобства не хватает.
Я ж вроде всё подробно описал, и в словах, и в кодах. Раз вам по какой-то причине это кажется непонятным, то очевидно с описанными проблемами вы точно не сталкиваетесь, с чем вас и поздравляю. Спите спокойно, дорогой товарищ )
Мой пост наверно был больше ориентирован на хардкорных шаблонщиков, а также любителей занудного контроля типов.
Часто возникает необходимость передать какую-то переменную в качестве шаблонного аргумента по ссылке для её модификации. Однако существующая спецификация шаблонов C++, к сожалению, не позволяет явно указать неконстантность аргумента, как это происходит в обычных функциях:
во-первых в С++ просто гораздо богаче возможности шаблонов, во-вторых в С++ есть SFINAE, который позволяет наворотить такое что волосы дыбом.
вот так это может выглядеть:
а вообще это то же самое что с указателем. нельзя задать напрямую что нужный тип должен быть не указателем, но можно это сделать через некомпилируемую специализацию.вот так это может выглядеть
Как я понимаю, это вызывает ошибку компиляции в теле функции (которую и так можно вызвать), но на процесс выбор шаблона не влияет. Требуется манипуляция с типом возвращаемого значения функции. Впрочем не суть. Конечно понятно, что в С++ можно много чего наворотить. Но там всё это реализуется не только благодаря шаблонам, но также за счёт спецификатора decltype, которого в MQL нет, а он нужен.
Мой пост наверно был больше ориентирован на хардкорных шаблонщиков, а также любителей занудного контроля типов.
Думал, что после написания TypeToBytes стал компетентнее в шаблонах.
Думал, что после написания TypeToBytes стал компетентнее в шаблонах.
Вообще я щас осознал, что словосочетание "хардкорный шаблонщик" применительно к MQL звучит иронично. Примерно как "дипломированный MQL-программист" ))
Тут на шаблонах особо сложного ничего не сделаешь, причём не только ввиду отсутствия дополнительного функционала языка, но и из-за некорректной работы имеющегося. Постоянно натыкаясь на баги.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Slava, 2018.09.19 06:37
Чтобы поместить объект над всеми остальными вне зависимости от порядка прописки, необходимо сначала сделать его невидимым на всех таймфреймах, а потом обратно вернуть видимостьДобрый день!
В документации явным образом прописано, что на время работы обработчика OnTick https://www.mql5.com/ru/docs/runtime/event_fire#newtick
обработка вновь поступающих тиков не производится. Верно ли то же самое в отношении обработчиков OnBookEvent, OnTimer, OnChartEvent или нет.
Вопрос вызван тем, что во всех перечисленных обработчиках использую собственную обработку тика.
Добрый день!
В документации явным образом прописано, что на время работы обработчика OnTick https://www.mql5.com/ru/docs/runtime/event_fire#newtick
обработка вновь поступающих тиков не производится. Верно ли то же самое в отношении обработчиков OnBookEvent, OnTimer, OnChartEvent или нет.
Вопрос вызван тем, что во всех перечисленных обработчиках использую собственную обработку тика.
Точно не верно.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: HistoryTicks
fxsaber, 2018.04.10 17:53
Боевой советник на высокочастотном символе (200-350 тиков в минуту) с частыми торговыми приказами (несколько раз в минуту) и пингом 100 ms в стандартном режиме работы теряет ~5% тиков.
В режиме HistoryTicks потерь нет.
ЗЫ Можете смело использовать мультивалютный OnTick под MT5.
Точно не верно.
ЗЫ Можете смело использовать мультивалютный OnTick под MT5З
За ссылку спасибо! Собственно проблема не в потере тиков, а в возможном частичном обновлении информации при обработке текущего. Аналогичную проблему решал при организации общения роботов одновременно торгующих
на разных инструментах через переменные терминала. Поскольку робот ориентирован на работу на хостинге использование сторонних dll, а соответсвенно mutex’а невозможно, использовал эмуляцию с GlobalVariableSetOnCondition.
За ссылку спасибо! Собственно проблема не в потере тиков, а в возможном частичном обновлении информации при обработке текущего. Аналогичную проблему решал при организации общения роботов одновременно торгующих
на разных инструментах через переменные терминала. Поскольку робот ориентирован на работу на хостинге использование сторонних dll, а соответсвенно mutex’а невозможно, использовал эмуляцию с GlobalVariableSetOnCondition.
Возможно, Вам подойдет вариант передачи данных через Ресурсы.