Автор Тема: Что такое тестирование на истории и с чем его едят!  (Прочитано 9770 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Paha

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1034
  • Репутация: 1139
  • Подумать надо!
В данной теме по мере возможности буду рассказывать о тестировании советников на истории, с помощью встроенного в терминал  - тестера!
Если есть вопросы, задавайте - буду отвечать по мере своих знаний!


Хочу сказать сразу, что тестирование на истории никогда не даст 100% уверенности в правильности полученных результатов!  Только онлайн тестирование на периоде от месяца до полугода - может дать почти точные результаты поведения Вашего советник на реале, и то не всегда!

Одним из критериев - получения правильных параметров, с помощью оптимизации советников на истории может служить проверка полученных результатов, вне выборки по времени!  Например Вы оптимизировали некоторые параметры советника на периоде с 10.10.2007 по 10.11.2007,   а параметры полученные в результате оптимизации действуют и на других временных интервалах, например с 01.01.2000 и до сегодня!   
« Последнее редактирование: 25 Ноября 2007, 13:29:29 от Paha »
Бойся гнева терпеливого человека!

Оффлайн Paha

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1034
  • Репутация: 1139
  • Подумать надо!
Самое главное в тестировании иметь правильный - достоверный архив котировок!

Технический анализ — это исследование динамики рынка с целью прогнозирования дальнейшей динамики цен. Чаще всего такой анализ осуществляется при помощи графиков. Поэтому очень важно иметь исторические данные цен по всем используемым финансовым инструментам и периодам. Исторические данные постоянно формируются и хранятся на сервере. Подключаясь к нему, клиентский терминал скачивает все необходимые данные. В дальнейшем они используются для построения графиков, тестирования и оптимизации экспертов. Для управления историческими данными в терминале имеется специальное окно "Архив котировок". Это окно можно открыть, выполнив команду меню "Сервис — Архив котировок" либо нажав клавишу F2.

После закрытия терминала все накопленные исторические данные сохраняются в "Архиве котировок". Причем размеры файлов исторических котировок не превышают заданных в настройках значений. Если объем накопленных исторических данных превышает величину, установленную в поле " Макс. баров истории:", то при сохранении удаляются самые старые бары. Для каждого таймфрейма формируется отдельный файл истории с именем SSSSSSPP.hst (где SSSSSS - обозначение финансового инструмента, PP - временной период в минутах) и сохраняется в директории /HISTORY. В дальнейшем сохраненные данные используются для построения графиков, а также для тестирования торговых стратегий.

В окне "Архив котировок" можно изменять имеющиеся данные. Для этого сначала необходимо выбрать требуемые инструмент и период в левой части окна. При этом произойдет загрузка соответствующих данных, которые будут представлены в виде таблицы. Чтобы добавить запись о новом баре, следует нажать одноименную кнопку, заполнить необходимые поля в новом окне и нажать кнопку "OK". После этого новый бар появится в исторической базе. Выделив существующую запись и нажав кнопку "Правка", можно изменить соответствующий бар. Для удаления бара из истории необходимо выделить его и нажать одноименную кнопку.

Загрузка исторических данных
С сервера исторических данных можно загрузить котировки по основным валютным парам начиная с 1999 года. Для этого необходимо выбрать нужный инструмент и нажать кнопку "Загрузить".

Внимание: загруженные данные могут отличаться от исторических данных, хранящихся на торговом сервере брокера.
После нажатия на кнопку будут загружены данные периода M1. Остальные периоды будут пересчитаны из М1 автоматически. При повторном нажатии клавиши закачать котировки! При этом время скачанных данных автоматически пересчитывается в соответствии с часовым поясом текущего активного счета.

При загрузке исторических данных рекомендуется контролировать количество баров в истории и на графиках.

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

Бойся гнева терпеливого человека!

Оффлайн Paha

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1034
  • Репутация: 1139
  • Подумать надо!
                Настройка оптимизации советников
        Оптимизация представляет собой последовательные прогоны одного и того же советника с различными входными параметрами на одних и тех же данных. При этом можно подобрать такие параметры, при которых эффективность советника будет максимальной. Терминал обладает встроенными средствами, позволяющими автоматизировать этот процесс. Прежде чем приступать к оптимизации параметров советника, необходимо произвести настройку. Это означает, что следует:

выбрать советника и задать его входные параметры
выбрать финансовый инструмент и его период
выбрать один из трех способов моделирования баров
задать временной диапазон для оптимизации

Для тестирования и оптимизации советников в терминале используется специальное окно "Тестер". Все вышеперечисленные настройки производятся во вкладке "Настройка" этого окна.

Советник и его параметры
В поле окна "Тестер — Советники" следует выбрать эксперт, параметры которого необходимо оптимизировать. В этом поле нельзя выбрать любой файл советника. Здесь могут быть лишь доступные в клиентском терминале файлы. Для этого они должны быть скомпилированными и находиться в папке /EXPERTS.

После того как выбран советник, необходимо провести дополнительную настройку и задать входные параметры. Это можно сделать нажатием кнопки "Свойства эксперта". При этом появится новое окно с тремя вкладками:

Тестирование — в этой вкладке задаются общие параметры оптимизации. К ним относятся объем и валюта начального депозита, которые указываются в одноименных полях. Именно этим депозитом будет оперировать советник во время оптимизации. В этой вкладке также выбираются типы открываемых позиций: Only Long — открывать только длинные позиции; Only Short — только короткие; Long and Short — открывать позиции в обе стороны. Каков бы ни был алгоритм советника, он будет открывать позиции только в заданных направлениях. Также можно включить генетический алгоритм оптимизации и выбрать оптимизируемый параметр (максимизация по значению баланса, фактора прибыльности, математического ожидания выигрыша либо минимизация по значению максимальной просадки или процента просадки);

Входные параметры — здесь в виде таблицы приводится список всех входных параметров. Входными параметрами называются переменные, которые влияют на работу эксперта и могут быть изменены прямо из клиентского терминала. Для изменения этих параметров нет необходимости изменять код эксперта. Количество входных переменных может варьироваться от эксперта к эксперту. При оптимизации входные параметры советника задаются в полях "Старт", "Шаг" и "Стоп". В этих полях задаются начальные значения, шаг изменения и конечные значения внешних переменных соответственно. Слева от названия переменных имеются галочки, включающие параметр в оптимизацию. Если переменная не отмечена галочкой, она не участвует в оптимизации. Ее значение в процессе оптимизации не изменяется, и используется параметр, записанный в поле "Значение". Количество прогонов эксперта напрямую зависит от этих параметров. Данные, записываемые в поле "Значение", не влияют на оптимизацию советника и необходимы лишь для его тестирования.

Существует возможность загрузить уже сохраненный набор входных параметров (включая значения "Старт", "Шаг" и "Стоп"). Это можно сделать, нажав кнопку "Загрузить" и выбрав предварительно сохраненный набор параметров. Сохранить текущий набор внешних переменных можно при помощи одноименной кнопки.

Оптимизация — эта вкладка позволяет управлять ограничениями во время оптимизации. Если в процессе отдельного прогона будет достигнуто любое из условий, этот прогон советника прервется. К ограничивающим параметрам относятся:

Минимальный баланс — минимальное значение баланса в валюте депозита;
Максимальная прибыль — максимальная прибыль в валюте депозита;
Минимальный уровень маржи % — минимальный уровень маржи в процентах;
Максимальная просадка % — максимальная просадка в процентах;
Непрерывный убыток — максимальный суммарный убыток в одной серии. Убыточной серией называются несколько следующих подряд убыточных сделок;
Непрерывное количество убыточных сделок — максимальное количество убыточных сделок в одной серии;
Непрерывный выигрыш — максимальная суммарная прибыль в одной серии. Прибыльной серией называются несколько следующих подряд прибыльных сделок;
Непрерывное количество прибыльных сделок — максимальное количество прибыльных сделок в одной серии.

Чтобы включить ограничивающее условие, необходимо выставить соответствующий флажок слева от него. Двойным кликом левой кнопки мыши в поле "Значение" можно изменить имеющийся параметр.

Финансовый инструмент и его период
Чтобы приступить к тестированию, недостаточно лишь выбрать советника и настроить его. Необходимо также выбрать финансовый инструмент и период (таймфрейм) для тестирований. Все тестирования будут проходить именно на этих данных. При тестированиях можно выбрать один из доступных в терминале инструментов или использовать внешний файл данных. В тестированиях используются файлы исторических данных формата *.FXT, которые записываются в директории /TESTER. Эти файлы автоматически создаются при тестированиях, если был выбран имеющийся в терминале инструмент. При использовании внешних данных необходимо собственноручно поместить соответствующий файл данных в директорию /TESTER и отключить флажок "Пересчитать", чтобы не перезаписать эту тестирующую последовательность.

Финансовый инструмент задается в поле "Символ", а таймфрейм — в поле "Период". Если файла данных по этому инструменту, периоду и методу моделирования не существует, он будет создан автоматически. Если требуемый файл уже создан, и включена опция "Пересчитать", при тестировании произойдет повторное генерирование файла данных. При отсутствии исторических данных по инструменту и периоду, тестер автоматически скачает 512 последних баров истории.

        Внимание: если по инструменту имеются какие-либо данные за пределами последних 512 баров, произойдет автоматическое скачивание исторических данных до самого последнего имеющегося бара. Это может вызвать резкое увеличение входящего трафика.
          Методы моделирования
Исторические данные в терминале сохраняются только как бары и представляют собой записи в виде OHLC. Эти данные могут использоваться для моделирования динамики цен при оптимизации советников. В некоторых случаях для тестирования/оптимизации такой информации бывает недостаточно. Например, на дневных данных колебания цен внутри бара могут привести к срабатыванию советника. В то же время при оптимизации срабатывания может не произойти. Иными словами, оптимизация советника на основе одних только баров иногда бывает неточной и может давать ложное представление об эффективности эксперта с выбранными параметрами.

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

При настройке оптимизации можно выбрать один из трех методов моделирования исторических данных:

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

       В этом режиме сначала моделируется открытие бара (Open = High = Low = Close, Volume=1), что дает эксперту возможность точно идентифицировать окончание формирования предыдущего ценового бара. Именно на этом зарождающемся баре запускается тестирование эксперта. На следующем шаге выдается уже полностью сформированный текущий бар, но на нем тестирование не производится!

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

Как только появляются исторические данные меньшего таймфрейма, фрактальная интерполяция применяется уже к этим данным. Однако используется уже не 12, а всего 6 предыдущих баров. То есть воспроизводятся реально существующие цены Open, High, Low, Close плюс ещё две сгенерированных цены. Значение и местоположение этих двух сгенерированных цен зависит от движения цены на 6 предыдущих барах.

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

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

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

Временной диапазон
Диапазон дат позволяет тестировать советники не на всех имеющихся данных, а лишь на выбранном временном отрезке. Это бывает удобным при необходимости исследовать отдельную часть исторических данных. Ограничение диапазона дат можно использовать не только при тестировании эксперта, но и при генерации тестирующей последовательности баров (файла смоделированных данных, используемого для тестирования). Очень часто нет необходимости генерировать данные всей истории, особенно при потиковом моделировании, когда объем неиспользуемых данных может быть очень большим. Поэтому если при первоначальной генерации тестирующей последовательности была включена возможность использования диапазона дат, то бары, выходящие за пределы указанного диапазона, не генерируются, а просто переписываются в выходную последовательность. Данные не исключаются из последовательности, чтобы оставалась возможность правильно посчитать индикаторы на всей полученной истории. Необходимо заметить, что первые 100 баров также не генерируются. Это ограничение не зависит от установленного диапазона дат.

Чтобы включить ограничение по датам, необходимо выставить флажок "Использование дат" и указать требуемые значения в полях "От" и "До". После того как произведены все настройки, можно нажать кнопку "Старт" и начать тестирование. После начала тестирования в нижней части окна можно просмотреть ориентировочное время завершения этого процесса.

Внимание:
если не выставлен флажок "Оптимизация", по нажатии кнопки "Старт" вместо оптимизации будет производиться тестирование советника;
при оптимизации, как и при тестировании, можно использовать собственные файлы истории.
Бойся гнева терпеливого человека!

Оффлайн awk501

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2048
  • Репутация: 1925
есть еше способ  потестировать индикаторы , например. открываем   любой встроенный советник , ставим галочку визуализировать, запускаем , потом останавливаем , навешиваем   нужные индикаторы ,  запускаем, смотрим . скорость просмотра можно регулировать  движком.
Бойтесь своих желаний - они сбываются!

Оффлайн Paha

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1034
  • Репутация: 1139
  • Подумать надо!
Для тестирования Индикаторов, лучше использовать  советник - "Ручной тестер"  В нем можно и ордера открывать и тралл ставить и стопы!  И отчет создаеться
Бойся гнева терпеливого человека!

Оффлайн awk501

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2048
  • Репутация: 1925
привет облазил свой терминал немогу найти ручной тестер :-\
Бойтесь своих желаний - они сбываются!

Оффлайн Paha

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1034
  • Репутация: 1139
  • Подумать надо!
Зайди пожалуйста по етому адресу,  там все подробнейшим образом расписано автором системы!  Мы почти все ею пользуемся, но ето не значитЮ, что в ней нет определенных изъянов, но об этом гораздо позже!  Там-же по ссылке  все советники и файлы которые нужно установить для тестирования в ручную.!
http://articles.mql4.com/ru/195
Бойся гнева терпеливого человека!