Скачать MetaTrader 5

Смотри, как бесплатно скачать роботов

Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят

Понравился скрипт?
Оцени его работу в терминале MetaTrader 5

2009.08.26 04:56
Библиотеки

Точка остановки, пауза и прогресс-индикатор - библиотека для MetaTrader 4

Просмотров:
2054
Рейтинг:
голосов: 5

Библиотека BreakPoint.dll содержит 3 простых функции для отладки и контроля за ходом выполнения MQL4.

int PauseTester();
int BreakPoint(string text);
int ShowProgress(string Text, int Percents);

PauseTester - программным образом производит нажатие на кнопку Паузы тестера, что удобно для остановки в заранее известные моменты, с произвольной дискретизацией по времени. Если тестер работает не в визуальном режиме или по каким-либо причинам не удалось найти соответствующее окно МетаТрейдера, выдается сообщение об ошибке, при этом выполнение программы приостанавливается. Если в диалоге нажать кнопку Отмена, вывод последующих сообщений об ошибке будет подавляться.

BreakPoint - приостанавливает выполнение программы и выводит диалог с указанным текстовым сообщением. Диалог имеет три кнопки: по нажатию Да будет продолжено выполнение программы, и точка останова останется активной (т.е. в следующий раз на ней снова будет выдан диалог), по нажатию Нет - точка останова перестанет действовать (т.е. диалоге будут подавляться), по нажатию кнопки Отмена функция возвращает значение 1 - признак того, что пользователь, например, хочет исключить из работы фрагмент кода с точкой остановки. По нажатию кнопок Да и Нет функция возвращает 0. Логика обработки возвращаемых значений целиком зависит от кода MQL4.

Если вывод диалогов был отключен, можно его затем вновь включить, нажав клавишу Shift.

ShowProgress - выводит заданное сообщение и процент выполнения какого-либо процесса в заголовке активного MDI-окна МетаТрейдера. Первый раз функцию необходимо вызвать со значением процентов равным 0 до начала обработки - таким образом производится инициализация прогресс-индикатора. Затем в цикле с обсчетом чего-либо можно произвольное число раз вызвать функцию с текущим процентом выполнения. Убирается прогресс-индикатор, когда ему передается значение процентов больше 100. По-умолчанию функция возвращает 0. Если во время выполнения цикла, в котором используется функция, пользователь нажмет Shift+Esc, индикатор убирается, а ShowProgress возвращает 1, что позволяет прервать выполнение целиком или только для конкретного цикла. Это бывает нужно, во-первых, в тестере, где кнопка Стоп не позволят пропустить часть расчетов, а прерывает выполнение целиком, а во-вторых, при использовании длительно рассчитываемых фрагментов кода в рыночных окнах МетаТрейдера. Наверняка все встречали и индикаторы, и эксперты, которые фактически подвешивали терминал, причем прервать их нельзя. Использование данной функции позволяет не беспокоиться о том, что какие-либо неправильно переданные в MQL4-код параметры приведут к зацикливанию или потребуют неожиданно долгого ожидания, прежде чем их (параметры) удастся откорректировать.


Пример прогресс-индикатора

Приложенные файлы:

  • BreakPoint.dll - сама библиотека (необходимо положить в папку libraries);
  • BreakPoint.mqh - заголовочный файл для библиотеки (необходимо положить в папку include);
  • BreakPointCppSrc.zip - архив с исходным кодом на Си;
  • BreakPointTest.mq4 - пример использования функций библиотеки в эксперте.

Также пример использования прогресс-индикатора можно найти в библиотеке OptimaticLib, которая выполняет длительные вычисления.

Конечно же, это не первая и не последняя библиотека с подобными функциями. Я знаю некоторые другие, но мне было удобнее реализовать собственную. ;-)

Как любой софт, библиотека распространяется по принципу "как есть" - ошибки и несоответствие чьим-либо ожиданиям допускаются.

YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя

Скрипт рисует уровни Рудолфа Акселя

YURAZ_CLOSEPRC_V1 YURAZ_CLOSEPRC_V1

Закрытие всех открытых позиций одним кликом либо закрытие всех позиций при достижении указанного профита в процентах от депозита

Мультипериодный индикатор MK_LaguerreMultiPeriodV2 Мультипериодный индикатор MK_LaguerreMultiPeriodV2

Обычный Laguerre на нескольких таймфреймах одновременно.

AskBid Line AskBid Line

AskBid Line — простейший индикатор, отображающий цену Ask или Bid в виде пунктирной линии на истории.