Обновление платформы MetaTrader 4 build 670: виртуальный хостинг, web-запросы и работа с сигналами из MQL-программ - страница 28

 
artmedia70:
Это был баг. Действительно алерты в какой-то бета-версии выводились в тестере, и звуки тоже звучали... После сообщения об этих багах, их быстро поправили.

В 509-м билде, кажется, тоже алерты выводились в тестере, а это была не бета-версия.

Но мне все-таки не понятно зачем алерты убирать, если они вообще никак не мешают, а только наоборот - помогают увидеть работу кода более полно? Также, как работают сейчас в тестере функции TimeLocal() и TimeCurrent(), - тоже оставляет желать лучшего. Ведь тестер для того и создан, чтобы моделировать самые различные ситуации, записанные в коде, а тут получается, что не возможно увидеть работу даже таких базовых функций, не говоря уже о чем-то навороченном...

 
stanf:

В 509-м билде, кажется, тоже алерты выводились в тестере, а это была не бета-версия.

Но мне все-таки не понятно зачем алерты убирать, если они вообще никак не мешают, а только наоборот - помогают увидеть работу кода более полно? Также, как работают сейчас в тестере функции TimeLocal() и TimeCurrent(), - тоже оставляет желать лучшего. Ведь тестер для того и создан, чтобы моделировать самые различные ситуации, записанные в коде, а тут получается, что не возможно увидеть работу даже таких базовых функций, не говоря уже о чем-то навороченном...

Нет, алерты не выводились на экран в 509-й версии. Только в журнал - как и должно быть. Уж поверьте - давно работаю со всякими версиями.
 
artmedia70:
Нет, алерты не выводились на экран в 509-й версии. Только в журнал - как и должно быть. Уж поверьте - давно работаю со всякими версиями.

Может быть и, действительно, не выводились. Я просто начал более углубленно программировать как раз на переходе с 509-го на 600-й билд и точно не помню с какой версией начал работать, но вроде бы всегда алерты в тестере выводились. В любом случае, будет жаль, если разработчики-таки не включат вывод этой функции на экран, так как с ее помощью было всегда удобно тестировать с остановками в нужном месте при нажатии F12.

Может быть вы знаете какой-то альтернативный способ, как делать остановки в изменениях котировок в определенном месте в тестере? Тогда эти алерты были бы уже и не так актуальны, конечно. Останется тогда придумать, как работать еще с TimeLocal() и TimeCurrent() в тестере, если это возможно. 

 
stanf:

Может быть и, действительно, не выводились. Я просто начал более углубленно программировать как раз на переходе с 509-го на 600-й билд и точно не помню с какой версией начал работать, но вроде бы всегда алерты в тестере выводились. В любом случае, будет жаль, если разработчики-таки не включат вывод этой функции на экран, так как с ее помощью было всегда удобно тестировать с остановками в нужном месте при нажатии F12.

Может быть вы знаете какой-то альтернативный способ, как делать остановки в изменениях котировок в определенном месте в тестере? Тогда эти алерты были бы уже и не так актуальны, конечно. Останется тогда придумать, как работать еще с TimeLocal() и TimeCurrent() в тестере, если это возможно. 

Время в тестере моделируется. Выведите их принтом в журнал и смотрите чего они вам там пишут, тогда и поймёте.

Никогда не ставил тестер на паузу из советника, посему вот так прям быстро, и сейчас, по этому вопросу не отвечу. Наверное в сторону PostMessageW() нужно копнуть.

 
При тестировании в МТ4 всплыла ошибка (тестер остановился из-за нее) - ее не сохранил, но что-то типа "Array is out of range" и она оказалась реальной. Проблема в том что компилятор этого не увидел ни с "#property strict", ни без него, а в самом МТ4 она появилась только когда "#property strict" был включен в коде.

Еще один случай - переменная была задана как "int", ей присваивалось значение "0.0", но компилятор об этом не сообщил.
 
atztek:
При тестировании в МТ4 всплыла ошибка (тестер остановился из-за нее) - ее не сохранил, но что-то типа "Array is out of range" и она оказалась реальной. Проблема в том что компилятор этого не увидел ни с "#property strict", ни без него, а в самом МТ4 она появилась только когда "#property strict" был включен в коде.

Еще один случай - переменная была задана как "int", ей присваивалось значение "0.0", но компилятор об этом не сообщил.

1. На этапе компиляции невозможно определить, какого размера будут ваши массивы и к каким элементам вы будете обращаться. Это нужно проверять в коде.

2. 0.0 приводится к типу int и присваивается переменной. Или вы хотите предупреждение о возможной потере точности? ;) 

 
komposter:

1. На этапе компиляции невозможно определить, какого размера будут ваши массивы и к каким элементам вы будете обращаться. Это нужно проверять в коде.

2. 0.0 приводится к типу int и присваивается переменной. Или вы хотите предупреждение о возможной потере точности? ;) 


1. Размер массива известен (ArrayResize), например установлен размер массива "1", а затем в квадратные скобки подставляется переменная, величиной больше чем допустимая. Если нет стрикт-а то вообще никаких предупреждений не будет, а код будет работать неправильно.
2. Переменной int присваивается значение double, здесь (int) может быть случайной ошибкой, которую компилятор мог бы легко выявить.

Это то что я обнаружил в коде над которым работаю, больше не актуально, все это на усмотрение разработчиков.
 
Когда в редакторе открыто несколько окон с программами, тогда можно в меню правой кнопки мыши (на вкладке окна) выбрать команду "Открыть папку с файлом". А вот когда имеется только единственное окно в редакторе, то это меню недоступно. Хотелось бы в этом случае также иметь доступ к этой команде.
 
Bobs:
Когда в редакторе открыто несколько окон с программами, тогда можно в меню правой кнопки мыши (на вкладке окна) выбрать команду "Открыть папку с файлом". А вот когда имеется только единственное окно в редакторе, то это меню недоступно. Хотелось бы в этом случае также иметь доступ к этой команде.
Когда открыто только одно окно с кодом можно поступать так: в "Навигатор" правой кнопкой на редактируемом файле и выбрать "Открыть папку".
 
artmedia70:
Шайтан какой-то :D


Нашел! По Esc откручивается назад к курсору, если курсор был поставлен на это место при помощи команд поиска (F3, shift+F3), ну и экран прокручен выше-ниже. Когда курсор переставлен просто мышкой, тогда открутки нету.

Причина обращения: