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

в 6:15, , рубрики: data mining, machine learning, нейро-нечеткие сети, нейронные сети, нечеткие сети, обучение, прогнозирование, сугено, финансовые рынки

Описание проблемы и постановка задачи

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

В данной статье мы рассмотрим эксперимент с обучением и тестированием модели в текущей неоднозначной экономической ситуации при помощи нейро-нечетких сетей.

image

Подход к решению

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

Основные сведения:
1. Актив — золото.
2. Дневной таймфрейм. Более короткие таймфреймы являются более зашумленными.
3. Прогнозирование тренда будет строиться на базе 5 предыдущих состояний.
4. В качестве внешней информации будем располагать только ценой, это позволит оценить возможность использования на практике только самой цены при прогнозировании.

Структура сети

Структура гибридной сети изображена на рисунке ниже. Сеть представляет собой:
1. Количество входных переменных — 5. Каждая входная переменная представляет собой изменение цены за интервал Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 2.
2. Количество функций принадлежности для одной входной переменной — 3. Вид функции Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 3.
3. Количество правил — 283.
4. Одна выходная переменная. Представляет собой изменение цены на момент закрытия и открытия относительно цены открытия (расчет по аналогии с входными переменными).
5. Тип сети — Сугено. Обучение происходит гибридным методом.
Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 4

Более подробно функционирование сети описано в этой статье.

Обучение сети

Данные по золоту были экспортированы за следующие периоды (дневной таймфрейм):
1. 1 января 2014 — 30 ноября 2014 (обучающая выборка №1). Объем данных: 280.
2. 1 октября 2014 — 30 ноября 2014 (обучающая выборка №2). Объем данных: 47.
3. 1 декабря 2014 — 18 января 2015 (для тестирования натренированной сети). Объем данных: 32.

Здесь представлена ошибка обучения для двух выборок. Ошибка по первому набору данных стремительная снижалась на протяжении трех эпох и зафиксировалась на уровне 0.002875 после четвертой. Ошибка по второму набору зафиксировалась уже после первой итерации на уровне 0.000060239 и далее не менялась.
Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 5

Функции принадлежности для двух натренированных сетей выглядят следующим образом. Для второй сети они являются более симметричными.
Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 6

Практическое использование

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

Согласно нашей задаче, мы должны получить на выходе решение: тренд пойдет вверх, пойдет вниз или ничего не делать. Поскольку границы между этими показателями размыты, то необходимо проанализировать распределение выходной переменной. Ниже график распределения изменения цены на дневных таймфреймах за 17 лет.
Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 7

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

Disclaimer

Чтобы соотнести полученные результаты с каким-либо финансовым инструментом, то для простоты понимания я выбрал бинарные опционы. Хочу отметить, что данный вид следует использовать только в академических целях, поскольку все брокеры БО работают против трейдеров и очень высок риск потери средств.

Для оценки результата, можно воспользоваться таким спорным финансовым инструментом, как бинарные опционы. Суть его проста, вы делаете прогноз куда пойдет цена — ввех или вниз. Таймфреймы используются различные, в зависимости от брокера (1m, 15m, 1h, 1d, 1w и пр.). Если ваш прогноз верен, то вы зарабатываете до 100% от вашей ставки, если неверен, то вы теряете ставку (некоторые брокеры возвращают некоторую часть от ставки).

Воспользуемся для расчета реальной доходности условиями следующего брокера БО. Условия для золота следующие: при верном прогнозе прибыль 88% от ставки, при неверном возвращается 10%. Будет работать с дневным таймфреймом, поскольку сеть натренирована на нем.

Возьмем к примеру сумму начальных инвестиций — $5000. Рекомендуемая ставка в рамках системы риск-менеджмента для БО 3-5% от суммы на балансе. Возьмем $250. Если прогноз нашей системой будет верным, то согласно правилам мы заработаем на операции $220, при неверном прогнозе потеряем $225.

Лог операций выглядит следующим образом
Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 9

За период 01.12.2014 — 18.01.2015 торговых дней 32. График баланса
Эксперимент с гибридными сетями для прогнозирования тренда на финансовых рынках - 10

Выводы

Текущая система показала > 60% верных прогнозов направления тренда. При улучшении системы можно добиться результатов 80-85%. Доходность за тестовый период при работе с БО составила > 25%. Полученные результаты можно использовать в качестве СППР при разработке торговых систем на extraday-стратегиях, а при уменьшении таймфрейма на intraday.

Автор: sermal

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js