www.timingsolution.ru

     Документация по работе с программой

 

Работа с модулем Back Testing. Примеры

 

 

Пример N1 - выбираем лучшую модель дня

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

Чтобы ответить на этот вопрос, я начал с загрузки данных индекса DJ-30. Курсор, устанавливающий предельную границу обучения нейросети (learning border cursor, сокращенно LBC) зафиксирован на начало января 2004 года (если быть точным, на 2 января 2004 г.): 

Прежде чем делать заключения относительно каких бы то ни было моделей, стоит прояснить саму процедуру их испытания в модуле Back Testing. Данные модели сохраняются программой как файлы с расширением *.hyp (или *.hpp). Обычно, они хранятся в субдиректории \Lib в программной папке  Timing Solution.

Вы можете создавать подобные файлы самостоятельно через модуль Neural Net . Для управления нейросетью, активируйте эту кнопку:

Вы получите окно, которое позволяет создавать с расширением *.hyp:

Здесь Вы можете либо выбрать готовую модель из "Стандартной Библиотеки Моделей", либо создать свою собственную модель (мы можем создавать циклические модели; модели, основанные на событиях цены; и даже модели, основанные на астрономических и астрологических событиях). Например, в списках среди прочих имеется модель основанная на принципах авторегрессии. Когда модель выбрана из библиотеки (или создана Вами собственноручно), нажмите на кнопку "Save":

и сохраните ее в библиотеке моделей (в нашем примере файл Model1).

Прежде чем приступить к конструированию новой модели, нажмите на эту кнопку:; программа удалит все события, участвующие в создании предыдущего файла. Это открывает Вам путь к началу работы над следующими моделями. Например, для нашего специфического примера, нами последовательно были созданы три FAM-модели: Model1.hyp, Model2.hyp и Model3.hyp.

После того как  все необходимые модели были созданы и сохранены, мы должны описать сценарий процедуры под названием Back Testing. Ниже изложен план работы над ней.

Для реализации этой возможности существует несколько путей:

1) через модуль Neural Net:

;

2) через модуль Back Testing в основном окне программы (второй пункт в выпадающем меню):

 ;

3) либо просто нажав на комбинацию клавиш Ctrl+B.

Так или иначе, Вы получите окно, которое позволить Вам приступить к созданию сценария данной процедуры:

Верхняя группа клавиш призвана задать "Price Events (Outputs)", иначе говоря, здесь мы определяем индикатор (в его роли выступает какой-либо осциллятор, созданный на основе ценовых данных на выбранную акцию, либо на значение популярного фондового индекса) поведение которого мы хотели бы предсказать.

Здесь вам следует кликнуть на первую кнопку "+" и выполнить следующую последовательность действий:

В нашем примере мы взяли для работы такой популярный в техническом анализе индикатор, как Relative Price Oscillator рассчитанный для индекса Доу-Джонс. Специфика работы процедуры состоит в том, что она 1) разбивает ценовой файл на равные временные периоды, и 2) определяет в каким из них и какая модель работает лучше. Здесь мы установили период равный 50-ти ценовым рубежам. 

Следующая группа клавиш, "Model (Inputs)", позволяет нам выбрать модели, эффективность работы которых, собственно, и будет проанализирована в процедуре Back Testing:

В данном примере мы выбрали три созданные ранее модели (помечены галочками в нижней части рисунка).

Мы можем установить (или поменять заданные по умолчанию) еще несколько значений в данном окне. Например, в нашем случае мы решили, что нейросеть (NN) будет обучена на последних 2000 событиях ценового ряда (иначе говоря, для тренинга будут взяты данные примерно за 8 лет) перед границей обучающего рубежа (LBC). В пункте Train NN мы устанавливаем значение, сколько шагов должно пройти, прежде чем программа будет визуально обновлять линию прогноза (чем быстрее работает компьютер, тем большее значение можно здесь устанавливать). В пункте odel" мы решили, что в дополнение в основной линии прогноза, основанной на нейросети (Neural Net), программа будет рассчитывать значение еще и линию прогноза, основанной на строго линейной модели (Linear Model).    

{Нажмите на кнопку-пиктограмму с изображением калькулятора; откроется окно, где можно будет увидеть соотношение между количеством ценовых событий и временного интервала, который они, собственно, составляют:

Здесь Вы можете видеть, что на ценовых данных с 25 января 1996 до 31 декабря 2003 программа обучается, а с 31 декабря 2003 она уже работает в предсказательном режиме, и насколько хорошо она это делает, можно проследить вплоть до 13 февраля 2004 года.}

Теперь давайте рассмотрим строку в самом верху окна:

 

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

 

Итак, мы имеем некоторое количество моделей  и сценарий их испытания в процедуре Back Testing. Чтобы оценить качество каждой модели, мы должны определить критерии оценки. Мы можем сделать это в окне "Back Testing Criterion". Для примера, возьмем следующий критерий: корреляция между линией прогноза и ценовым индикатором для 215 ценовых баров после LBC.

 

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

Параметр "Increment LBC" должен выглядеть следующим образом:

Сейчас его значение установлено ноль, поскольку в данном конкретном случае мы будем использовать только одну такую границу. Однако, чтобы увеличить точность процедуры Back Testing, можно использовать несколько LBC; как это сделать, будет описано в следующем примере.

В итоге, окно сценария процедуры Back Testing будет будет выглядеть примерно вот так: 

Нажмите на кнопку "Close and Execute" и программа начнет процедуру тестирования моделей. Его итоги будут подведены в специальном окне, отражающем результаты данной процедуры: 

Таким образом, программа обеспечивает контрольное тестирование, оценивает работу каждой включенной в сценарий модели и показывает наиболее предпочтительную из них относительно выбранных вами критериев. В нашем примере лучшей прогностической моделью на 2004 год для индекса DJ30 оказался файл Model2.hyp, показавший итоговое значение корреляции 0.08. Возможно, это не лучшая модель вообще, но точно наиболее интересная из тех нескольких файлов, что были отобраны нами для процедуры Back Testing в данном конкретном примере.

Кроме того, программа способна генерировать детализированную сводку по итогам испытательной процедуры. Перед нами один такой пример: 

 

Эта диаграмма показывает, что интервал для этого примера был равен 215:2=107 ценовым барам перед LBC и 215+5 ценовым барами после границы обучения. Другими словами, мы можем видеть ценовые подвижки в выбранном тестируемом интервале. Цифра "215" означает длину тестируемого интервала. Вы можете установить название файла сводки и его размер через окно "Back Testing Options".

 

Пример N2 - выбираем лучшие параметры для моделей Spectrum

Процедура Back Testing может быть намного сложнее, чем в вышеприведенном случае. Для примера, давайте приступим к выявлению лучших параметров для модели, основанной на неподвижных циклах (Спектральная модель).

Чтобы найти их, мы должны протестировать следующее:

a) длину интервала, используемую при вычислении в Spectrum (имеется в виду извлечение циклов);

b) длину тестируемого интервала;

c) лучший прогностический отрезок.

Чтобы на результаты нашего тестирования можно было полагаться, следует произвести анализ, в котором граница LBC будет многократно перемещена (чем большее количество раз это будет сделано - тем лучше).

Далее мы рассмотрим, как это сделать. Загрузите индекс Доу-Джонс с 1930 по 2004 год.

Установите LBC на 1982 год (чтобы иметь достаточно пунктов на тестируемом интервале: это откроет нам "оперативный" простор для дальнейшего перемещения LBC):  

Далее Вы должны определиться моделью:

Важное примечание:  в данном примере мы используем несколько учебных интервалов. Другими словами, программа попробует обучить нейросеть (а также вычислить цикловые закономерности) на нескольких интервалах.

Сделайте то же самое для тестируемого интервала:

Последний параметр, который мы должны настроить, это установка значения, сколько раз должна быть перемещена LBC при тестировании результатов:

Обратите внимание на эту строку:

и убедитесь, что количество пунктов в красной "тестовой" области ценового графика достаточно, чтобы произвести процедуру Back Testing. В противном случае следует переместить LBC, кликнув на кнопку:.

Результаты тестирования будут представлены в следующем виде:

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

 

 


Copyright © 2003-2007 www.timingsolution.com