Как меняется Equity, если “учитель” (ИИ DNN LSTM) будет менее дерганным
Раннее писал о том, как наконец запустил обучение нейронных сетей в связке Metatrader+dll+R+Python+(Deepnet, Keras, Tensorflow и др).
Раз все теперь работает корректно, можно продолжить эксперименты.
В предыдущий раз, я использовал более менее дефолтные настройки, которые уже не раз запускал для отладки работы самих алгоритмов и технологической связки.
Настало время немного “подкрутить” параметры. Для иллюстрации, того, как изменится кривая Equity изменим параметры учителя немного, а именно сделаем два канала и синхронизируем их. Все, что не удалось синхронизировать в одинаковую сторону сигналы двух каналов, обозначим, как NA и в последствии уберём из обучающей выборки.
Период, принципы торговой системы (ТС) из предыдущей статьи и другие параметры сетей изменять не будем (пример №1 из предыдущей статьи).
Был запущен дополнительный вариант тестирования, при котором позиция закрывалась на следующем баре, если не достигла заданного TP. Посмотрим, что получилось.

Исходные и обработанные данные
View(price)
Все образы (image) сохраняются на диск, поэтому не составляет труда открыть любой в RStudio и посмотреть, что происходило.
Исходная выборка данных переданная из #Metatrader в #RTerm выглядит в #RStudio так

View(data_f_tmp$data_train)
Пред обработанная скриптом обучающая выборка для модели DNN (библиотека deepnet) немного отличается. Добавляется учитель ZZ менее “дерганный”, так как синхронизуется по двум каналам, первы = 5.1, второй 15.1

Добавились данные “учителя” от функции ZZ с синхронизацией двух каналов.
Все метки и данные с NA убираются из выборки для следующей обработки. Если используется вид рекуррентных сетей с окном и в окне будут данные с NA, то серия этого окна убирается целиком, как негодная для обучения.
View(DT$train)
И, наконец, выровненная перемешанная выборка “train” для обучения модели. Индексы строк позже обнуляются (перед функцией обучения).

Результаты работы алгоритма
Accurancy на тестовой выборке ~0.42-0.53. Но сигналы стали более постоянными, долгосрочными (не меняются на каждом баре).
В тестере стратегий выглядит так.
№ 1


№ 2


Расшифровка
№ 1 — Библиотека Deepnet (3), модель #DNN, два канала ZZ, avg accurancy = 0.4 — 0.52
№ 2 — Библиотека Deepnet (4), модель #DNN, два канала ZZ, avg accurancy = 0.4 — 0.52, закрытие позиции на следующем баре если профит положительный
Ссылка на архив с результатами в формате Excel / HTML — https://disk.yandex.ru/d/O_EzNZ_DLaqqvw
Итого
Как будто стало лучше. Отдельно можно отметить, что будет, если в ТС добавить закрытие позиций на следующем баре при профите больше 0. Это более длинные серии сделок, в отличии от ожидания установленного TP и SL. И то, что cumco на графике Equity в тестере MT5 стало видно, а не только в RStudio.
Исход в обоих случаях один и тот же, двуканальный ZZ для “учителя” помог сигналу быть более стабильным и постоянным в определенном направлении. Однако параметры ТС сильно влияют на конечный результат при работе одной и той же нейронной модели.
Был ли у вас какой либо положительных или отрицательных опыт, поделитесь.
#Metatrader, #MT5, #ML, #DL, #DNN, #RSI, #LSTM, #RStudio, #RTerm, #R, #MQL5, #Python, #KERAS, #TENSORFLOW, #трейдинг, #техический_анализ