Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1163
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если её ввели, значит разница есть.
Чтение проинициализированной переменной, всегда быстрее чтения функции.
Нет никакой разницы. Не могу найти сейчас ссылку - но был ответ давно дан.
Нет никакой разницы. Не могу найти сейчас ссылку - но был ответ давно дан.
Для Хуана и предупреждения компилятора, ни имеют ни какой разницы ))
Нет никакой разницы. При компиляции всё сводится в единый вызов. Поэтому правильнее всё через функции делать.
А давайте ещё и об этом заведём отдельную ветку и будем спорить как о пипсах и пунктах... Вот будет чем людя́м заняться...
Как-же вы любите своё мнение навязывать всем и каждому...
Есть MA с некоторым сдвигом. Пусть MA_shift = 5;
Почему получается взять верное значение MA с нулевого бара чарта, только если передать в CopyBuffer двойной отрицательный сдвиг?
CopyBuffer(hMA, 0, -2*5, rates_total, MA_Buf);
В MA_Buf[0] теперь верное значение.
Есть MA с некоторым сдвигом. Пусть MA_shift = 5;
Почему получается взять верное значение MA с нулевого бара чарта, только если передать в CopyBuffer двойной отрицательный сдвиг?
CopyBuffer(hMA, 0, -2*5, rates_total, MA_Buf);
В MA_Buf[0] теперь верное значение.
Картинку сначала нарисуйте и укажите что для Вас "нулевой бар" для индикатора с параметром shift.
Чтение переменной, быстрее чем функции.
далеко не факт, вот проверял что быстрее _Symbol или Symbol() https://www.mql5.com/ru/forum/160683/page933#comment_12780905
т.е. время доступа один в один, оптимизация кода в MQL очень круто работает, поэтому, что удобнее то и используйте
по моим тестам время доступа к переменной может отличаться, смотря где описана переменная и с какими модификаторами, но там 2-5% скорости, что в принципе можно списать на реализацию в конкретном билде, от номера билда точно это зависит
Подскажите плз, как проще и быстрее всего получить результат последней сделки по текущему символу? А то из документации все сложно как то. Для получения результата надо найти сначала тикет нужной сделки, что б найти тикет нужно найти сделку в итории по ее индексу, индекс надо искать в истории, не говоря о том, что еще надо по символу отфильтровать. появляется чувство, что я слишком усложняю задачу
Чтобы не лезть в торговую историю каждый раз - просто отлавливайте в OnTradeTransaction сделку с типом
TRADE_TRANSACTION_DEAL_ADD – добавление сделки в историю
m_symbol.Name() - текущий символ, InpMagic - уникальный идентификатор эксперта
далеко не факт, вот проверял что быстрее _Symbol или Symbol() https://www.mql5.com/ru/forum/160683/page933#comment_12780905
т.е. время доступа один в один, оптимизация кода в MQL очень круто работает, поэтому, что удобнее то и используйте
по моим тестам время доступа к переменной может отличаться, смотря где описана переменная и с какими модификаторами, но там 2-5% скорости, что в принципе можно списать на реализацию в конкретном билде, от номера билда точно это зависит
Согласен что оптимизатор работает хорошо, но полагаться всегда на оптимизатор компилятора, не верно.
Как ни странно, они есть в mql как не документированные.Необходимо заранее продумывать как исполняется код на уровне памяти, инициализации и возврата значения.
То есть просчитывать количество выполняемых действий на операцию, меньше действий - быстрее код. И взять за практику сразу писать оптимальный код.
В коротких кодах, возможно разницы нет, а когда будет проект на сотни файлов, вот тогда и появятся задержки,
и потом только профилировщик и переписывание кода. Каждый выбирает свои грабли ))
Так же погугли за ключевые слова