Артём, ещё один момент: многократный пересчёт индикатора (удаляются линии затем появляются), как будто вот здесь 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) и проблема ушла.
Если да, то перед каждой торговой операцией (установка/открытие/модификация/удаление)? (mql4 и mql5)
ResetLastError сбрасывает код последней ошибки.
Читайте справку - там всё хорошо поясняется:
В переменной _LastError хранится значение последней ошибки, произошедшей во время исполнения mql5-программы.
Сбросить значение в ноль можно функцией ResetLastError(). Для получения кода ошибки можно также использовать функцию GetLastError().
Т.е., если Вы обращаетесь к какой-либо функции, и полагаетесь на результат её работы, то нужно проверять результат выполнения этой функции. Если она отработала с ошибкой, то нужно проверить код ошибки, находящейся в _LastError - чтобы понять причину ошибочного выполнения функции. Но если перед вызовом функции код ошибки не был сброшен при помощи ResetLastError, то в _LastError может быть не нулевое значение - ведь там хранится код последней произошедшей ошибки, и не обязательно, что это будет от результата исполнения функции, которую Вы вызывали.
Самый короткий ответ, который может помочь Вам в понимании:
Вызывайте ResetLastError всегда непосредственно перед вызовом функции, результат работы которой Вы проверяете на ошибки.
Это не относится к торговым функциям - там нужно анализировать код возврата сервера, и это не код последней ошибки.
Т.е., если Вы обращаетесь к какой-либо функции, и полагаетесь на результат её работы, то нужно проверять результат выполнения этой функции. Если она отработала с ошибкой, то нужно проверить код ошибки, находящейся в _LastError - чтобы понять причину ошибочного выполнения функции. Но если перед вызовом функции код ошибки не был сброшен при помощи ResetLastError, то в _LastError может быть не нулевое значение - ведь там хранится код последней произошедшей ошибки, и не обязательно, что это будет от результата исполнения функции, которую Вы вызывали.
Самый короткий ответ, который может помочь Вам в понимании:
Вызывайте ResetLastError всегда непосредственно перед вызовом функции, результат работы которой Вы проверяете на ошибки.
Это не относится к торговым функциям - там нужно анализировать код возврата сервера, и это не код последней ошибки.
Подскажите, пожалуйста, какие из этих ошибок должны побудить советник включить цикл повторений запросов на торговую операцию? (то есть, какие ошибки я должен добавить в цикл повторений)
Всем доброго времени суток! Я учусь в тестере генерировать случайные числа при помощи встроенных функций mql4 Вот мой код который генерирует на каждом тике случайное число в диапазоне от 0 до 32767
Всем доброго времени суток! Я учусь в тестере генерировать случайные числа при помощи встроенных функций mql4 Вот мой код который генерирует на каждом тике случайное число в диапазоне от 0 до 32767
ВОПРОС
А каким образом можно изменить диапазон ? Например 0-100 , или 100-167, или 45- 587 и т.д. Всем спасибо за помощь.
А дальше можете фантазировать как угодно. Остаток от деления минус чего-то, или разделить на что-то, или умножить, прибавить или вообще по какой-то формуле пересчитать…
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Стандартными средствами нельзя.
Артём, ещё один момент: многократный пересчёт индикатора (удаляются линии затем появляются), как будто вот здесь 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
А дальше можете фантазировать как угодно. Остаток от деления минус чего-то, или разделить на что-то, или умножить, прибавить или вообще по какой-то формуле пересчитать…