Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

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

Просмотров:
4252
Рейтинг:
(9)
Опубликован:
2009.08.26 04:56
Обновлен:
2014.04.21 14:54
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Библиотека 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, которая выполняет длительные вычисления.

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

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

Price Channel Price Channel

Индикатор ценового канала. Рисует линию максимумов и минимумов за последние N дней. Ранее похожий индикатор уже был опубликован. Этот отличается тем, что позволяет задать нужный таймфрейм и разный период для верхней и нижней линии.

Каналы на экстремумах Каналы на экстремумах

6 вариантов построения каналов на 6-ти известных индикаторах: Aroon, DeMarker, Moving Average, RSI, Parabolic SAR, Stochastic.

Библиотека Optimatic Библиотека Optimatic

Оптимизация параметров эксперта на лету - мечта трейдера

Библиотека статистических функций Statistica.mqh Библиотека статистических функций Statistica.mqh

Данная библиотека состоит из 40 функций, которые могут помочь в статистических вычислениях.