Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Класс нейронной сети MLP - библиотека для MetaTrader 5

Просмотров:
7889
Рейтинг:
(47)
Опубликован:
2011.10.24 15:31
Обновлен:
2016.11.22 07:33
\MQL5\Scripts\MLP\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Класс CNetMLP реализует многослойный персептрон (MLP).

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

Размер входного вектора может быть любым в разумных пределах. Входные данные должны быть нормализованы, т.е. быть в пределах  -1 .. 1 или  0 .. 1. В зависимости от того, какие используются данные, к сети применяются различные активационные функции: для диапазона данных -1..1 необходимо использовать гиперболический тангенс,  для диапазона данных 0..1 - сигмоид. 

Сеть имеет послойную структуру с прямой передачей сигнала. Структура сети описывается одномерным массивом, где значение элемента массива определяет количество нейронов в соответствующем слое. Количество слоев и нейронов ничем не ограничено. Сеть может состоять из одного нейрона.

Каждый нейрон имеет множественный вход, определенный его местом в сети, и один выход. Если нужно, чтобы сеть выдавала N ответов, то последний слой должен содержать N нейронов.  Алгоритм обучения - iRprop. Входные и выходные обучающие данные располагаются в одномерных массивах, вектор за вектором. Процесс обучения ограничивается либо количеством эпох обучения, либо допустимой ошибкой.

Создание сети объявляется параметрическим конструктором класса.

CNetMLP  *net=new CNetMLP(количество слоев, массив структуры сети, размер входного вектора,                           тип активационной функции: 0 - сигмоид, 1 - гиперболический тангенс).

Обучение сети осуществляется вызовом метода Learn (количество обучающих паттернов, массив входных данных, массив выходных данных, кол-во циклов обучения, допустимая ошибка обучения). Результат обучения можно проверить через переменные класса: mse – ошибка обучения и epoch – количество пройденных циклов обучения.

Для получения ответа сети служит метод Calculate (массив входного вектора, массив ответа сети).

Методы Save (хэндл открытого файла с флагами FILE_WRITE и FILE_BIN) и Load (хэндл открытого файла с флагами FILE_READ и FILE_BIN) предназначены для сохранения сети в файл и загрузки сети из файла соответственно. В файл сохраняются только значение ошибки обучения и массив весов. Соответствие созданной сети и загружаемой сети должно контролироваться перед использованием метода Load (хэндл).

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

Внимание.

Код класса обновлен 31.08.2012. Исправлена функция вычисления ошибки в методе Learn(...). Спасибо her.human!


Leading Leading

Индикатор из двух скользящих средних (Lead и его EMA-усреднение) на одном графике из книги Джона Элерса "Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading".

Laguerre Filter Laguerre Filter

Индикатор из двух скользящих средних из книги Джона Элерса "Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading".

MFCS Currency Correlation Chart MFCS Currency Correlation Chart

Индикатор позволяет исследовать корреляции валютных пар. На текущий момент он показывает только бары, есть возможность настройки режима отображения (цветные/монохромные). Кроме того, он также поддерживает отображение "зеркальных" (inverted) инструментов для облегчения анализа корреляций валютных пар EURUSD & USDCHF.

WPRSI signal WPRSI signal

Индикатор подает сигналы для совершения сделок цветными стрелками на графике на основании данных технических индикаторов WPR (Williams’ Percent Range) и RSI (Relative Strength Index).