Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если терминал не отвечает, значит дело в зависшем (не желающем выгружаться или просто тормозном) скрипте/эксперте или индикаторе.
Это легко увидеть по логам. В любом случае, методом исключения программ раз за разом найти тормозящую программу.
Обычно пользователи знают, который из скриптов тормозит.
А теперь повторю свой вопрос в другом виде: Почему некоторые прежние индикаторы начали тормозить всю программу?
А теперь повторю свой вопрос в другом виде: Почему некоторые прежние индикаторы начали тормозить всю программу?
Прошу прощения, что вмешиваюсь. Я не разработчик МТ4. Но вопрос поставлен так, что конкретного ответа вы на него не дождетесь. Что за индикатор вы используете? Каков его код? Видя реальную проблему, можно о чем-то говорить. Вполне возможно, в новом билде что-то не учли, но эта неучтенность не может быть выявлена, пока не будет приведена конкретная ситуация.
А теперь повторю свой вопрос в другом виде: Почему некоторые прежние индикаторы начали тормозить всю программу?
Проверьте код своих индикаторов - их ведь не мы писали.
Может на что-то закладывались.
Согласен с Вами что то в билде изменилось в лучшую сторону, что то повлияло негативно.
Уважаемые разработчики, почему вы не упомянули о том, что в компилятор внесены изменения по приведению типов констант?
Раньше например константа 4294967188 (unsigned int) автоматически приводилась к типу int, т.е. соответствовала значению -108. А теперь она всегда приравнивается к максимально возможному значению int, т.е. 2147483647. По сути её значение просто обрезается, и соответственно результат полностью искажается. Это как понимать?
У меня из-за этого перестали корректно работать несколько советников, долго пришлось выяснять причину.
Если в С++ например ввести: ShowMessage((int) 4294967188), то он выдаст -108, но никак не 2147483647. Так может не стоит огород городить?
Непонятная ситуация работы тестера.
Уважаемые разработчики, почему вы не упомянули о том, что в компилятор внесены изменения по приведению типов констант?
Раньше например константа 4294967188 (unsigned int) автоматически приводилась к типу int, т.е. соответствовала значению -108. А теперь она всегда приравнивается к максимально возможному значению int, т.е. 2147483647. По сути её значение просто обрезается, и соответственно результат полностью искажается. Это как понимать?
У меня из-за этого перестали корректно работать несколько советников, долго пришлось выяснять причину.
Если в С++ например ввести: ShowMessage((int) 4294967188), то он выдаст -108, но никак не 2147483647. Так может не стоит огород городить?
В документации MQL4 явно указано
Внутреннее представление - длинное целое число размером 4 байта. Целые константы могут принимать значения от -2147483648 до 2147483647. Если константа превышает указанный диапазон, то результат не определен.
Мы не вносили никаких изменений в компилятор. Новый билд компилятора (как и клиентского терминала, и редактора) был получен более новым компилятором C++ от фирмы Microsoft. Начиная с Visual C++ 2005 в случае переполнения при преобразовании константной строки в целое число соответствующая функция (в компиляторе MQL4 для этих целей используется функция atoi) возвращает INT_MAX (или INT_MIN)
In Visual C++ 2005, in the case of overflow with large negative integral values, LONG_MIN is returned. atoi and _wtoi return INT_MAX and INT_MIN on these conditions. In all out-of-range cases, errno is set to ERANGE.
В предыдущих версиях фирма Microsoft честно предупреждала о неопределённости результата и что не надо закладываться на реализацию (к сожалению, нужной цитаты у меня под рукой нет).
Ваш случай чётко подпадает под предупрежедние о неопределённости результата.
Повторюсь по поводу некорректного открытия файлов:
В архиве скрины с разьяснениями
Заметил сегодня такое явление, хочу открыть график пары, а открывает ту, которая выше, причем по всем парам так
В документации MQL4 явно указано
Мы не вносили никаких изменений в компилятор. Новый билд компилятора (как и клиентского терминала, и редактора) был получен более новым компилятором C++ от фирмы Microsoft. Начиная с Visual C++ 2005 в случае переполнения при преобразовании константной строки в целое число соответствующая функция (в компиляторе MQL4 для этих целей используется функция atoi) возвращает INT_MAX (или INT_MIN)
В предыдущих версиях фирма Microsoft честно предупреждала о неопределённости результата и что не надо закладываться на реализацию (к сожалению, нужной цитаты у меня под рукой нет).
Ваш случай чётко подпадает под предупрежедние о неопределённости результата.
Вероятно Вы нашли способ как помочь ДЦ вывести из работы прибыльные советники? На 409 билде мой советник работает без проблем, а на 416 происходит закрытие терминала по прошествии
5-7 секунд. Я не программист, а обычный пользователь МТ4, и мне должно быть абсолютно одинакова работа старого и обновленного билда. А таким образом приходится сворачивать работу
советника, что в свою очередь, не оставляет положительного мнения о работе терминала.