Что подать на вход нейросети? Ваши идеи... - страница 11

 

Тик = Сделка = (Время, Цена, Объем)

Объем подтверждает, что Цена не с потолка. Объема на Форексе НЕТ, поэтому Цена "информационная" (нарисованная). Поэтому ничего не работает... ниже Н4 уж точно - внезапная волатильность высокая.

На фондовых рынках именно Объем объясняет волатильность.

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

Выбрал рандомно 2 месяца форвардов, первый - ноябрь 2021, второй - июль 2022. Перед каждым обучил, повторил "ошибочные" действия. Первые сеты из списка оптимизированных дают положительный исход не только на эти месяцы, но и не сливает (держит флет) до конца 2022. В общем, эти строки, этот беспардонный подход и откровенное издевательство над нейронными сетями и здравым смыслом вызывают боль у здешних профессионалов, не сердитесь. А мы продолжаем. Пробую ещё пару месяцев. 
 
Ivan Butko #:
Допустил ошибку при тестировании, в скрипте экспорта указал экспортировать одни данные, а в советнике забыл продублировать это правило на вход, в итоге - на графике тестера закономерная белиберда, но... если увеличить порог(фильтр) сделок, то на бэке и на форварде можно получить прибыль. 

Выбрал рандомно 2 месяца форвардов, первый - ноябрь 2021, второй - июль 2022. Перед каждым обучил, повторил "ошибочные" действия. Первые сеты из списка оптимизированных дают положительный исход не только на эти месяцы, но и не сливает (держит флет) до конца 2022. В общем, эти строки, этот беспардонный подход и откровенное издевательство над нейронными сетями и здравым смыслом вызывают боль у здешних профессионалов, не сердитесь. А мы продолжаем. Пробую ещё пару месяцев. 

можно ещё перебирать seed. В теории существует значение оптимальное на ближайшие пару лет

 
Maxim Kuznetsov #:

можно ещё перебирать seed. В теории существует значение оптимальное на ближайшие пару лет

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

void seed(int seed=-1)

  {

   if(seed!=-1)

      _RandomSeed=seed;

  }  

 
Не люблю предсказывание на N шагов вперёд, но иногда попадает. Можно в этом направлении покрутить. Ниже слева - прогноз, справа факт. 

 
Ivan Butko #:
Не люблю предсказывание на N шагов вперёд, но иногда попадает. Можно в этом направлении покрутить. Ниже слева - прогноз, справа факт. 

Cкорее всего это "иногда" = 50%. Но проверить надо, может это будет ваша золотая жила.
 

Попробовал подать на вход разность Close[1] и экстремумов через каждые N*2 часовых свечей (24, 48, 96, 192, 384, 768, 1536, 3072).
То есть, экстремумы сегодняшнего дня, ........ за полгода. 

Обучение - год. С 2021 по 2022. 

Форвард с 2022 по сегодняшний день. 

Всего на вход получилось 16 значений. 

Результат интересен тем, что график баланса впервые попытался подняться вверх на форварде. До этого же максимум пару месяцев могли выдержать, но на дистанции всё равно вниз. Программа Neuro Pro

При этом, я не подавал сети значение, которое бы соответствовало предыдущему входу на прошлой выборке (Close[1]- Close[2]), то есть, среди предикторов нет фактических значений.



График хоть и ужасный, но хотя бы даёт основание полагать, что работа с экстремумами может дать какие-то плоды при грамотной работе. 


UPD

Алексей, что помог запустить нейросеть из документации: пока без результатов, какая-то хаотичная картинка. Либо она не предназначена для цен, либо её нужно дорабатывать и как-то по другому варить

 

На вход нейронки нужно подать

I`m sorry

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

Попробовал поставить задачу по-другому: открывать любую сделку тогда, когда выход нейросети будет равен следующей цене +/- n пунктов, и тут же её закрывать. На вход - только две предыдущих цены закрытия. Оптимизируемые параметры - веса. Вот только никакой нейронки в привычном смысле - просто перемножаем веса на эти два входа. Результат сложения плюсовых и минусовых значений по итогу даёт "виляние" выходного числа в районе следующей цены. И чем меньше задавать параметр n, тем ближе выход будет соответствовать следующей цене +/- n. 

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

Ну и ради чего всё это: ждём окончания оптимизации, выбираем сет с наибольшим количеством сделок и ставим другое условие: когда прогноз улетит пунктов на "много" - открываем в ту сторону сделку. 

Просто наблюдение, надо будет попробовать потестить дальше.
 
Пару месяцев назад пробовал изменить подход: 

выбираю место на графике, где был долгосрочный тренд вниз. Причем, от начала и до конца. 

И оптимизирую только сделки BUY
SELL отключаю. 

По окончании выбрал верхний сет по категории либо "макс комплекс решение", либо " Макс фактор восстановления"

Запускаю форвард одним этим BUY - полтора года стабильный рост. Причём, красиво так поднимающийся слегка колышащийся баланс, как будто после неудачного входа заходишь повторно по лучшей цене. 

Идея такая: обучать в трушной нейронке (с обратным проходом) или оптимизировать (в тестере) SELL на нисходящем графике или BUY на восходящем - это переобучать. 

Такое положение подтверждается обучением на евродолларе за 2020 год, после которого ровно в новый год тренд разворачивается. И все топовые сеты в оптимизаторе или обученные модели трушной нейронки проваливаются. 

А если обучать 2021 год, то подавляющее большинство сетов или моделей справляются с почти всем 2022-м, пока у него в ноябре или где-то там осенью не разворачивается долгосрочный тренд. 

// ---------

Об идеях на вход:

У трушных нейронок попробовал разметить  график следующим образом: заглядываем вперёд и от последней цены закрытия отсчитываем максимальную амплитуду последующих цен закрытия вверх и вниз. 

Какая из сторон ушла за 100 пипсов, в ту сторону и разметка (аналог стоп-лосса с противоположной стороны, который не сработал). 
То есть, прошлись циклом по форварду и если до 3-ей, 5-й, 10-й цены закрытия больше 100 пипсов и эта цена выше текущей цены - то весь сет входящих переменных на вход нейронки помечается, как 1, если в обратную сторону, то -1. 

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

Первая тень - тело - вторая тень. 
Соответственно, если свеча вверх, то первая тень - это движение вниз, то и размер его будет со знаком "-".
Потом преобразовал все значения в диапазон от -1.0 до 1.0. 

В результате чего с MLP -нейронкой (NeuroPro) и архитектурой 10-10-10 форвард проехался 4-5 месяцев тонкой возрастающей линией баланса, и что самое главное - высокой частотой сделок. 

С NeuroPro  у меня пока это лучший разовый результат. В 99,9℅  случаев она переобучает настолько, насколько это возможно. 

// -----

Параллельно играюсь с нейронкой в оптимизаторе. 

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

Поскольку оптимизатор ограничен количеством внешних переменных и шагом изменения, то приходится экономить. 

Сейчас собран CNN-MLP,  8 фильтров, пулинг с размером 2, после чего остаётся 4 выхода, которые передаются на полносвязный MLP- слой из 4-х нейронов с сигмоидной функцией активации (или тангенсом, не помню). 

Хочу теперь добавить LSTM, какая-то супер-пупер технология забывания или хранения состояния каждого слоя. Погуглил - какая-то сложная штука, но процедурными методами mql5 можно реализовать. 

Получится CNN-LSTM-MLP архитектура на генетическом алгоритме (оптимизатор). 

Знаю, что любая нейросеть с обратным распространением ошибки (настоящим обучением) теряет свой смысл при переходе на оптимизаторный подбор весов. 
Но, тут просто любопытно покрутить в руках
Причина обращения: