Нейро-прогнозирование фин.рядов (на основе одной статьи) - страница 8

 

Я так думаю нужно вести работы в направлении поиска функции иптимизации. Тоесть поиск целевых функций. Что мы хотим чтоб сеть нашла на участке оптимизации???? Параметры для максимального баланса на этом же участке. Нет, потому как практика показывает что в будущем это не работает. Значит искать нужно ключивые моменты которые сейчас не работают, но начнут работать в будущем. а для этого нужно собрать статистику, прикинуть какие моменты когда и как работают....

Ну вот смотрите что мне пришло в голову, может это и не реально но это дорога... цель так сказать.

делаем следующее.

Всё как я делал на скринах с НШ.

1. Тренируем сеть на участке 6 месяцев. Если НС на машках, она выучит эти параметры очень хорошо, торговать будет нормально.

2. Берём 3 месяца первых, смотрим на результат торговли сети. (по идеи результат должен быть хороший, сеть ведь эти данные видела)

3. Оптимизируем сеть так чтобы она выучивала именно те самые параметры которые мы уже знаем.

4. Ищем, подбираем, выдумываем такую функцию которая сможет приводит оптимизацию конкретно к этим параметра.

5. найдя функцию. тестируем на участке который не предъявлялся сети.......

Сейчас попробую в НШ частично на это посмотреть....

 
Reshetov:

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


Я имел ввиду резкие изменнения, непредсказуемые движения и т.д.
 
Но облом в том что в НШ с целевыми функциями сложности... Так промсто так не выковыряеш их...
 
nikelodeon:

Я имел ввиду резкие изменнения, непредсказуемые движения и т.д.

Сетку можно научить сидеть на заборе, когда такие движухи появляются. Вот так например: https://www.mql5.com/ru/code/10151

 
nikelodeon:
Но облом в том что в НШ с целевыми функциями сложности... Так промсто так не выковыряеш их...


Хм. Я обычно обучаю нейросети в статистическом пакете, в котором в качестве целевой функции отнюдь не значение баланса на периоде обучения или тестирования, а значение ошибки на выходе сети. Это классический вариант машинного обучения, в принципе. Можно экспериментировать со значением ошибки: брать сумму квадратов ошибки; сумму квадратов, деленную на количество примеров; ошибку по модулю. И это не предел.

Затем обученная сеть в формате dll обменивается сигналами с роботом. Свобода действий просто огромна...

 
Reshetov:

Сетку можно научить сидеть на заборе, когда такие движухи появляются. Вот так например: https://www.mql5.com/ru/code/10151


Также можно использовать СКП. На обучающих примерах сначала обучается СКП, замеряется максимальная ошибка при определении принадлежности примера к ячейке или кластеру. Потом на этих же данных обучается одна или несколько нейросетей, осуществляющих, например, прогнозирование инкремента цены на шаг вперед. А в работе, новые, неизвестные ранее примеры сначала сверяются с настроенной СКП и при превышении заранее установленного порога ошибки прогнозирующая сеть НЕ включается, либо торговый робот не реагирует на сигнал от сети. Вкратце, используем СКП для выявления аномалий и не торгуем на них. Практический пример: на дворе осень 2008 года. Мы обучили нейросети и решили поторговать в течении квартала. Идет обвальная динамика на всех основных парах, львиную долю примеров СКП просто отфильтрует и недопустит принятия торговых решений. Но все это для меня теория. И бла бла бла. На практике не проверял.
 
f.t.:

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

ни одна НС без переобучения (в смысле обучения на новых данных) работать не сможет. Рынок меняется и сетка должна этому учится. Вопрос в том - когда начинать новое обучение? ;)

Да и потом, что вы сможете "поправить" в сетке когда она "поламается", слои поменять да к-во нейронов, другую функцию передаточную.... но ведь вы никогда не будете знать ТОЧНО что именно и как и куда нужно менять. До тех пор пока не подгоните сетку под новый рынок дела не будет. А это совсем не тоже самое что обложить печатью блок if ( Price == Ask ) и увидеть что Ask = 1.2345 а Price почемуто получился 1.23449999999.

А теперь представьте свой разговор с возможным инвестом, который вас спрашивает: "а что ты будешь делать когда оно перестанет зарабатывать?" Угадайте какой ему ответ больше понравится?

1) снова начну обучать НС и когда (если) она научится - снова пущу ее зарабатывать (если к тому времени рынок снова не изменится)

2) обложу отладочной печатью, найду ошибку и поправлю ее

Так что если вы "из интересу" - то конечно-пожалуйста. а если деньги зарабатывать? ;)


Уже пошли ролевые игры? Я здесь не помощник ))) Это в топике обсуждать не буду, Вы как хотите.

Вы, в силу своего ограниченного опыта общения с НС, рассматриваете этот инструмент apriori как подгонялку под данные, черный ящик, грабли на чистом месте и т.д. Кол-во слоев, нейронов, связки функций - все это ненужный багаж в неумелых руках. Во-первых, нужно иметь идею, почему сеть должна работать, и эта идея должна провериться затяжными форвард-тестами на разных участках временного ряда. Оценка рисков делается заранее, а не по факту наступающего слива. Ей богу. Я лично не слил ни копейки с помощью НС; сливаю лишь на демо )

Второе, что хотел сказать, серьезный адепт нейро после проведения всех необходимых тестов еще и озаботиться проблемой rule extraction или, говоря по-русски, пониманием эвристик, которые образоваются в ходе обучения внутри НС - суть правил, по которым происходит формирование выходных сигналов, в зависимости от того, что на входе. Все черные ящики идут ЛЕСОМ. Нужно вникать в логику работы нейросети и понимать, что она делает. Joo также про это написал, и это логично. Иначе получается, что в Советской России НС управляет вами. Ха.

 
alexeymosc:
Как успехи с лекциями? :)
 
TheXpert:
Как успехи с лекциями? :)


Да так... Надеюсь, они будут доступны и потом для постепенного освоения. Что-то работа меня поглотила в последнее время.

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

 

Еще одна статья об успешном применении нейро-технологий к прогнозированию.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.184.7175&rep=rep1&type=pdf

В ней используются методы теории хаоса для формирования лагов входного вектора. Также применяется наказание сети за неверные прогнозы. Тестовая выборка - 100 дней. Результаты прикольные: 80% и более попаданий. Но прогнозируется в этот раз тренд вверх (+2%) либо тренд вниз. Кстати, из личного опыта скажу, что тренды на рынке акций прогнозируются хорошо, там другие подводные камни есть, типа, если ошибся, то убыток большой, съедает стат. преимущество. Хотите верьте, хотите нет, я тоже получал точность 80% на тестах.

Причина обращения: