MQL4 - automated forex trading   /  

Форум

Сравнение реального тикового потока и сгенерированного тестером стратегий в режиме "все тики"

К списку тем  | 1 2 3 4 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
Модератор
3176
Renat 09.11.2006 23:45 
Каждого трейдера интересует вопрос - насколько точно тестер генерирует тиковые последовательности в режиме
"все тики" с использованием всех наименьших периодов. Я провел тест, взяв записанные тиковые данные с нашего
демонстрационного сервера demo.metaquotes.net:443 за 8 ноября 2006 года. За сутки было 6512 тиков по EURUSD.

Для записи сгенерированных тиков я использовал простейшего эксперта, который пишет все тики в файл:
int ExtHandle=0;    // file handle
void init()
  {
//----
   if(ExtHandle!=0) FileClose(ExtHandle);
   ExtHandle=FileOpen(Symbol()+Period()+".txt",FILE_CSV|FILE_WRITE,' ');
//----
  }
void deinit()
  {
//----
   if(ExtHandle!=0) { FileClose(ExtHandle); ExtHandle=0; }
//----
  }
void start()
  {
   if(ExtHandle!=0) FileWrite(ExtHandle,CurTime(),Open[0],Close[0]);
  }
Вот условия теста:



В результате тестер сгенерировал 3974 уникальных тика, отбросив повторяющиеся (выглядящие повторяющимися) ситуации.
В "отходы" ушло около 2500 шумовых тиков. Пришлось сопоставить данные, поместить их в Excel (заархивированный файл
приложен) и построить графики соответствия:




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



Этот график показывает очень точное моделирование тиковых последовательностей на основе минутных данных.
Существующие погрешности в пределах одного-двух пипсов, что является допустимой величиной.
Сгенерированный поток практически идеально вписывается в оригинальный.
Прикрепленные файлы:
  CollectTicks.mq4 (1.55 KB)
  normal.zip (135.22 KB)
article

ATC-2006 и АТС-2007: Кривая нулевой доходности

Cтабильная выигрышная стратегия необязательно должна иметь слишком большой процент выигрышных сделок и большое отношение AvgWin/AvgLoss.


avatar
13989
komposter 09.11.2006 23:59 
Предлагаю перенести в статьи - проще будет посылать непросвещенных ;)

avatar
713
kniff 10.11.2006 00:29 
Да, все верно, тестер хорошо моделирует тики. НО (поправьте меня, если я не прав) если у нас есть High, Low, Open, Close и Volume минуток. Если X лежит между HIGH и LOW, из этого не следует, что тестер сгенерирует это значение. Может пропустить? Может все-таки давать гарантию того, что если у тебя цена лежит между High и Low, то хоть в одной точке, но она будет достигнута. Даже если объема бара "не хватит" на то, чтобы покрыть весь диапазон (ну, например, High-Low = 20 pips, Volume = 10 pips)

avatar
Модератор
3176
Renat 10.11.2006 00:39 
kniff писал (а):
Да, все верно, тестер хорошо моделирует тики. НО (поправьте меня, если я не прав) если у нас есть High, Low, Open, Close и Volume минуток. Если X лежит между HIGH и LOW, из этого не следует, что тестер сгенерирует это значение. Может пропустить? Может все-таки давать гарантию того, что если у тебя цена лежит между High и Low, то хоть в одной точке, но она будет достигнута. Даже если объема бара "не хватит" на то, чтобы покрыть весь диапазон (ну, например, High-Low = 20 pips, Volume = 10 pips)

Все важные контрольные точки Open, High, Low и Close тестер обязательно и гарантированно проходит.
А вот промежуточные движения может пропустить - все зависит от заявленного тикового объема и конфигурации бара.
Пропуски явным образом включаются на "пилах", где ампилитуда движения мала, но тиковый объем велик. Пример: амплитуда
2 пипса, тиковый объем 8, сходили туда-сюда пару раз, зачем еще накручивать объем?

Обратите внимание на пилы - такое сплошняком идет в реальном тиковом потоке, когда цена колеблется на один пипс:





avatar
Модератор
3176
Renat 10.11.2006 00:44 
komposter писал (а):
Предлагаю перенести в статьи - проще будет посылать непросвещенных ;)
Надо будет тему развить, а потом опубликовать с максимумом доходчивой информации.

avatar
753
elritmo 10.11.2006 01:53 

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


avatar
92
Rjkley 10.11.2006 02:51 

elritmo

писал (а):


А зачем вообще нужны тиковые данные?
Большинство индикаторов строятся по барам вплодь до минуток.

Существует мнение, что для торговли

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

С другой стороны уже давно известно, что ни один уважающий себя брокер (ДЦ) не даст стричь пипсы. И строить "экспертов" изначально предназначенных для этого и тестировать их на истории просто не имеет смысла. Так, что более точное приближение тестера к реалу вроде и не нужно. :( Возможно имеет смысл добавить в тестер реквоты, но боюсь, что это только замедлит его работу,хотя и даст возможность программистам почувствовать это до выхода в реал (лично я против такого "усовершенствования").

На мой взгляд и так все работает нормально - в смысле точности моделирования. А вот в смысле системных требований, особенно после подкачки истории за 7 лет (DOOM 3 идет легко, а вот торговый терминал... ;о)   ) есть о чем подумать разработчикам.

avatar
Модератор
3176
Renat 10.11.2006 09:48 
Кстати, есть мысль добавить реквоты в тестер и серьезные проскальзывания на движениях.
Это кардинально улучшит (через ухудшение торговых условий) качество экспертов.

avatar
2873
Figar0 10.11.2006 10:56 
Renat писал (а):
Кстати, есть мысль добавить реквоты в тестер и серьезные проскальзывания на движениях.
Это кардинально улучшит (через ухудшение торговых условий) качество экспертов.

Если добавлять, то дополнительным методом тестирования, сохранив возможность тестировать без этого (ИМХО). Ведь иногда при тестирование интересно не как ОНО будет при торговле на реале, а в какой момент и по какой цене сработаей какое - либо условие....

avatar
Модератор
33772
Rosh 10.11.2006 10:56 
Как рандомайзную функцию на сильных дивжениях (высокиз барах)?

avatar
Модератор
3176
Renat 10.11.2006 11:14 
Rosh писал (а):
Как рандомайзную функцию на сильных дивжениях (высокиз барах)?
На сильных движениях (это легко обнаруживается на минутках) можно делать ухудшение условий, но только не рандомазно. Важно, чтобы была сходимость повторных прогонов.

Включать агрессивный режим можно в настройках тестера.
К списку тем   | 1 2 3 4  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий