Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Класс нейронной сети RBF - библиотека для MetaTrader 5
- Просмотров:
- 4555
- Рейтинг:
- Опубликован:
- 2012.11.13 08:50
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Представлена классическая реализация 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 - обучение сети умножению и сложению целых чисел. Подразумевается, что файлы класса и примеров находятся в одной папке.
Индикатор показывает возможные границы и направление бара с заглядыванием на один бар вперед.
LeManSystemСистема с использованием внутреннего канала от High и Low
Осциллятор OsHMA - это индикатор разницы между двумя HMA (между двумя средними Хала).
PriceChanel_HTFИндикатор ценового канала. Рисует линию максимумов и минимумов за последние N баров с более крупного таймфрейма.