Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 4310
- Рейтинг:
- Опубликован:
- 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](https://c.mql5.com/i/code/indicator.png)
Индикатор ценового канала. Рисует линию максимумов и минимумов за последние N дней. Ранее похожий индикатор уже был опубликован. Этот отличается тем, что позволяет задать нужный таймфрейм и разный период для верхней и нижней линии.
![Каналы на экстремумах](https://c.mql5.com/i/code/indicator.png)
6 вариантов построения каналов на 6-ти известных индикаторах: Aroon, DeMarker, Moving Average, RSI, Parabolic SAR, Stochastic.
![Библиотека Optimatic](https://c.mql5.com/i/code/library.png)
Оптимизация параметров эксперта на лету - мечта трейдера
![Библиотека статистических функций Statistica.mqh](https://c.mql5.com/i/code/library.png)
Данная библиотека состоит из 40 функций, которые могут помочь в статистических вычислениях.