Применение нейронных сетей и генетических алгоритмов...
DESCRIPTION
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.TRANSCRIPT
Цуканов Павел
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. Запуск в реале
Покупка и фиксация прибыли
Советник работает
Мои планы• Не останавливаться на достигнутом!
• Довести программу до ума
• Каждый желающий может получить код.