Результаты тестирования мультивалютных экспертов - страница 2

 
Yedelkin:

Если так, то не очень понял фразы типа "Тест на инструменте EURUSD  с графика GBPUSD". Какой символ в данном случае служит источником сигнала, а на какой символ прикреплён обработчик сигнала? 

Из имеющтихся вариантов логично предположить что первый символ рабочий, а со второго получаются сигналы и производится торговля.
 
Interesting:
Из имеющтихся вариантов логично предположить что первый символ рабочий, а со второго получаются сигналы и производится торговля.
Типа, второй символ является источником сигнала, на основании которого обработчик сигнала ведёт торговлю? Но тогда сравниваются сигналы, исходящие от разных символов. О какой идентичности результатов торговли может идти речь?
 
Interesting:
Нужно учитывать возможное запаздывание обработки событий, или даже возможной ПОТЕРИ события.

Конечно же это тоже нужно учитывать. В программе предназначенной для торговли в автоматическом режиме нужно учитывать всё. По крайней мере на сколько это возможно. На данный момент есть два режима: Обычный и Произвольная задержка. Разработчики уже озвучили то, что они постепенно будут ещё более приближать тестирование к реальности. Это радует. Иллюзии нужно резать в корне.

 Представленные результаты получены в Обычном режиме. Для этого теста нужен был именно этот вариант.

 

papaklass

Из приведенных кодов не ясно как Вы открываете позиции (отложники или с рынка). Посмотрите в своих тестах время открытия и закрытия позиций и соответсвенно цены открытия/закрытия. Предположу, что они будут отличаться. Это и есть причина расхождения результатов. 

Позиции открываются с рынка. Предположение Ваше было бы верным, если бы ни в одном из методов не было идентичных результатов. Но по таймеру результаты совпадают точно. 

 Yedelkin

Типа, второй символ является источником сигнала, на основании которого обработчик сигнала ведёт торговлю? Но тогда сравниваются сигналы, исходящие от разных символов. О какой идентичности результатов торговли может идти речь? 

Нет. Фраза "Тест на инструменте EURUSD с графика GBPUSD" означает, что торговля ведётся по EURUSD, но эксперт при этом находится на графике GBPUSD. Все результаты по EURUSD, я просто переключался с одного символа на другой.

----- 

Данные одни, условия не меняются, параметры одни и те же, режимы тестирования те же. Результаты должны быть одинаковыми. Единственное отличие в том, на каком инструменте находится эксперт. Нужно только реализовать метод, который будет корректно проводить тест. Он есть. Это функция OnTimer() с минимальным интервалом. Но он самый долгий. Следующий по приоритету идёт OnChartEvent(). Но он показывает некорректный результат. Возможно, что я неправильно использую этот метод. Тогда как правильно? Глядя на код всё выглядит логично, но не работает.

 

tol64:

...... Нужно только реализовать метод, который будет корректно проводить тест. Он есть. Это функция OnTimer() с минимальным интервалом. Но он самый долгий.  ...

Мне кажется 10 сек  слишком маленький интервал. Если интересуют только сформированные бары, интервал должен быть не менее минуты.

Нет смысла делать короче, минута это минимальный разумный интервал..

 
papaklass:
Не совпадение результатов при открытии позиций по барам и совпадение результатов при открытии позиций по таймеру, наоборот, подтверждает мое предположение. Когда Вы открываете позиции по таймеру (тем более с рынка, а не отложниками по фиксированной цене), то время открытия позиций совпадает, а значит совпадает цена. Если же Вы открываетесь по барам, то за счет того, что время формирования бара на разных графиках не одинаково, у Вас при открытии позиций происходит сдвиг по времени. Значит есть и сдвиг по цене. Вот этот сдвиг и дает расхождение результатов. Сравните время открытия позиций и цены по которым они открывались. Вы увидете расхождение.

Это всё понятно.

У меня тут мысля бродит в связи со всей этой эпопеей : а не предложить ли метаквотам добавить режим тестирования "по ценам закрытия"  ?

Это решило бы проблемы с синхронизацией котировок при тестировании по сформированным барам (не по тикам).

 
MetaDriver:

Это всё понятно.

У меня тут мысля бродит в связи со всей этой эпопеей : а не предложить ли метаквотам добавить режим тестирования "по ценам закрытия"  ?

Это решило бы проблемы с синхронизацией котировок при тестировании по сформированным барам (не по тикам).

 

Нет.

Как в реальной жизни (не в тестере) вы определите: "Вот момент закрытия бара"? 

 
stringo:

Нет.

Как в реальной жизни (не в тестере) вы определите: "Вот момент закрытия бара"? 

По часам.  И не спорьте со мной - только карму испортите. ;)

Разница между  тестированием по таймеру и тестированием "по ценам закрытия" будет лишь в том, что дискретизацию времени (и пропускание выходных и праздничных) можно будет производить только один раз - при генерации FXT-файла.  После чего вся оптимизация будет происходить по готовым временным точкам, которые не нужно высчитывать в таймере на каждом прогоне.
Вы должны это сделать - хотя бы из любви к прекрасному!

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
MetaDriver:

Мне кажется 10 сек  слишком маленький интервал. Если интересуют только сформированные бары, интервал должен быть не менее минуты.

Нет смысла делать короче, только тормозить.

Да, я согласен. Но до 10 секунд я опустился перебирая варианты от интервала D1 (86400 секунд). Всё, что выше 10 секунд показывало несоответствие, тем большее, чем больше интервал. Для меня нужна максимальная точность. Такая, как будто одна и та же копия эксперта находится на всех символах одновременно. В принципе в реале можно так и торговать. Но перед тем, как начать торговать нужно ведь всё адекватно протестировать. До этого, пока писал систему на MQL4, я тестировал каждый инструмент отдельно и данные выгружал в Excel. Все расчёты и анализ полученных результатов производил там же. К сожалению на сегодняшний день терминал не даёт возможности проанализировать полученные результаты в полной мере. Поэтому я всё это делал в Excel. 

Вот например, что мне нужно, чтобы правильно оценить результаты тестов:

 

А затем результаты всех инструментов выводятся на другой график, на котором я вижу совокупный результат.

 

А после этого в завершение применяется система управления капиталом:

 

При чём параметры можно менять и обновить результат. То есть система управления капиталом настраивается. И всё это в Excel. 

А после этого я начал изучать MQL5, так как всё это можно делать быстрее. )) Хотелось бы, чтобы разработчики терминала реализовали вот такое представление результатов тестов. Это была бы тогда супер мировая торговая платформа.))

 
MetaDriver:

По часам.  И не спорьте со мной - только карму испортите. ;)

 

Чем тогда открытие следующего бара не подходит? 

 
papaklass:
Не совпадение результатов при открытии позиций по барам и совпадение результатов при открытии позиций по таймеру, наоборот, подтверждает мое предположение. Когда Вы открываете позиции по таймеру (тем более с рынка, а не отложниками по фиксированной цене), то время открытия позиций совпадает, а значит совпадает цена. Если же Вы открываетесь по барам, то за счет того, что время формирования бара на разных графиках не одинаково, у Вас при открытии позиций происходит сдвиг по времени. Значит есть и сдвиг по цене. Вот этот сдвиг и дает расхождение результатов. Сравните время открытия позиций и цены по которым они открывались. Вы увидете расхождение.
Это всё верно. Но незначительно при тестировании на дневных барах. Дело в том, что я пока остановился на таймере, как самом точном методе. Но мне очень убедительным показался метод Константина Груздева. В статье всё это подробно описано. И события чётко фиксируются в журнале. Значит я неправильно пользуюсь его методом. Интересно услышать тогда комментарий автора.