28 !!! валютных пар, 1 эксперт. Опять грааль, но такого помоему еще никто не показывал. + ДЕМО СЧЕТ - страница 11
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Про "Трое отважных":
http://www.libex.ru/detail/book74148.html
Парад картинок без исходников и доказательств...
2 Rosh
В своем советнике, приведенном на 5-й странице, Вы проверяли на несовпадение Bid и Close всех т/ф. Отсутствие таких несовпадений Вы трактуете, как подтверждение того, что в тестере заглядывание в будущее невозможно. Мне еще тогда показалась странной эта связка. С моей точки зрения тестировать надо не поведение Close, а поведение High и Low вышестоящих т/ф. А после приведенного выше не слишком справедливого упрека, прозвучавшего от MQ, решил все-таки посвятить этому некоторое время. Хоть и с опозданием.
Ниже приведен код советника, который сам формирует текущие High и Low часа или дня на минутном графике. Затем на каждом тике он сравнивает их с High и Low часа или дня, полученных с т/ф Н1 или D1. В случае расхождений выводит данные в журнал и в файл.
А это кусок журнала, полученного при прогоне этого советника на EURUSD, M1 в период с 2007.07.10 по 2007.07.14. Как можно понять из текста советника, сравнение шло с дневными данными. Однако при сравнении с часовыми данными ситуация не лучше. Я хотел получить подтверждение возможности заглядывания в будущее или убедиться, что такой возможности нет. Однако, получилось нечто совершенно третье.
Как видно из картинки, время, которое печатает в журнале тестер, и время, которое выводит советник, периодически отличаются друг от друга. Кроме того, происходят какие-то непонятные возвраты назад. В приведенном куске время тестера 2007.07.13 00:58 встречается четыре раза между моментами времени 2007.07.12 00:58, 2007.07.13 00:02, 2007.07. 13 00:04, 2007.07.13 00:06 и 2007.07.13 00:07. И каждый раз советник в этот момент выводит 2007.07.12 23:58:59.
Возможно, что сопутствующее несоответствие данных по High и Low в эти моменты спровоцированы как раз этими сбоями по времени.
Кроме того, советую обратить внимание на тестовую печать в файл, которая стоит в функции init(). Эта печать показывает, что в тестере не работают секунды. Соответственно не работают TimeToStr() в режиме секунд и функция TimeSeconds(). Может быть это так и задумано, но тогда зачем и тестер, и советник печатают данные с секундами ?
Вопрос о несоответствии данных по High и Low даже не ставлю, поскольку совершенно непонятно откуда эти данные брались в это непонятное время.
И еще. Почему-то при тестировании в интервале с 2007.07.09 по 2007.07.14, а не с 2007.07.10 по 2007.07.14 сыпется какая-то непонятная ерунда - данные со старших т/ф вообще не получаются, то есть переменные HiH1 и LoH1 все время имеют нулевое значение.
Может это я где ошибся ?
Я прогнал Вашего эксперта не изменив ничего в коде. Вот все данные из файла. которые он вывел:
2007.07.12 23:58:00 0 58 23 12
2007.07.13 00:58:00 0 58 0 13
2007.07.13 00:02:00 0 2 0 13
2007.08.13 09:54:48 2007.07.10 00:00 Simple Prospection EURUSD,M1: Период тестирования 1 минут
2007.08.13 09:54:48 Simple Prospection started for testing
2007.08.13 09:54:45 Simple Prospection: loaded successfully
2007.08.13 10:13:04 2007.07.10 00:00 Simple Prospection EURUSD,M1: Период тестирования 1 минут
2007.08.13 10:13:04 Simple Prospection started for testing
Но перед этим были выводы ошибок в лог:
2007.08.13 10:08:19 1999.05.26 02:01 Simple Prospection GBPUSD,M1: Работа закончена
2007.08.13 10:08:18 1999.01.04 09:31 Simple Prospection GBPUSD, M1: 1999.01. 04 09:31:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:30 Simple Prospection GBPUSD, M1: 1999.01. 04 09:30:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:29 Simple Prospection GBPUSD, M1: 1999.01. 04 09:29:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:28 Simple Prospection GBPUSD, M1: 1999.01. 04 09:28:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:27 Simple Prospection GBPUSD, M1: 1999.01. 04 09:27:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:26 Simple Prospection GBPUSD, M1: 1999.01. 04 09:26:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:25 Simple Prospection GBPUSD, M1: 1999.01. 04 09:25:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:24 Simple Prospection GBPUSD, M1: 1999.01. 04 09:24:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:23 Simple Prospection GBPUSD, M1: 1999.01. 04 09:23:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:22 Simple Prospection GBPUSD, M1: 1999.01. 04 09:22:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:21 Simple Prospection GBPUSD, M1: 1999.01. 04 09:21:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:20 Simple Prospection GBPUSD, M1: 1999.01. 04 09:20:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:19 Simple Prospection GBPUSD, M1: 1999.01. 04 09:19:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:18 Simple Prospection GBPUSD, M1: 1999.01. 04 09:18:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:17 Simple Prospection GBPUSD, M1: 1999.01. 04 09:17:00, curHi=1.6701, HiH1=1.6701, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:16 Simple Prospection GBPUSD, M1: 1999.01. 04 09:16:00, curHi=1.6701, HiH1=1.6701, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:15 Simple Prospection GBPUSD, M1: 1999.01. 04 09:15:00, curHi=1.6687, HiH1=1.6687, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:14 Simple Prospection GBPUSD, M1: 1999.01. 04 09:14:00, curHi=1.6687, HiH1=1.6687, curLo=1.6682, LoH1=1. 6686
2007.08.13 10:08:18 1999.01.04 09:13 Simple Prospection GBPUSD, M1: 1999.01. 04 09:13:00, curHi=1.6682, HiH1=1.6697, curLo=1.6682, LoH1=1. 6597
2007.08.13 10:08:15 1999.01.04 09:13 Simple Prospection GBPUSD,M1: Период тестирования 1 минут
2007.08.13 10:08:15 Simple Prospection started for testing
Я скачал то данные по EURUSD, а запустил тестирование по GBPUSD, который не был подкачана и пересчитан. В этом и была причина нестыковок.
По поводу секунд будем разбираться, спасибо.
Привет, Rosh !
Спасибо за ответ. Насколько я Вас понял, Вы полагаете, что несовпадение данных по High и Low с разных т/ф связано с качеством котировочного потока. То есть на разных т/ф свечи формируются по разному и, в результате, могут быть отличия на 1-2-3 пункта. Вполне возможно.
Я тестировал на данных демо-сервера MQ. Причем я пишу их не в режиме реального времени, а закачиваю все т\ф раз в неделю, в выходные. Вообще-то я полагал, что построение свечей на всех т\ф, по крайней мере на сервере, делается программно, серверным софтом, синхронно для всех т/ф, на основе единого котировочного потока и, поэтому, такие расхождения невозможны. Если это не так, жаль, придется это как-то учитывать ... Причесывание данных, синхронизация и т.п. для того чтобы все выглядело красиво - это, по-моему, неправильный путь. Что ваш сервер, что серверы брокеров поставляют данные в том виде, в котором поставляют. И торговать приходится именно на таких данных, а не на том, во что они превращаются через время. Для процесса тестирования это особенно важно. Всем ведь известна проблема граалей - космос в тестере и слив в реале. Откуда она берется ? MQ настаивает на том, что заглядывание в будущее невозможно и что моделирование тиков вполне отвечает процессу. Надо полагать, что это так и есть. Следовательно, действительно, проблема в данных ? Решить эту проблему MQ не может, данные от нее не зависят. Тогда необходимо сделать так, чтобы тестер корректно работал на любых данных, а не только на тех, которые аккуратно причесали.
Но пост мой был посвящен не расхождению данных с разных т/ф, а непоняткам со временем. И то, что Вы опубликовали, вопроса не снимает. Наоборот, в связи с Вашим постом хочу спросить следующее.
В моем журнале данные времени как тестера, так и советника содержат секунды. В Вашем - данные тестера секунд не содержат вообще, а данные советника содержат только нулевые значения секунд. В связи с этим возникает вопрос: в каком режиме вы проводили тестирование. Хочу уточнить - данный советник предназначен для тестирования только в режиме "все тики". И ошибка, на которую я наткнулся, может быть воспроизведена только из этого режима. Поэтому, если Вы тестировали в другом режиме, прошу Вас повторить тест, благо это займет секунды.
В принципе совершенно все равно на какой паре и в каком диапазоне дат проводить тестирование. А на т/ф отличных от М1 советник работать не будет. Однако, для возможности сравнения наших результатов, я прошу Вас выполнить тест на EURUSD в диапазоне с 2007.07.10 по 2007.07.14, и, отдельным тестом, в диапазоне с 2007.07.09 по 2007.07.14.
Заранее благодарю.
Привет, Rosh !
моем журнале данные времени как тестера, так и советника содержат секунды. В Вашем - данные тестера секунд не содержат вообще, а данные советника содержат только нулевые значения секунд. В связи с этим возникает вопрос: в каком режиме вы проводили тестирование. Хочу уточнить - данный советник предназначен для тестирования только в режиме "все тики". И ошибка, на которую я наткнулся, может быть воспроизведена только из этого режима. Поэтому, если Вы тестировали в другом режиме, прошу Вас повторить тест, благо это займет секунды.
В принципе совершенно все равно на какой паре и в каком диапазоне дат проводить тестирование. А на т/ф отличных от М1 советник работать не будет. Однако, для возможности сравнения наших результатов, я прошу Вас выполнить тест на EURUSD в диапазоне с 2007.07.10 по 2007.07.14, и, отдельным тестом, в диапазоне с 2007.07.09 по 2007.07.14.
Заранее благодарю.
Действительно, сейчас поглядел и увидел, что у меня секунд не было. Это все же связано (я думаю), что по GBPUSD у меня не были подкачаны автоматом данные для часовок и дневок в первый раз тестирования (у меня вообще графики по нему не открыты в том терминале), а вот во второй раз сейчас я хотел проверить и уже ни одной ошибки -необходимые данные были подкачаны в период первого запуска тестирования.
По поводу секунд будем разбираться, спасибо.
Ошибку с секундами исправили (в компиляторе). Исправленный билд скоро будет доступен.
Ошибку с секундами исправили (в компиляторе). Исправленный билд скоро будет доступен.
Ошибку с секундами исправили (в компиляторе). Исправленный билд скоро будет доступен.