MegaVoin: Не очень понимаю что значит "на демо-счете (не тестере)".
Ну, это просто. Откройте на демо-счете график с нужной парой символ-период (например, EURUSD, 10 min) и присоедините к этому графику Ваш эксперт. Затем посмотрите логи в разделе "Инструменты" (Ctrl+T), вкладка "Эксперты".
Иду в вид/тестер стратегий. Запускаю свой советник с 01.01.2012, получаю ошибку.
Запускаю с 01.01.2011 по сегодня. Все проходит без проблем.
почитайте про основы тестирования: https://www.mql5.com/ru/articles/239
Цитата
Агент тестирования закачивает только недостающую историю с небольшим запасом, чтобы обеспечить необходимые данные на истории для расчета индикаторов на момент начала тестирования. Минимальный объем истории при скачивании с торгового сервера для таймфреймов D1 и меньше составляет один год. Таким образом, если запускается тестирование на интервале 2010.11.01-2010.12.01 (тестирование на интервале в один месяц) с периодом M15 (каждый бар равен 15 минутам), то у терминала будет запрошена история по инструменту за весь 2010 год.
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
Yedelkin: Ну, это просто. Откройте на демо-счете график с нужной парой символ-период (например, EURUSD, 10 min) и присоедините к этому графику Ваш эксперт. Затем посмотрите логи в разделе "Инструменты" (Ctrl+T), вкладка "Эксперты".
Работает. Вывел в лог результат вычисления этой функции. Выводится каждый тик, результат похож на правду.
Yedelkin: Ну, уже хорошо! :) Теперь попробуйте посмотреть ссылки про тестирование, указанные выше. Они - аналогичные, текст статьи перенесли в Справочник.
Прочитал внимательно. Решения не нашел. Все что понял, это то, что если что-то не подгружено, то подгрузится автоматически при обращении к данным.
Решил проблему по-другому. Вроде заработало. Но способ решения мне не сильно нравится. Криво это как-то. Поменял во всей программе _Period на PERIOD_M10 и поменял тестировщике таймфрейм с 10 минут на 1 месяц.
MegaVoin: Прочитал внимательно. Решения не нашел. Все что понял, это то, что если что-то не подгружено, то подгрузится автоматически при обращении к данным.
Там говорится о том, что "агент тестирования получает от терминала историю по тестируемому инструменту". Чуть ниже говорится о возможности принудительной загрузки истории в терминал и даётся ссылка. Чтобы не париться с вопросом о том, имеется ли в наличии история нужной глубины, можно попробовать вставить в функцию OnInit() программы скрипт принудительной закачки истории с указанием нужного таймфрейма и посмотреть результат. Т.е. посмотреть, закачает ли этот скрипт историю месячных таймфреймов, работая в тестере.
То есть на демо-счете (не в тестере) тоже возникает такая ошибка?
А про историю для тестирования лучше почитать в разделе "Тестирование торговых стратегий".
Не очень понимаю что значит "на демо-счете (не тестере)".
Файл/логин - здесь у меня новый тестовый счет сервера "MetaQuotes-Demo".
Иду в вид/тестер стратегий. Запускаю свой советник с 01.01.2012, получаю ошибку.
Запускаю с 01.01.2011 по сегодня. Все проходит без проблем.
Иду в вид/тестер стратегий. Запускаю свой советник с 01.01.2012, получаю ошибку.
Запускаю с 01.01.2011 по сегодня. Все проходит без проблем.
почитайте про основы тестирования: https://www.mql5.com/ru/articles/239
Цитата
Агент тестирования закачивает только недостающую историю с небольшим запасом, чтобы обеспечить необходимые данные на истории для расчета индикаторов на момент начала тестирования. Минимальный объем истории при скачивании с торгового сервера для таймфреймов D1 и меньше составляет один год. Таким образом, если запускается тестирование на интервале 2010.11.01-2010.12.01 (тестирование на интервале в один месяц) с периодом M15 (каждый бар равен 15 минутам), то у терминала будет запрошена история по инструменту за весь 2010 год.
Ну, это просто. Откройте на демо-счете график с нужной парой символ-период (например, EURUSD, 10 min) и присоедините к этому графику Ваш эксперт. Затем посмотрите логи в разделе "Инструменты" (Ctrl+T), вкладка "Эксперты".
Работает. Вывел в лог результат вычисления этой функции. Выводится каждый тик, результат похож на правду.
Значит глюк именно в тестере.
Ну, уже хорошо! :) Теперь попробуйте посмотреть ссылки про тестирование, указанные выше. Они - аналогичные, текст статьи перенесли в Справочник.
Прочитал внимательно. Решения не нашел. Все что понял, это то, что если что-то не подгружено, то подгрузится автоматически при обращении к данным.
Решил проблему по-другому. Вроде заработало. Но способ решения мне не сильно нравится. Криво это как-то. Поменял во всей программе _Period на PERIOD_M10 и поменял тестировщике таймфрейм с 10 минут на 1 месяц.
Предлагают вызвать SymbolSelecе, таймфрейма при его вызове к сожалению нет :(bool SymbolSelect(
string name, // имя символа
bool select // включить или выключить
);
string name, // имя символа
bool select // включить или выключить
);
Речь идёт вот про этот скрипт "int CheckLoadHistory(string symbol,ENUM_TIMEFRAMES period,datetime start_date)"
Он изложен вот здесь https://www.mql5.com/ru/docs/series/timeseries_access
Речь идёт вот про этот скрипт "int CheckLoadHistory(string symbol,ENUM_TIMEFRAMES period,datetime start_date)"
Он изложен вот здесь https://www.mql5.com/ru/docs/series/timeseries_access
Попозже поробую.
Спасибо большое за помощь!