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

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

Просмотров:
4496
Рейтинг:
(46)
Опубликован:
2012.11.13 08:50
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Класс CNetRBF реализует нейронную сеть радиально-базисных функций (Radial Basis Function Network - RBFN).

Представлена классическая реализация RBFN, состоящая из двух слоев нейронов: слоя скрытых нейронов с радиально-симметричной активационной функцией и выходного слоя с линейной или сигмоидальной активационной функцией.

Активационная функция выходного слоя выбирается автоматически при обучении сети в зависимости от тестовых выходных данных. Для диапазона от -1 до 1 применяется гиперболический тангенс, для диапазона 0 .. 1 применяется сигмоид. Если тестовые выходные данные выходят за пределы диапазона -1 .. 1, то активационная функция не применяется.

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

CNetRBF *net=new CNetRBF(размер входного вектора, максимальное число нейронов скрытого слоя, размер выходного вектора);

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

Обучение сети осуществляется вызовом метода Learn(количество обучающих паттернов, массив входных данных, массив выходных данных, количество циклов обучения, допустимая ошибка обучения).

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

Метод Learn возвращает следующие значения:

      0 - завершено обучение сети и результат обучения можно проверить через переменные класса: mse – ошибка обучения, epoch – количество пройденных   циклов обучения и neurons - количество нейронов в скрытом слое;
     -3 - недостаточно нейронов в скрытом слое;

     -4 - недостаточно памяти.

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

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

С применением данного класса можно ознакомиться в прилагаемых примерах: Test_RBFN_XOR - обучение сети функции "исключающее ИЛИ", Test_RBFN_MUL_ADD - обучение сети умножению и сложению целых чисел. Подразумевается, что файлы класса и примеров находятся в одной папке.

LeManChanel LeManChanel

Индикатор показывает возможные границы и направление бара с заглядыванием на один бар вперед.

LeManSystem LeManSystem

Система с использованием внутреннего канала от High и Low

OsHMA OsHMA

Осциллятор OsHMA - это индикатор разницы между двумя HMA (между двумя средними Хала).

PriceChanel_HTF PriceChanel_HTF

Индикатор ценового канала. Рисует линию максимумов и минимумов за последние N баров с более крупного таймфрейма.