Применение нейронных сетей и генетических алгоритмов...

Post on 02-Jun-2015

2.421 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

Применение нейронных сетей и генетических алгоритмов при торговле на бирже.

TRANSCRIPT

Цуканов Павел

ptsukanov@codereign.net

Skype: cpp.tula

Применение нейронных сетей и генетических алгоритмов при торговле на бирже.

Введение Знаком с Forex c 2007 года Веду блог http://cpp-forex.blogspot.com Первую МТС написал в 2008 Торговля на бирже для меня хобби, когда есть

свободное время Темы торговли на бирже, нейронных сетей и

генетических алгоритмов очень объёмны. Здесь же я представил всё в сжатом виде. Если что будет не раскрыто полностью – задавайте вопросы прямо по ходу доклада!

Forex Forex – если просто - это межбанковская валютная

биржа Почему Forex? - Сейчас и сам не знаю Как торговать? Через дилеров при помощи

торговых терминалов. Дилер это ваш друг и враг! Наиболее распространённый терминал для

торговли на Forex – Metatrader (http://www.metaquotes.net/)

Вы можете заработать? ДА. Однако По статистике только 3% людей зарабатывают на

Forex

И если решитесь. НИ В КОЕМ СЛУЧАЕ НЕ НАЧИНАЙТЕ ТОРГОВЛЮ С БОЛЬШИХ СУММ.

И если не последуете последнему моему совету, то….

Вы испытаете шок

МТС МТС – это механическая торговая система. Почему

механическая? Не спрашивайте – не знаю Терминал Metatrader позволяет писать МТС при

помощи своего встроенного языка mql4, mql5 Может ли МТС торговать? Проверьте это посетив

чемпионат МТС http://championship.mql5.com

Зачем МТС? Я тоже решил поучаствовать в 2008 году

График торговли моего советника на исторических данных 2008 года

И... закономерный результат депозит был слит за 2 недели

НейронВходы Веса Ячейка Аксон Выход

S

W1

W2

W3

Wn

X1

X2

X3

Xn

……

Y

S=∑𝑖=0

𝑛

𝑋 𝑖𝑊 𝑖

𝑌= 𝑓 (𝑆)

𝑓 (𝑆 )= 1

1+𝑒−𝑎𝑠

Состояние нейрона

Активационная функция

f’(x) = af(x)(1-f(x))

Нейронная сетьВходы Слой 1 Слой 2 Слой 3

X1

X2

X3

Y1

Y

Обычно нейронная сеть выглядит так!

Обучение нейронных сетей• Способов Очень Много

• Однако можно разделить на 2 класса

• Детерминистские

• Стохастические

Метод обратного распространения

X1

X2

X3

Y

Обучаю

щая п

ара

(Образе

ц)

Обучаю

щая п

ара

(Резу

льта

т)

Разница

W11

W12

W13

W21

W22

W23

W31W32

W32

1W11

W12

W13

W21

W22

W23

W31W32

W32

W11

W12

W13

Случайно Установка весов

Генетическим алгоритмомX1

X2

X3

Y

Обучаю

щая п

ара

(Образе

ц)

Обучаю

щая п

ара

(Резу

льта

т)

W11

W12

W13

W21

W22

W23

W31W32

W32

W11

W12

W13

W21

W22

W23

W31W32

W32

W11

W12

W13

Набор обучающих пар

Особь

ВесаАктивационная

функция

Размножение

Случайно

Целевая функция

(Значение разницы)

Размножение

Особь 30

ОсобиЦелевая функция

10001.

Особь 2 5882.

Особь 5 5003.

Особь 11 4584.

Особь 7 3995.

Особь 5 100N-2.

Особь 4 34N-1.

…………………

Особь 18 10N.

Зона выживания

Зона смерти

N-2.

N-1.

N.

Особь 31 0

Особь 32 0

Особь 33 0

N-2.

N-1.

N.

400

300

40

Особь 31 400

Особь 7 399

Преимущество генетических алгоритмов при обучении

Экстремумы

Лучшее решение

Есть много вариантов решений и мы можем в них застрять

Генетический алгоритм позволит этого избежать (теоретически )

Преимущество генетических алгоритмов при обучении

Особь 30 1000

Особь 2 588

Особь 5 500

Особь 11 458

Особь 7 399

Особь 5 100

Особь 4 34

…………………

Особь 18 10

Особь 31 0

Особь 32 0

Особь 33 0

400

300

40

Особь 31 400

Особь 7 399

1.

2.

3.

4.

5.

N-2.

N-1.

N.

N-2.

N-1.

N.

N-2.

N-1.

N.

Processor/server 1Processor/server 2

Processor/server 3

Processor/server 4

Processor/server 1

Processor/server 2

Processor/server 3

Processor/server 4

Большие возможности распараллеливания

Преимущество генетических алгоритмов при обучении

Широкое возможности по конфигурации сетиX1

X2

X3

Y

Обучаю

щая п

ара

(Образе

ц)

Обучаю

щая п

ара

(Резу

льта

т)

W11

W12

W13

W21

W22

W23

W31W32

W32

W11

W12

W13

W21

W22

W23

W31W32

W32

W11

W12

W13

Набор обучающих пар

ВесаАктивационная

функция

Количество слоёв или нейронов

Преимущество генетических алгоритмов при обучении

Ну и просто это круто звучит!

1. Обмен генетическим материалом позволяет ускорить поиск оптимального решения в разы по сравнению с простым случайным выбором 2. Небольшая Мутация необходима для осуществления качественных изменений, Сильная мутация ведёт к остановке развития 3. Обмен генетического материала с потомками ведёт к остановки развития 4. Как ни странно крайне необходим обмен генетичесткого материала со слабейшими - это ведет к качественным скачкам в развитии. 

Мои выводы о генетических алгоритмах

Этапы

1. Котировки в терминале

2. Файл с данными

(Цены открытия, закрытия и

т.д.)

4. Файл с параметрами

нейронной сети

5. Запуск в тестере

терминала

3. Обучение нейронной

сети

6. Запуск в на демо счёте

6. Запуск в на реальном

счёте

Советник выгрузки данных

Торговый Советник

Программа обучения

1. Котировки в терминале

1. Котировки в терминалеЯпонские свечи

Минимальная цена

Максимальная цена

Цена открытия

Цена закрытия

Минимальная цена

Максимальная цена

Цена открытия

Цена закрытия

Цена растётЦена падает

1.Котировки в терминалеИндикаторы облегчают анализ

1.Котировки в терминалеПочему нельзя так просто стать

богатым?

1.Котировки в терминалеА Вот почему!

Значение индикатора в текущем баре меняется!!!

2. Файл с данными

2. Файл с данными

3. ОбучениеТак как мы теперь не привязаны к Metatraderу то выбор инструмента ограничен только нашей фантазией Mathcad, Matlab и т.д. Готовые библиотеки

AForge.NET http://www.aforgenet.com/

FANN http://leenissen.dk/fann/wp/

Собственный код – Это мой Выбор!

3. ОбучениеЯ делаю в своей программе

Рассмотрим как в ней происходит обучение

3. Обучение

Будем предсказывать не цену а сигнал на покупку или продажу

SBuy?

orSell?

Цены

Индикаторы (MA, MACD и т.д.)

День недели

Наличие текущей покупки или продажи

Текущий профит

И т.д. и т.п.

3. Обучение. Периоды

История Тестирование Будущее

3. Обучение

Генерирую особь

X1

X2

X3

Buy

Sell

Нейронная сеть, созданная на базе особи

Использую генетический алгоритм для обучения

Входные данные

на историче

ском периоде

Эмулируем реальную работу терминала

Вычисляем целевую функцию

Определяем лучшего

3. Обучение

3. Обучение

3. Обучение

4. Файл с параметрами нейронной сети

5. Запуск в тестере терминала

История Реал

6. Запуск в реале

Покупка и фиксация прибыли

Советник работает

Мои планы• Не останавливаться на достигнутом!

• Довести программу до ума

• Каждый желающий может получить код.

top related