Добрый день! Пытаюсь написать свой эксперт в котором мне необходимо отслеживать появление сформировавшегося бара. Но при тестировании эксперта я обнаружил что мой эксперт не всегда обнаруживает его. Как я выяснил причина оказалась в том, что индикатор CiTime не обновил свои значения. В чем причина ? Что я не так делаю?
Код класса моего эксперта
Код эксперта
Результат вызова
Причем если разкоментировать строчку в классе эксперта в методе OnTick()
то в результатах видно что за "пропавший период" приходили новые тика, а значение индикатора не обновилось
miroslavovich:
Причем если разкоментировать строчку в классе эксперта в методе OnTick()
то в результатах видно что за "пропавший период" приходили новые тика, а значение индикатора не обновилось
А Вы где смотрите результаты, в журнале тестера ? Туда не всё выводится. Надо смотреть в журнале агента.
Valmars:
А Вы где смотрите результаты, в журнале тестера ? Туда не всё выводится. Надо смотреть в журнале агента.
А где его можно посмотреть?
А где его можно посмотреть?
https://www.metatrader5.com/ru/terminal/help/algotrading/testing:
Контекстное меню
Контекстное меню данной вкладки позволяет выполнить следующие команды:
Открыть — открыть папку, содержащую лог-файлы журнала. При выполнении данной команды также происходит сброс текущих записей журнала в лог-файлы. Данные файлы хранятся в каталоге /tester/logs клиентского терминала. Имена файлов соответствуют дате формирования журнала — ГГГГММДД.LOG. Таким образом можно посмотреть предыдущие записи о работе терминала, во вкладке "Журнал" отображаются только последние записи;
Копировать — скопировать строку с информацией в буфер обмена для использования в других приложениях;
Просмотр — открыть окно специальной программы для просмотра лог-файлов;
Удалить журналы — удалить все журналы тестера стратегий (/tester/logs) и агентов тестирования (/tester/agent-*/logs). При выполнении данной команды удаляются все файлы журналов из указанных папок. Если файл журнала в текущий момент используется (открыт агентом или пользователем вручную), его удаление невозможно;
- Журналы локальных агентов — открыть подменю для просмотра записей журналов локальных агентов тестирования. При нажатии на названии агента в подменю будет открыто окно просмотра его лог-файла;
Результат тот же
Ну что ж, значит дело не в обновлении журнала. Кстати, откомпилировал Ваш же код, прогнал его в тестере, пропусков, подобных Вашим, в журнале не наблюдаю. У Вас последний билд терминала (478) установлен ? С 'Мастером' пока не разбирался, подождём разъяснений разработчика.
Обнаружил две ошибки:
1. В тестере провал в тиках несколько минут.
2. М.б. так и должно быть, но класс CExpert не был готов к такому повороту событий (моя вина).
Разбираюсь.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день! Пытаюсь написать свой эксперт в котором мне необходимо отслеживать появление сформировавшегося бара. Но при тестировании эксперта я обнаружил что мой эксперт не всегда обнаруживает его. Как я выяснил причина оказалась в том, что индикатор CiTime не обновил свои значения. В чем причина ? Что я не так делаю?
Код класса моего эксперта
Код эксперта
Результат вызова
Причем если разкоментировать строчку в классе эксперта в методе OnTick()
printf("Time(0) = %s %s ", TimeToString(Time(0),TIME_DATE),TimeToString(Time(0),TIME_MINUTES));
то в результатах видно что за "пропавший период" приходили новые тика, а значение индикатора не обновилось