Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2231
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Стандартными средствами нельзя.
Артём, ещё один момент: многократный пересчёт индикатора (удаляются линии затем появляются), как будто вот здесь limit = rates_total - prev_calculated; слетает limit, или как бы выразиться , prev_calculated не срабатывает. Чем может быть вызвано?
На старших ТФ всё нормально, как переключаешься на М1 или М5 - начинается крутить
UPD
Кажется нашёл. ChartRedraw(); конфликтует на истории несколько раз обновляться. Один раз поставил (когда rates_total - prev_calculated == 0) и проблема ушла.
Артём, ещё один момент: многократный пересчёт индикатора (удаляются линии затем появляются), как будто вот здесь limit = rates_total - prev_calculated; слетает limit, или как бы выразиться , prev_calculated не срабатывает. Чем может быть вызвано?
На старших ТФ всё нормально, как переключаешься на М1 или М5 - начинается крутить
UPD
Кажется нашёл. ChartRedraw(); конфликтует на истории несколько раз обновляться. Один раз поставил (когда rates_total - prev_calculated == 0) и проблема ушла.
Это у Вас ChartRedraw на каждом тике...
Это у Вас ChartRedraw на каждом тике...
Если да, то перед каждой торговой операцией (установка/открытие/модификация/удаление)? (mql4 и mql5)
А обязательно ли использовать ResetLastError?
Если да, то перед каждой торговой операцией (установка/открытие/модификация/удаление)? (mql4 и mql5)
ResetLastError сбрасывает код последней ошибки.
Читайте справку - там всё хорошо поясняется:
В переменной _LastError хранится значение последней ошибки, произошедшей во время исполнения mql5-программы.
Сбросить значение в ноль можно функцией ResetLastError(). Для получения кода ошибки можно также использовать функцию GetLastError().
Т.е., если Вы обращаетесь к какой-либо функции, и полагаетесь на результат её работы, то нужно проверять результат выполнения этой функции. Если она отработала с ошибкой, то нужно проверить код ошибки, находящейся в _LastError - чтобы понять причину ошибочного выполнения функции. Но если перед вызовом функции код ошибки не был сброшен при помощи ResetLastError, то в _LastError может быть не нулевое значение - ведь там хранится код последней произошедшей ошибки, и не обязательно, что это будет от результата исполнения функции, которую Вы вызывали.
Самый короткий ответ, который может помочь Вам в понимании:
Вызывайте ResetLastError всегда непосредственно перед вызовом функции, результат работы которой Вы проверяете на ошибки.
Это не относится к торговым функциям - там нужно анализировать код возврата сервера, и это не код последней ошибки.
А обязательно ли использовать ResetLastError?
Если да, то перед каждой торговой операцией (установка/открытие/модификация/удаление)? (mql4 и mql5)
Нет не обязательно. Только если после каждой операции вы проверяете нет-ли ошибки.
А в MQL5 гораздо полезней проверить функцией OrderCheck() перед тем как… и посмотреть код возврата в структуре.
ResetLastError сбрасывает код последней ошибки.
Читайте справку - там всё хорошо поясняется:
Т.е., если Вы обращаетесь к какой-либо функции, и полагаетесь на результат её работы, то нужно проверять результат выполнения этой функции. Если она отработала с ошибкой, то нужно проверить код ошибки, находящейся в _LastError - чтобы понять причину ошибочного выполнения функции. Но если перед вызовом функции код ошибки не был сброшен при помощи ResetLastError, то в _LastError может быть не нулевое значение - ведь там хранится код последней произошедшей ошибки, и не обязательно, что это будет от результата исполнения функции, которую Вы вызывали.
Самый короткий ответ, который может помочь Вам в понимании:
Вызывайте ResetLastError всегда непосредственно перед вызовом функции, результат работы которой Вы проверяете на ошибки.
Это не относится к торговым функциям - там нужно анализировать код возврата сервера, и это не код последней ошибки.
Нет не обязательно. Только если после каждой операции вы проверяете нет-ли ошибки.
А в MQL5 гораздо полезней проверить функцией OrderCheck() перед тем как… и посмотреть код возврата в структуре.
Спасибо за ответы!
Стараюсь читать (понять) документацию, не всегда получается
Нашёл в кодбазе джентельменский набор if ((GetLastError() != 135) && (GetLastError() != 138) && (GetLastError() != 146)) return(OpenOrder);
Но, мне кажется, ситуаций побольше будет
Всем доброго времени суток!
Я учусь в тестере генерировать случайные числа при помощи встроенных функций mql4
Вот мой код который генерирует на каждом тике случайное число в диапазоне от 0 до 32767
ВОПРОС
А каким образом можно изменить диапазон ? Например 0-100 , или 100-167, или 45- 587 и т.д.
Всем спасибо за помощь.
Всем доброго времени суток!
Я учусь в тестере генерировать случайные числа при помощи встроенных функций mql4
Вот мой код который генерирует на каждом тике случайное число в диапазоне от 0 до 32767
ВОПРОС
А каким образом можно изменить диапазон ? Например 0-100 , или 100-167, или 45- 587 и т.д.
Всем спасибо за помощь.
Просто надо взять остаток от деления на 100
А дальше можете фантазировать как угодно. Остаток от деления минус чего-то, или разделить на что-то, или умножить, прибавить или вообще по какой-то формуле пересчитать…