Вероятностная нейросеть и шаблоны.

 

Этим летом заинтересовался автоматической торговлей. Пробовал писать советников - сначала пипсовщики, затем на основе индикаторов и наконец добрался до нейросетей. Пробовал использовать нейросети разной архитектуры (реализовывал всё сам без применения различных пакетов для работы с нейросетями) - многослойные перцептроны, рекуррентные сети и вероятностные нейросети. Вероятностную нейросеть, естественно, писал не с нуля, а опираясь на работы klot'а (за что ему отдельное спасибо).

Изложу суть одной своей идеи.

Советник состоит из вероятностной нейросети и нескольких шаблонов, заданных четырёхточечными сплайнами Безье. На каждом новом баре снимаем показания каких-либо неперерисовывающихся индикаторов на последних барах, фильтруем и нормализуем их, после чего при помощи вероятностной нейросети находим самый близкий шаблон к данным, снятым с индикаторов. Соответственно, каждый шаблон принадлежит одному из трёх классов - flat, buy или sell; в зависимости от класса наиболее близкого шаблона - покупаем, продаём или ничего не делаем :) Причём открытие и закрытие производятся при разных вероятностях принадлежности классу, т.е. если, например, вероятность движения вверх больше 20% - закрываем все позиции вниз, но открываемся вверх лишь когда вероятность движения вверх станет более 25%.

В аттаче - некоторые фрагменты кода и несколько отчетов тестировщика - с лотом, пропорциональным капиталу, и постоянным лотом. Оптимизировать практически нечего (разве что шаг трэйлинга да стоплосс, остальные параметры выставил вручную так, как посчитал нужным).

Теперь постановка проблемы: советник торгует ооочень редко, а от трендов берет процентов 5-10. Очевидно, тут дело в том, какие у меня шаблоны и данные, из которых формируются входы нейросети.

Реально ли создавать шаблоны на ходу, т.е. сделать эту систему адаптивной (возможно, отказавшись от сплайнов)? Знаний, увы, не хватает, т.к. в этом году только закончил школу :)

Жду объективной критики и предложений.

Файлы:
pnntrade5.rar  46 kb
 
в среднем 4 сделки в месяц. меня такой результат, устроил бы
 
меня уустроил бы 20 сделок в месяц
 
Olimp >>:
меня уустроил бы 20 сделок в месяц

это каждый день по сделки, получается, что внутридневная торговля

 
lea >>:

Этим летом заинтересовался автоматической торговлей. Пробовал писать советников - сначала пипсовщики, затем на основе индикаторов и наконец добрался до нейросетей. Пробовал использовать нейросети разной архитектуры (реализовывал всё сам без применения различных пакетов для работы с нейросетями) - многослойные перцептроны, рекуррентные сети и вероятностные нейросети. Вероятностную нейросеть, естественно, писал не с нуля, а опираясь на работы klot'а (за что ему отдельное спасибо).

Можно Ваш номер аськи, хочу разобраться с нейросетями

 
m_a_sim писал(а) >>

Можно Ваш номер аськи, хочу разобраться с нейросетями

Номера ICQ у меня нет. Поэтому связь возможна только через форум или e-mail.

Могу порекомендовать следующую литературу:

Роберт Каллан - "Основные концепции нейронных сетей"

L.R.Medsker, L.C.Jain - "Recurrent Neural Networks. Design and Applications"

Станислав Осовский - "Нейронные сети для обработки информации"

Кроме того, очень полезно будет посмотреть:

http://www.basegroup.ru/ - есть исходники на Delphi компонентов для работы с нейросетями и вейвлетами

http://www.generation5.org/

http://generation6.narod.ru/

http://www.gotai.net/index.aspx

http://www.ip-atlas.com/pub/nap/

http://www.herselfsai.com/source-code

http://www.ip-atlas.com/pub/nap/nn-src/

http://qai.narod.ru/

http://www.orc.ru/~stasson/neurox.html

http://nnet.chat.ru/

http://www.aimatrix.nm.ru/

m_a_sim писал(а) >>
в среднем 4 сделки в месяц. меня такой результат, устроил бы
Всё же количество сделок - это немного другой вопрос. Кому-то достаточно редкой, но меткой торговли; другим будет скучно наблюдать за советником, который за 8 лет совершает 500 сделок. Я считаю, что одной из проблем моего советника является то, что он упускает огромное количество шансов заработать.
Количесто сделок, на мой взгляд, должно увеличиться, если шаблоны будут выделяться на ходу, т.к. я не могу на графике увидеть все возможные шаблоны, предшествующие большим движениям. К сожалению, пока что я не нашел ничего доступного (в плане понимания), а изобретать велосипед не хочется. Хотелось бы услышать мнение тех, кто занимался подобными вопросами - может подкинут названия литературы, которую можно почитать на эту тему, или каких-либо ссылок по данному вопросу.
 

Тоже прочитал статью Клота и написал свой советник. Тест за 2008 год до 6 ноября


 
lea >>:

Этим летом заинтересовался автоматической торговлей. Пробовал писать советников - сначала пипсовщики, затем на основе индикаторов и наконец добрался до нейросетей. Пробовал использовать нейросети разной архитектуры (реализовывал всё сам без применения различных пакетов для работы с нейросетями) - многослойные перцептроны, рекуррентные сети и вероятностные нейросети. Вероятностную нейросеть, естественно, писал не с нуля, а опираясь на работы klot'а (за что ему отдельное спасибо).

Изложу суть одной своей идеи.

Советник состоит из вероятностной нейросети и нескольких шаблонов, заданных четырёхточечными сплайнами Безье. На каждом новом баре снимаем показания каких-либо неперерисовывающихся индикаторов на последних барах, фильтруем и нормализуем их, после чего при помощи вероятностной нейросети находим самый близкий шаблон к данным, снятым с индикаторов. Соответственно, каждый шаблон принадлежит одному из трёх классов - flat, buy или sell; в зависимости от класса наиболее близкого шаблона - покупаем, продаём или ничего не делаем :) Причём открытие и закрытие производятся при разных вероятностях принадлежности классу, т.е. если, например, вероятность движения вверх больше 20% - закрываем все позиции вниз, но открываемся вверх лишь когда вероятность движения вверх станет более 25%.

В аттаче - некоторые фрагменты кода и несколько отчетов тестировщика - с лотом, пропорциональным капиталу, и постоянным лотом. Оптимизировать практически нечего (разве что шаг трэйлинга да стоплосс, остальные параметры выставил вручную так, как посчитал нужным).

Теперь постановка проблемы: советник торгует ооочень редко, а от трендов берет процентов 5-10. Очевидно, тут дело в том, какие у меня шаблоны и данные, из которых формируются входы нейросети.

Реально ли создавать шаблоны на ходу, т.е. сделать эту систему адаптивной (возможно, отказавшись от сплайнов)? Знаний, увы, не хватает, т.к. в этом году только закончил школу :)

Жду объективной критики и предложений.

Привет ! у меня дурацкий конечно вопрос но сложно ли создать свою мтс на основе нейросети (худобедную), и долго ли?) и вообще с чего начать?)

 
lea писал(а) >>

Реально ли создавать шаблоны на ходу, т.е. сделать эту систему адаптивной (возможно, отказавшись от сплайнов)? Знаний, увы, не хватает, т.к. в этом году только закончил школу :)

Жду объективной критики и предложений.

lea, а можно рисунок как выглядит один из шаблонов?

 

Допустим, вот так...


Example

На самом деле всё гораздо сложнее (шаблонов может быть несколько для разных индикаторов и т.д.)

 

При смене текущего класса (например с флета на тренд)

- преобразовываете кусок временного ряда в шаблон

- добавляете шаблон или заменяете самый старый/редкий на новый, вместе с текущим классом

Поскольку в ВНС вы определяете евклидову близость между двумя временными рядами,

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

Параметрический здесь конечно не очень удобен. Используйте полиномы, фурье или вейвлеты.

Фактически у вас шаблоны - просто способ сжатого хранения вр.ряда в памяти.

Поэтому сеть у вас очень медленная.

Обычно делают наоборот, классифицируемый образец заменяют на набор коэффициентов, который сравнивают с шаблонными наборами коэффициентов.

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