Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 7670
- Рейтинг:
- голосов: 46
- Опубликован:
- 2011.10.24 15:31
- Обновлен:
- 2016.11.22 07:33
Класс 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!

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

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

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

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