Бета-версия платформы MetaTrader 5 build 1845: Функции для работы с барами в MQL5 и улучшения в тестере стратегий - страница 5

 
Nikolai Semko:

Было бы неплохо тогда до кучи добавить Ask и Bid  :)

давайте вообще все функции из четвёрки перетащим чтоб можно было уже открыть мкл4 файл в пятёрке и нажать скомпилировать не парясь
 
Aleksey Semenov:
давайте вообще все функции из четвёрки перетащим чтоб можно было уже открыть мкл4 файл в пятёрке и нажать скомпилировать не парясь

Это долго. Проще сделать так, что достаточно изменить расширение файла с 4->5, и всё готово :)

А вообще да, внедрение данных функций в пятёрку - хорошее решение

 
Тормоза снимаются. Значит поедем в светлое будущее. Направление изменений нравится. Радуюсь.
 
Конфигурация
MetaTrader 5 build 1845 started (MetaQuotes Software Corp.)
Windows 7 Service Pack 1 (build 7601), IE 11, Intel Core2 Duo  T7700 @ 2.40GHz, Memory: 2553 / 3582 Mb, Disk: 30 / 111 Gb, GMT+2
D:\Portable\MetaTrader 5
You are using 32-bit version of the program, please switch to 64-bit for best performance


Компиляция небольшого кода из КБ

generating code         0       0
0 error(s), 0 warning(s), compile time: 14207 msec              1       1


Не совсем понимаю, как теперь проверить код на отсутствие синтаксических ошибок? Раньше написал код, нажал F7 и подправил, если где опечатался. А теперь как?


В режиме отладки проверка того же кода занимает такое время

0 error(s), 0 warning(s), compile time: 480 msec                1       1

Но идет автоматический переход на Терминал с попыткой запуска. И если с советниками и индикаторами можно отменить там запуск и переключить на ME, то со скриптами не всегда такое возможно.


Просьба добавить быструю проверку кода, как это делается по F5, но без запуска отладки. Сейчас случайно нажимаешь на F7 и не знаешь даже, как прервать длительный процесс компиляции.

 
fxsaber:

Не совсем понимаю, как теперь проверить код на отсутствие синтаксических ошибок? Раньше написал код, нажал F7 и подправил, если где опечатался. А теперь как?

MetaTrader 5\Config\metaeditor.ini

[Experts]
Optimize=0
Неплохо бы вынести этот параметр в виде кнопки на панель Эдитора.
 
Andrey Khatimlianskii:

MetaTrader 5\Config\metaeditor.ini

Неплохо бы вынести этот параметр в виде кнопки на панель Эдитора.

Спасибо. Да, часто бывает, что нужно быстро накидать несколько вариантов алгоритмов, делающих одно и то же, чтобы понять, какой из них оптимальней (время/память). Для этого нужна оптимизация компилятора, а сам код короткий и время компиляции не заметно. Однако, перегружать для этого ME, внося исправления в ini - действительно, костыльно. Вариант CTRL+F7 видится удобным.

 
fxsaber:

Однако, перегружать для этого ME, внося исправления в ini - действительно, костыльно. Вариант CTRL+F7 видится удобным.

Перегружать не нужно. Видимо, конфиг читается перед каждой компиляцией.

Мне было бы удобно с Shift-ом

 
Andrey Khatimlianskii:

Перегружать не нужно. Видимо, конфиг читается перед каждой компиляцией.

Спасибо, повешу bat-ник на горячую клавишу...

 
Nikolai Semko:

Было бы неплохо тогда до кучи добавить Ask и Bid  :)

я когда то лет 5-6 назад просил в МТ5 перегрузку операций в классы, Ренат сказал, не ждите и не будет, потом 3 года не занимался MQL, глянул в справку а там Перегрузка операций

главное верить и ждать... мечты сбываются! :)

ну и авансом, а вдруг и у меня сбудется мечта:

я считаю, что было бы удобно прерывать выполнение MQL-программы в любом месте, некий HLT - команду останова

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

... буду ждать )))

 
Igor Makanu:

 прерывать выполнение MQL-программы в любом месте, некий HLT - команду останова

ExpertRemove()

Для индикаторов такого, к сожалению, нет.

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