Нужен ли режим тестирования по ценам открытия текущего таймфрейма? (как в МТ4) - страница 14

 
gpwr:

...

P.S. Послал заявку в сервисдеск. Мне интересно узнать опыт разработчиков отправляющих многовалютные эксперты на чемпионат. Их проверка по истории используя режим тестирования "опен прайс" практически неверна. 

Попробуйте по времени открытия баров проверять факт наступления нового бара.
 
tol64:
Попробуйте по времени открытия баров проверять факт наступления нового бара.
А разве я так уже не делаю в указанном мною коде? По каждому символу в OnTick проверяется новый бар. Только при новом баре проверяются условия открытия/закрытия позиций и посылаются ордера. Только почему-то время исполнения этих ордеров зависит от того какой символ выбран на чате во время тестирования, с точностью до одного бара. То есть сделки задерживаются на один бар если символ на чате не совпадает с символом по которому торгуем.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
gpwr:
А разве я так уже не делаю в указанном мною коде? По каждому символу в OnTick проверяется новый бар. Только при новом баре проверяются условия открытия/закрытия позиций и посылаются ордера. Только почему-то время исполнения этих ордеров зависит от того какой символ выбран на чате во время тестирования, с точностью до одного бара. То есть сделки задерживаются на один бар если символ на чате не совпадает с символом по которому торгуем.
Вы по количеству баров проверяете. Поищите "технологию индикаторов-шпионов для реализации мультивалютного режима". На мой взгляд самый лучший вариант на текущий момент. ))
 
tol64:
Вы по количеству баров проверяете. Поищите "технологию индикаторов-шпионов для реализации мультивалютного режима". На мой взгляд самый лучший вариант на текущий момент. ))
Нашёл. Буду изучать. Пока попробовал проверять время текущего бара для данного символа, полученного путём CopyTime, со временем текущего бара, полученным на предыдущих вызовах OnTick. Всё равно тестер задерживает все сделки на один бар при символе на чате отличающемся от торгуемого символа. Неужели так задумавалось разработчиками?
 
gpwr:
Нашёл. Буду изучать. Пока попробовал проверять время текущего бара для данного символа, полученного путём CopyTime, со временем текущего бара, полученным на предыдущих вызовах OnTick. Всё равно тестер задерживает все сделки на один бар при символе на чате отличающемся от торгуемого символа. Неужели так задумавалось разработчиками?
Я уже точно не помню, но вроде бы до того, как режим "Только цены открытия" сделали более быстрым (по аналогии с MT4), этого не было (могу ошибаться). Я сам всегда сначала добиваюсь идентичных результатов во всех режимах и когда убеждаюсь, что цель достигнута, спокойно тестирую в режиме "Только цены открытия", так как он самый быстрый. Без индикаторов-шпионов самый оптимальный вариант тестировать в режиме "OHLC на M1". Но это уже существенно медленнее. Было бы здорово, если бы был мультивалютный OnTick(). Это всё уже обсуждалось и не помню уже, чем закончилось. Может быть нас когда-нибудь этим обрадуют, но лучше не ждать, а использовать уже то, что есть.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
tol64:
Я уже точно не помню, но вроде бы до того, как режим "Только цены открытия" сделали более быстрым (по аналогии с MT4), этого не было (могу ошибаться). Я сам всегда сначала добиваюсь идентичных результатов во всех режимах и когда убеждаюсь, что цель достигнута, спокойно тестирую в режиме "Только цены открытия", так как он самый быстрый. Без индикаторов-шпионов самый оптимальный вариант тестировать в режиме "OHLC на M1". Но это уже существенно медленнее. Было бы здорово, если бы был мультивалютный OnTick(). Это всё уже обсуждалось и не помню уже, чем закончилось. Может быть нас когда-нибудь этим обрадуют, но лучше не ждать, а использовать уже то, что есть.
Мне конечно детали воплощения тестера не знакомы. Но интуитивно, если тестер может подгружать котировки из не-чатовой пары, проверять время нового бара этой пары и ставить сделки на 1 бар позже, то почему бы не ставить их на правильных барах, т.е. без задержки на 1 бар? Просто сдвинуть все сделки на 1 бар. Неужели от этого скорость тестера по ценам открытия понизится? Хотелось бы услышать от администрации что это фича, а не ошибка, которую никак невозможно исправить.
 
gpwr:
Мне конечно детали воплощения тестера не знакомы. Но интуитивно, если тестер может подгружать котировки из не-чатовой пары, проверять время нового бара этой пары и ставить сделки на 1 бар позже, то почему бы не ставить их на правильных барах, т.е. без задержки на 1 бар? Просто сдвинуть все сделки на 1 бар. Неужели от этого скорость тестера по ценам открытия понизится? Хотелось бы услышать от администрации что это фича, а не ошибка, которую никак невозможно исправить.
Так делать нельзя, потому что Вы будете заглядывать в будущее. Если, например, новый бар по GBPUSD сформируется только через 5 секунд после бара по EURUSD, а вы уже в момент наличия бара EURUSD хотите знать цену открытия бара по GBPUSD, т.е. из будущего - получится "машина времени" - инструмент для получения других, более критичных, ИМХО, побочных эффектов.
 
gpwr:
Мне конечно детали воплощения тестера не знакомы. Но интуитивно, если тестер может подгружать котировки из не-чатовой пары, проверять время нового бара этой пары и ставить сделки на 1 бар позже, то почему бы не ставить их на правильных барах, т.е. без задержки на 1 бар? Просто сдвинуть все сделки на 1 бар. Неужели от этого скорость тестера по ценам открытия понизится? Хотелось бы услышать от администрации что это фича, а не ошибка, которую никак невозможно исправить.

Используйте  таймер, "все уже украдено до вас" - Основы тестирования в MetaTrader 5.

Функция OnTimer() в тестере

В MQL5 возможна обработка событий таймера. Вызов обработчика OnTimer() производится независимо от режима тестирования. Это означает, что если тестирование запущено в режиме "Только цены открытия" на периоде H4 и внутри эксперта установлен таймер с вызовом каждую секунду, то на открытии каждого H4  бара один раз будет вызван обработчик OnTick() и 14400 раз (3600 секунд * 4 часа)  в течение бара будет вызван обработчик OnTimer(). Насколько при этом увеличится время тестирования эксперта, зависит от логики эксперта.


 
Rosh:

Используйте  таймер, "все уже украдено до вас" - Основы тестирования в MetaTrader 5.

Уже пробовал. Не помогает. Если использовать таймер с периодом таймфрейма (60*15 секунд), то сделки ставятся на 15 минут позже как при использовании OnTick и цен открытия. Если уменьшать период таймера, то соответственно время сделок становится ближе и ближе к времени сделок "своего символа на чате", но также существенно уменьшается скорость тестера. При периоде таймера в 1 сек, всё работает правильно. но долго, как и в по-тиковом тестировании. Получается что быстрый тестер только быстрый для одновалютных советников. Жалко что тестирование многовалютных советников не так хорошо продумано в 5-ке.
Причина обращения: