Вопрос по принципу работы тестера (качество моделирования)

 
Хотелось бы для себя выяснить следующую особенность работы тестера, которая давно меня интересует.
Беру к примеру советник, использующий для своей работы информацию по M5 таймфрейму.
Ставлю его в тестере на тестирование при следующих параметрах: Период M5, Все тики, ставим период с 15.11.2005 по настоящее время, ставлю галку Пересчитать. Получаем прибыль 848 USD, сделок 30, качество моделирования 89,99%. Баров в истории 16670, тиков 181503.

Далее в настройках тестера меняю ТОЛЬКО Период тестирования на M1. Получаем прибыль 737 USD, сделок 29, качество моделирования 5,29%. Баров в истории 454741, тиков 687072.

Заранее сообщаю, что имеющиеся котировки периода M1 начинаются от 04.10.2004. Котировки M5 начинаются от 14.11.2005. При анализе результатов тестирования видно, что имеются некоторые отличия в проведённых сделках.

В связи с этим имеются следующие вопросы:

1. Какому из вариантов тестирования всё-таки следует доверять больше? На М1 с указанным в результатах качеством моделирования 5,29%, или на М5, с указанным качеством моделирования 89,99%?

2. Исходя из простой логики тестирование на М1 наверняка должно нести больше достоверной информации нежели моделирование на в 5 раз более крупном таймфрейме М5? Всвязи с этим почему указанное качество моделирования на М1 (5,29%) столь низко по сравнению с качеством моделирования на М5 (89,99%), хотя логично было бы поменять эти цифры местами? Я прекрасно понимаю, что данные цифры получены не с потолка, а согласно формуле из статьи "MQL4: Что означают цифры в отчёте тестирования эксперта" Тогда может быть имеет смысл переименовать данный параметр "качество моделирования" в какое-нибудь "качество учёта меньших таймфреймов", или сделать какое-нибудь специальное разъяснение в хелпе или в указанной выше статье, что данный параметр не должен приниматься во внимание при тестировании на периоде М1, поскольку М1 по определению является самым точным таймфреймом для тестирования? Либо можно поступить гораздо проще. При выборе в тестере периода тестирования М1 (Все тики) в результатах тестирования автоматически устанавливать качество моделирования равным 100% ну или чуть меньше (это уже Вы как разработчики должны сами определить). Введение данной особенности сразу же снимет повторяющиеся вопросы начинающих по поводу того какому тестированию стоит больше доверять.

3. Если второй мой вопрос неуместен в приниципе, то, пожалуйста, объясните как тогда происходит тестирование советника, использующего информацию из PERIOD_M5 на периоде М1? Я так себе представляю, что тестер берёт котировки периода М1 и из них уже рассчитывает котировки периода М5 или я ошибаюсь? Или же тестер упорно пытается сначала найти уже готовые котировки М5 из самого терминала? Если это так, то почему в таком случае возникает разница в результатах тестирования? Почему получается разная прибыль 848USD и 737USD на разных периодах тестирования?
 
Далее в настройках тестера меняю ТОЛЬКО Период тестирования на M1. Получаем прибыль 737 USD, сделок 29, качество моделирования 5,29%. Баров в истории 454741, тиков 687072.

А галочку "пересчитать" включали?
 
Далее в настройках тестера меняю ТОЛЬКО Период тестирования на M1. Получаем прибыль 737 USD, сделок 29, качество моделирования 5,29%. Баров в истории 454741, тиков 687072.

А галочку "пересчитать" включали?


А я её и не снимал. В настройках менял только период тестирования. Или для чистоты эксперимента нужно было её снять, а потом опять поставить?
 
К сожалению, Вы указали слишком мало данных.
Приведите, пожалуйста, оба скриншота итоговой статистики - там, где есть графическая полоска и шапка с данными.

Серьезные сомнения в достоверности данных. Если период один и тот же, то откуда при М5 16670 баров, а в М1 уже 454741 , хотя по логике должно быть всего в 5 раз больше (около 83000)?
 
Разница в количестве баров объясняется следующим образом.
Файл котировок М1 я специально запросил у брокера и он мне любезно его прислал по почте за период от начала октября 2004 по текущее время (это составляет 454741 минуту, или 315 торговых дней). Я это указал в первом посте. Котировки периода М5 были получены стандартным образом через скачку терминалом с сервера. Котировки М5 периода имеются за время с 14.11.2005 по настоящее время (16670 баров - 57 торговых дней). Я жёстко в настройках тестера указал время тестирования 15.11.2005 - 09.02.2006. То есть тестирование проводится по периоду времени, для которого заведомо имеются котировки для обоих таймфреймов.
В результате получил то, что получил.
Пришлите адрес мыла и я вышлю Вам полный отчёт о тестировании при разных периодах и необходимые скриншоты. (Жаль что вставку рисунков в этом форуме нужно делать при помощи каких-либо других веб-серверов). Либо можете назвать адрес ftp сервера где можно поместить скриншоты.
 
В результатах тестера указывается не количество баров, по которым было проведено тестирование (что было бы логично), а ОБЩЕЕ КОЛИЧЕСТВО баров в истории. Странно это конечно же! Поэтому у Вас и возник вопрос о несовпадении числа баров. Но тем не менее вопрос о параметре "качество моделирования" от этого проще не становится.
 
Вышлите, пожалуйств зазипованные M5 и M1 мне на емайл renat AT metaquotes . ru - я проверю. И было бы замечательно, если бы приложили полный исходный код эксперта - так будет очень легко все проверить.

После проверки я обязательно стеру эксперт.

Либо можете назвать адрес ftp сервера где можно поместить скриншоты.

У нас как раз есть новый отдельный ресурс "MQL4: automated forex trading" - полностью предназначенный для удобной работы с экспертами. Там и вставка файлов с картинками есть.
 
Тоже заметил, что качество вычисляется не верно. Тестирую на Н1 по всем тикам. История около 3 лет. Но качества, как оказалось сильно зависит от периода на котором происходит тест. Если тестить на промежутке в 1 месяц, то качество около 1.9, если на промежутке в 1 год, то около 20.

И еще одно. Нельзя ли сделать так, что бы fxt - файл содержал бы в себе только данные периода на котором проходит тестирование?
 
Но качества, как оказалось сильно зависит от периода на котором происходит тест. Если тестить на промежутке в 1 месяц, то качество около 1.9, если на промежутке в 1 год, то около 20.


Я так понимаю, что проблема с разными цифрами при расчёте качества моделирования на разных промежутках времени тестирования кроется либо в самой формуле, либо в реализации формулы расчёта в самом тестере, либо в некорректности самого названия “качество моделирования”:

ModellingQuality = ((0.25*(StartGen-StartBar) + 0.5*(StartGenM1-StartGen) + 0.9*(HistoryTotal-StartGenM1)) / (HistoryTotal-StartBar))*100%;
где:
 HistoryTotal - количество баров в истории;
 StartBar - номер бара, с которого началось моделирование. Моделирование начинается как минимум со 101-го бара, либо бара, соответствующего начальной дате ограничения тестирования;
 StartGen - номер бара, с которого началось моделирование на основе исторических данных ближайшего таймфрейма;
 StartGenM1 - номер бара, с которого началось моделирование на основе минуток;
при этом:
 Промежуток от начала моделирования без данных ближайшего таймфрейма до начала моделирования на основе данных ближайшего таймфрейма имеет весовой коэффициент 0.25;
 Промежуток от начала моделирования на основе данных ближайшего таймфрейма до начала моделирования на основе минуток имеет весовой коэффициент 0.5;
 Промежуток от начала моделирования на основе минуток до конца исторических данных имеет весовой коэффициент 0.9;


Рассмотрим несколько примеров тестирования на тестере.
1. Возьмём стандартный эксперт MACD Sample из поставки терминала с установками по умолчанию. Возьмём историю котировок EURUSD периода М1 длиною в 455863 баров (с 04.10.2004 по настоящий момент времени). Выставим период тестирования М1 (Все тики, галка пересчитать установлена) и время тестирования, ограниченное 01.01.2006-10.02.2006. В результате получаем качество моделирования 2.96%. Чистая прибыль –5.7, прибыльность 0.59, матожидание выигрыша –0.57, всего сделок 10.

2. Далее снимает ТОЛЬКО галку с ограничения времени тестирования, то есть тестируем советник по ВСЕЙ доступной истории. Получаем качество моделирования 25%. Чистая прибыль –65.4, прибыльность 0.56, матожидание выигрыша –0.59, всего сделок 110.

3. Повторяем пункт 1 при установке периода на М5. Получаем качество моделирования 41,67%. Чистая прибыль –8.6, прибыльность 0.72, матожидание выигрыша –0.43, всего сделок 20.

4. Повторяем пункт 2 при установке периода на М5. (Котировки периода М5 имеются ТОЛЬКО за период с 14.11.2005 по настоящее время.) То есть сделки проводятся в отличие от пункта 1 только за время с 14.11.2005 по настоящее время! Таким образом смотрим только интересующий нас параметр “качество моделирования”, которое оказывается равным 89,99%!!!!!

Теперь можно опять повторить абсолютно те же самые вопросы из моего первого поста.
1. Какому из вариантов тестирования следует доверять больше? Исходя из параметра “качество моделирования” то расчёту по 4му пункту (89,99%). Хотя логика говорит о том, что более надёжными результатами следует считать из 2пункта хоть качество моделирования и равно 25%.
2. Вопрос о применимости данной формулы расчёта качества моделирования для разных частных случаев, например при указанных в пунктах 1 и 2 расчёта (Автоматическое фиксированное выставление значений параметров в результатах тестирования в особых частных случаях)
3. Почему отличаются численные результаты моделирования (прибыль, количество сделок и т.д.) по пунктам 1 и 3? И чему верить, а чему нет? Сравните 10 сделок против 20 ЗА ТОТ ЖЕ САМЫЙ ПРОМЕЖУТОК ВРЕМЕНИ!!!

Renat, скриншоты и котировки М1 и М5 я Вам вышлю на мыло. Я пришлю скриншоты по описанным в этом посте тестам. Дело совершенно не в каких-то особенностях моего эксперта, а в принципах работы самого тестера.
 
Хотелось бы для себя выяснить следующую особенность работы тестера, которая давно меня интересует.
Беру к примеру советник, использующий для своей работы информацию по M5 таймфрейму.
Ставлю его в тестере на тестирование при следующих параметрах: Период M5, Все тики, ставим период с 15.11.2005 по настоящее время, ставлю галку Пересчитать. Получаем прибыль 848 USD, сделок 30, качество моделирования 89,99%. Баров в истории 16670, тиков 181503.

Далее в настройках тестера меняю ТОЛЬКО Период тестирования на M1. Получаем прибыль 737 USD, сделок 29, качество моделирования 5,29%. Баров в истории 454741, тиков 687072.

Заранее сообщаю, что имеющиеся котировки периода M1 начинаются от 04.10.2004. Котировки M5 начинаются от 14.11.2005. При анализе результатов тестирования видно, что имеются некоторые отличия в проведённых сделках.

В связи с этим имеются следующие вопросы:

1. Какому из вариантов тестирования всё-таки следует доверять больше? На М1 с указанным в результатах качеством моделирования 5,29%, или на М5, с указанным качеством моделирования 89,99%?

2. Исходя из простой логики тестирование на М1 наверняка должно нести больше достоверной информации нежели моделирование на в 5 раз более крупном таймфрейме М5? Всвязи с этим почему указанное качество моделирования на М1 (5,29%) столь низко по сравнению с качеством моделирования на М5 (89,99%), хотя логично было бы поменять эти цифры местами? Я прекрасно понимаю, что данные цифры получены не с потолка, а согласно формуле из статьи "MQL4: Что означают цифры в отчёте тестирования эксперта" Тогда может быть имеет смысл переименовать данный параметр "качество моделирования" в какое-нибудь "качество учёта меньших таймфреймов", или сделать какое-нибудь специальное разъяснение в хелпе или в указанной выше статье, что данный параметр не должен приниматься во внимание при тестировании на периоде М1, поскольку М1 по определению является самым точным таймфреймом для тестирования? Либо можно поступить гораздо проще. При выборе в тестере периода тестирования М1 (Все тики) в результатах тестирования автоматически устанавливать качество моделирования равным 100% ну или чуть меньше (это уже Вы как разработчики должны сами определить). Введение данной особенности сразу же снимет повторяющиеся вопросы начинающих по поводу того какому тестированию стоит больше доверять.

3. Если второй мой вопрос неуместен в приниципе, то, пожалуйста, объясните как тогда происходит тестирование советника, использующего информацию из PERIOD_M5 на периоде М1? Я так себе представляю, что тестер берёт котировки периода М1 и из них уже рассчитывает котировки периода М5 или я ошибаюсь? Или же тестер упорно пытается сначала найти уже готовые котировки М5 из самого терминала? Если это так, то почему в таком случае возникает разница в результатах тестирования? Почему получается разная прибыль 848USD и 737USD на разных периодах тестирования?


К вопросу о разной прибыли и "чуть-чуть" разном всем остальном.
Подозреваю, что в Вашем эксперте используется какой-нибудь (любой) индикатор. Далее по теме Вы привели
пример с MACDSample. Так вот, если используя тот же MACD Вы не пересчитали очень тщательно все периоды этого самого MACD (т.е. в Вашем случае: тест по М1 и М5) не поделили все, что можно на 5, то различия в результатах вполне объяснимы. Тот же TrendPeriod = 26 на М1 подобен периоду 26*5=130 для М1, если тест идет на М5.
Если я сказал масло -- масленное, то извиняй...
 

К вопросу о разной прибыли и "чуть-чуть" разном всем остальном.
Подозреваю, что в Вашем эксперте используется какой-нибудь (любой) индикатор. Далее по теме Вы привели
пример с MACDSample. Так вот, если используя тот же MACD Вы не пересчитали очень тщательно все периоды этого самого MACD (т.е. в Вашем случае: тест по М1 и М5) не поделили все, что можно на 5, то различия в результатах вполне объяснимы. Тот же TrendPeriod = 26 на М1 подобен периоду 26*5=130 для М1, если тест идет на М5.
Если я сказал масло -- масленное, то извиняй...

В принципе я с вами согласен! Пример с MACD является действительно неудачным для сравнения различий в количестве сделок. Но для сравнения идеи о качестве моделирования думаю вполне подходит. Сравните 2.96% на М1 и 41,67% на М5. При этом получается ещё хлеще, так как в этом эксперте нам не нужно лезть в какие-то другие периоды, кроме того, на котором мы производим тестирование! То есть разница в парамере качества должна быть какой-то разумной и объяснимой понятными вещами. А здесь имеется разница в 14 раз!

Я в своём эксперте использую индикатор
iOsMA(NULL,PERIOD_M5,WM1p1,WM1p2,WM1p3,PRICE_CLOSE,0)
Как видно я здесь жёстко указал период, по которому индиктор получает котировки.
Тогда в чём может быть дело в случае тестирования моего советника в самом первом посте?
Почему у нас присутствует небольшая, но всё-таки РАЗНИЦА в сделках при тестировании на разных периодах М1 и М5 и это при том, что имеется ВСЯ история котировок за время тестирования?
Причина обращения: