Дополнение (Add-ons) Turning Points - Часть 2

Дополнение (Add-ons) Turning Points
Продолжим наше исследование по созданию нейронных сетей для торговли в программе NeuroShell Day Trader Professional. Сейчас мы создадим ещё три нейронных сети, но на этот раз попробуем использовать не базовый набор индикаторов, а аддоны.

Аддоны это дополнения к программе NeuroShell, которые приобретаются отдельно. В этот раз мы воспользуемся аддоном Turning Points.

Этот набор индикаторов, основан на идее поиска локальных пиков и впадин во временных рядах. Пик определяется как точка, в которой цена high больше или равна ценам high в окрестности этой точки. Впадина определяется как точка, где цена low меньше или равна цен low в окрестности. С этим, а также некоторыми другими описаниями дополнений к NeuroShell DayTrader Professional, более подробно можно ознакомиться в статье Дополнения (Add-ons) к NeuroShell Trade.

В качестве входов первой сети этой серии мы используем 8 индикаторов из набора Turning Points. 4 индикатора типа mean VP и 4 индикатора типа mean PV.


Список инструментов и индикаторов используемых в качестве входов в сети

Параметр Neighborhood Search Space во всех индикаторах установим в диапазоне от 1 до 10. А параметр Window Search Space в диапазоне от 2 до 120.

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

После того, как диапазоны для оптимизации установлены, в Modify Parameters в закладке Dates, нужно установить периоды для оптимизации, бумажной торговли и торговли в режиме реал-тайм. На следующем рисунке показаны периоды, которые были выбраны в данном случае.

Установка временных диапазонов для тренировки сети

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

Вот что удалось получить с помощью этих индикаторов:

Тренировка на низковолатильном периоде и проверка на высоковолатильном

Ниже показаны параметры, с помощью которых удалось получить такой результат:

Output – Percent Change in Open; 4 bars;
Inputs – Full Optimization;
Dates - Save optimization which performs best on later paper trading; Save trading before last chart date;
Positions – Use the trading rules specified below; All 0;
Training – Maximize Net Profit; 20 hidden neurons;
Optimization – Maximum number of inputs – 4;

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

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

Входы и параметры выбранные оптимизатором

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

Назовём эту сеть Mean VP & PV и приступим к созданию следующей.

В качестве входов для второй сети применим следующую группу индикаторов из набора Turning Points типа  median VP и median PV. Всего будет 8 индикаторов по 4 из каждого типа. Диапазоны установим такие же, как и до этого.

Входы и диапазоны параметров для второй сети

Значения в Modify Parameters подберём опытным путём. Как и в предыдущем случае получилось достигнуть нескольких хороших результатов. Вот наилучший из них:


Параметры в этом случае немного отличаются:

Output – Percent Change in Open; 10 bars;
Inputs – Full Optimization;
Dates - Save optimization which performs best on later paper trading; Save trading before last chart date;
Positions – Use the trading rules specified below; All 0;
Training – Maximize Net Profit; 10 hidden neurons;
Optimization – Maximum number of inputs – 8;

И наконец, вот входы и параметры индикаторов, которые выбрал оптимизатор:

Входы и параметры выбранные оптимизатором

Оставим все входы, зафиксируем параметры индикаторов и сохраним эту сеть, присвоив ей имя Median VP & PV.

Для создания третьей сети применим все те же правила, что и при создании двух предыдущих, поэтому не будем останавливаться на подробные объяснения, чтобы не повторяться.

8 индикаторов из набора Turning Points типа SD VP & PV.

Список индикаторов для создания третьей сети

Наилучший результат:


Output – Percent Change in Open; 10 bars;
Inputs – Full Optimization;
Dates - Save optimization which performs best on later paper trading; Save trading before last chart date;
Positions – Use the trading rules specified below; All 0;
Training – Maximize Net Profit; 10 hidden neurons;
Optimization – Maximum number of inputs – 8;

Входы и параметры индикаторов:

Входы и параметры выбранные оптимизатором

В итоге, на основе полученных результатов, мы можем сделать вывод, что сети, на вход которым поданы разные группы индикаторов из набора Turning Points, после обучения на участке с низкой волатильностью, дают очень хороший результат на участке с высокой волатильностью, даже без переобучения. Это говорит о том, что эти индикаторы обладают свойством устойчивости и универсальности. Теперь нам осталось выяснить, как часто придётся переобучать эти сети для того, чтобы иметь стабильный успех в торговле. Давайте посмотрим сначала, какой бы результат получился, если бы мы продолжили торговать с этими же настройками. То есть, не переобучая сети на свежих данных.

Добавим в будущее исторических данных, имитируя, таким образом, режим реал-тайм. И выведем на график кривые Equity от трёх созданных сетей.


Данные были добавлены от 18 мая (отмечено жёлтой линией на графике) до 9 июня. Для тренировки сетей было выделено 12 дней. Это 3456 пятиминутных баров. Для бумажной торговли было выделено столько же данных. И период для тренировки, и период для бумажной торговли находились в зоне пониженной волатильности. В течение шести дней в режиме реал-тайм сети приносили прибыль. На седьмой день 5 мая индикатор ATR построенный на дневном графике пересёк уровень 0.0160, этот момент отмечен на рисунке первой красной линией. Ранее мы определили, что после пересечения этого уровня валютная пара EURUSD входит в зону высокой волатильности.


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

Наша задача сейчас определить, когда нам лучше заново тренировать сеть, чтобы приток прибыли был максимально стабильным. Попробуем сначала такой вариант.  Если сеть тренируется на участке длительностью в 12 дней (3456 баров) и период бумажной торговли такой же, то торговля в режиме реал-тайм будет длиться 24 дня. После чего тренируем сеть заново. А для тренировки используем те данные, которые до этого были в первой половине режима реал-тайм. В данном случае период для тренировки это данные от 27 апреля до 13 мая.

* * *

Эта часть исследования обрывается на этом месте. Так как статьи переносил сюда из архива, то уже не вспомнил, почему я тогда забросил этот эксперимент. Может быть позже вернусь к нему, чтобы освежить память. :)

***

Статьи из этой серии:



Модифицированные базовые индикаторы в NeuroShell DayTrader - Часть 1
Разборки с волатильностью - Часть 3 


Комментариев нет :

Отправить комментарий