Скачать MetaTrader 5

И правда тестеру нельзя верить!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114318
Forex Trader  
На форумах много пишут о том, что тестер в MT4 корявый и ему нельзя верить. Сегодня провел элементарный тест и получил неутешительные результаты :(
Параметры тестирования: EURUSD, M15, Все тики (на основе всех наименьших....)
Цель тестирования: Сравнить количество тиков, генерируемых тестером, с объемом в единицу времени (т.к. объем в MT4 и есть количество тиков в единицу времени). За единицу времени были взяты 24 часа
Код советника.
int volume=0;
int init()
  {
   volume=0;
   return(0);
  }
int deinit()
  {
Print("Calculated Volume="+volume);
   return(0);
  }
int start()
  {
   volume=volume+1;//volume++;
   return(0);
  }


получены следующие результаты,
где:
Date - период тестирования
V(D1) - показания встроенного индикатора Volumes на D1
Ticks - тиков подсчитано экспертом
Report - смоделировано тиков из вкладки "Отчет" по утверждению тестера :)
% = (<Тиков посчитано экспертом> / <Volume(D1)> * 100) - процент "подсчитанных" тиков от реального числа тиков :(

Date	V(D1)	Ticks	Report	%
30.12.05	7655	2782	19126	36,34
01.01.06	0	0	16428	#### (деление на 0)
02.01.06	62	59	16524	95,16
03.01.07	5224	2648	19005	50,69
04.01.07	5343	3175	19534	59,42
05.01.08	4387	2664	19019	60,72
05.01.06	4508	2424	18769	53,77


Итак:
1) Количество генерируемых тестером тиков за весь тестируемый период равно 59,35% от реального количества. И это при том, что имея только значения Volumes, "генератор тиков" тестера можно запрограммировать так, чтобы он на все 100% отрабатывал количество тиков. Разработчики наверное скажут: "Так и должно быть! Тестер специально оптимизирован таким образом чтобы тестирование выполнялось быстрее!" или еще что-нибудь в таком же духе. Но экспертописателям не нужно быстрее, им нужны тики и столько, сколько их было в истории. Ни больше, ни меньше.
2)Совершенно не понятно что за цифры отображаются в параметре "Смоделировано тиков" на вкладке "Отчет". Единственное число, которое мне о чем-то говорит, "16428" от 01.01.06 - у меня такое же количество баров в истории. Совершенно непонятно почему "Бары в истории" складываются с тиками
3)Гоните в шею тестеров, которые тестировали тестер :)
4)Дальше тестировать смысла нет!
5)Буду тестировтаь стратегию в On-Line, чего и другим желаю

Forex Trader
114318
Forex Trader  

5)Буду тестировтаь стратегию в On-Line, чего и другим желаю
Через год-другой, если еще не бросите заниматься стратегиями, обязательно перечитайте сегодняшний пост. Веселье на весь день будет обеспечено. =)
MetaQuotes Software Corp.
Модератор
192448
MetaQuotes Software Corp.  
Подсчитали среднее количество замеров(именно замеров, а не саму температуру!) температуры по больнице за несколько дней, но не поняли сути и сделали неверные выводы. Кстати, а зачем выходные новогодние дни то взяли?

Посмотрим на более детальные и визуально воспринимаемые данные.
Вот смоделированный на основе М15 и всех тиков час 18 января 2006 года с 10:00 до 11:00



Для моделирования берутся данные M5 и M1. Вот график М1, на основе которого делалость моделирование:



При моделировании M15 также моделируются и объемы, но они идут дискретно с определенным (не всегда точным) шагом, а не стабильно +1, +1, +1. То есть, в какой-то момент прибавляется 3, в какой то момент 2.

Strator считает, что эксперт в тестировании вызывается на каждый "объемный" тик и совершенно не принимает во внимание, что моделирование идет на основе минутных данных.

Тестер не знает как двигалась цена внутри минутки, но делает предположения о развитии минутного бара и моделирует проход внутри минутки на основе фрактального алгоритма. В этот момент у моделлера важная задача - пройти наиболее правильной траекторией по нужным точкам. В процессе прохода по ключевым точкам объемы просто равномерно распределяются.

Зная, что снизу точность моделирования ограничена минутками(это уже отличное качество!), а не тиками, можно легко понять мысль о дискретном изменении объемов.

Тестер в режиме потикового моделирования и при наличии графиков М1 отлично справляется с моделированием и тестированием.
Практически - это один из самых лучших тестеров стратегий, что есть на массовом рынке.

В качестве отступления от темы тестера MetaTrader:
Есть общая проблема: не все тратят время и силы на углубленное понимание тестирования стратегий. Многие находятся в плену своих собственных представлений о рынке и возможностях тестирования. Гораздо проще бывает высказаться "это не работает, глючит, все неправильно" (особенно странно выглядит на фоне чужих трудов в этой области, но прокатывает!) вместо того, чтобы разобраться в деталях.

Многие трейдеры считают(у меня создалось такое стойкое ощущение), что тестер - это такой философский камень, который имеет всего одну кнопку, при нажатии на которую наступает счастье. При встрече с реальным тестером они видят, что это не то, о чем они думали. Оказывается, надо заботится о наличии истории, знать кучу правил о тестировании, о робастости экспертов и особенностях моделирования.

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

Жалко только, что в тех программах о реальности даже и говорить не приходится. Реального трейдинга и исполнения то нет!
И язык программирования далек от управления позициями и вообще не знает о том, что сделка может не пройти. Чуть не забыл - им тоже нужна как можно более детализированная история :) К чему бы это?

Определенная часть программистов(которым море по колено, но мы сами такие же), заявляют "ваш тестер плохой, мы написали в 100 раз лучше". Но они, потратив несколько месяцев на работу и вникнув в сложности и особенности моделирования и тестирования, не хотят признаваться в том, что все совершенно не так, как казалось раньше. И что их тестер даже рядом не стоял с тестером, который они пару месяцев назад поливали грязью.
Forex Trader
114318
Forex Trader  
"Мне мясо положено!
Положено - ешьте.
Но мне мясо не положено
Не положено - не ешьте" (с) Городок


Date - период тестирования
V(D1) - показания встроенного индикатора Volumes на D1
Ticks - тиков подсчитано экспертом
Report - смоделировано тиков из вкладки "Отчет" по утверждению тестера :)
% = (<Тиков посчитано экспертом> / <Volume(D1)> * 100) - процент "подсчитанных" тиков от реального числа тиков :(

Date V(D1) Ticks Report %
30.12.05 7655 2782 19126 36,34
01.01.06 0 0 16428 #### (деление на 0)
02.01.06 62 59 16524 95,16
03.01.07 5224 2648 19005 50,69
04.01.07 5343 3175 19534 59,42
05.01.08 4387 2664 19019 60,72
05.01.06 4508 2424 18769 53,77

Итак:
1) Количество генерируемых тестером тиков за весь тестируемый период равно 59,35% от реального количества. И это при том, что имея только значения Volumes, "генератор тиков" тестера можно запрограммировать так, чтобы он на все 100% отрабатывал количество тиков. Разработчики наверное скажут: "Так и должно быть! Тестер специально оптимизирован таким образом чтобы тестирование выполнялось быстрее!" или еще что-нибудь в таком же духе. Но экспертописателям не нужно быстрее, им нужны тики и столько, сколько их было в истории. Ни больше, ни меньше.


Насколько я понял из манифеста, то все наоброт - количество тиков , смоделированных экспертом превышает реальное количество тиков :) Ужас.
Forex Trader
114318
Forex Trader  
Загляни сюда "Strategy Tester: режимы моделирования при тестировании" , думаю поймешь в чем дело.
Forex Trader
114318
Forex Trader  
От такой реальности становится уже не так интересно. Но душа требует заполнения пустоты!

Абсолютно согласен.
По моим наблюдениям подавляющая часть юзеров появляется на форумах ( не только здесь, а и вообще где бы то ни было, в т.ч. и вне Интернет) с одной единственной целью: удовлетворить своё чувство собственной важности. Причём, что самое интересное, практически никто из них не отдаёт себе отчёт в собственных побудительных мотивах. Другие, обычно старше и опытней, пребывают в счастливом неведении относительно своих возможностей, но по крайней мере действуют осознанно.

Где-то среди этой серой массы находимся и мы:)
Forex Trader
114318
Forex Trader  
А не убрать бы из тестера фрактальную интерполяцию? Или хотя бы галку сделать, чтобы отключать. Тики брать с наименьшего бара. Очевидно, что любой кто заинтересован в точности результатов тестирования загрузит минутки. Зачем моделировать развитие цены за минуту? Делать в логической последовательности: сначала проверить по цене открытия, затем посмотреть что произойдет по минимуму и максимуму и выбрать из двух менее выгодный результат. Если, например есть сигнал к открытию и на минимуме и на максимуме, то если покупать, то с ценой максимума, если продавать - с ценой минимума. Если сигнал к закрытию и на минимуме и на максимуме, то длинные закрывать на минимуме, короткие на максимуме. Если на минимуме срабатывает стоп лосс, а на максимуме тейк профит (если конечно такое может произойти на минутках (однако как говорил Д. Мерфи, если что-то может произойти, оно обязательно произойдет)), то закрывать по стоп-лоссу. И никакого моделирования, только с реально известными ценами!

Может я пока еще не разобрался с тестером серьезно, но доверия он действительно не вызывает. Эта замороченность с датами тестирования, размером загруженных в чарт данных...... персчетом.....
Forex Trader
114318
Forex Trader  
А не убрать бы из тестера фрактальную интерполяцию? Или хотя бы галку сделать, чтобы отключать.

А кто мешает тестировать на минуткахв режиме "по ценам открытия", как раз без фрактальной интерполяции. Просто в параметрах эксперта сделай что-то типа string ЭтотЭкспертПериода = "Н1", преобразовавай введенный параметрт в значение int ActiveExpertPeriod = StrToPeriod(ЭтотЭкспертПериода), и далее в эксперте используй вместо функции Period() значение ActiveExpertPeriod. И будет тебе счастье, по крайней мере меня устраивает. Кроме этого такой подход позволяет не боятся случайного переключения таймфрейма на торгующем графике.
Forex Trader
114318
Forex Trader  

А кто мешает тестировать на минуткахв режиме "по ценам открытия",


Ух ты! Наверно вариант. Надо будет попробовать.

smazovec, ты имеешь ввиду использовать ActiveExpertPeriod при вызове индикаторов? Ставить его в качестве воторого параметра? Например iMA(NULL,ActiveExpertPeriod....?

Если так, то возникает другая проблема - последний бар с других таймфреймов не моделируется тестером, так что результаты тестирования будут сильно отличаться от реальных результатов, так как тестер будет как бы в будущее заглядывать - на минутках час только начался, а индикаторы будут рассчитываться по времени на конец часа. Ну эт если я правильно понял о чем ты.
Forex Trader
114318
Forex Trader  
А я как раз из этих нескольких трейдеров "Strategy Tester: режимы моделирования при тестировании"
Некоторые трейдеры не желают зависеть от особенностей внутрибарного моделирования и пишут экспертов, которые торгуют на сформировавшихся барах.


А по части использования ActiveExpertPeriod ты понял правильно.

А где прочитать про
последний бар с других таймфреймов не моделируется тестером

В статье "Особенности тестирования" есть только указание на
Нулевой бар другого периода по тому же самому тестируемому символу моделируется приблизительно

Open = корректный Open, Close = корректный Close, Low = min (Open,Close), High = max (Open,Close), Volume = итоговый Volume (неверный)
Forex Trader
114318
Forex Trader  
А где прочитать про
последний бар с других таймфреймов не моделируется тестером



Проверил это дело, вот что получилось:

"Тестирование" (в самом конце страницы)
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий