Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

MLP Neuronales Netz Klasse - Bibliothek für den MetaTrader 5

Ansichten:
1422
Rating:
(47)
Veröffentlicht:
2016.04.28 09:44
Aktualisiert:
2016.11.22 07:34
\MQL5\Scripts\MLP\
testmlps.mq5 (4.67 KB) ansehen
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

CNetMLP bietet Multilayer-Perceptron (MLP).

Das Merkmale der Klasse ist, dass der Input-Vektor von der Netzstruktur getrennt ist, d.h. die Beschreibungen des Input-Vektor und der Netzwerk-Struktur sind nicht miteinander verbunden.

Die Größe der Eingabe-Vektors kann jeden Wert innerhalb vernünftiger Grenzen annehmen. Input-Daten sollte normalisiert werden, d.h. die Daten sollten innerhalb des Bereichs -1 .. 1 or 0 .. 1. Je nach den Daten werden verschiedene Aktivierungsfunktionen angewendet: für den Datenbereich -1..1 der Tangens Hyperbolicus, für Daten zwischen 0..1 sigmoid.

Das Netzwerk besitzt eine geschichtete Struktur mit direkter Übertragung des Signals. Die Netzwerk-Struktur wird durch einen eindimensionalen Array realisiert, wobei der Wert eines Array-Elements die Anzahl der Neuronen in der entsprechenden Schicht bestimmt. Die Anzahl der Layers und der Neuronen ist nicht beschränkt. Das Netzwerk kann auch aus einem einzigen Neuron bestehen.

Jedes Neuron hat mehrere Eingänge, bestimmt durch seinen Platz im Netzwerk und einen Ausgang. Wenn das Netzwerk N Antworten ausgeben soll, sollte der letzte Layer N Neuronen enthalten. Der Trainings-Algorithmus ist iRprop. Die Trainingsdaten für Input und Output befinden sich in eindimensionalen Arrays, Vektor für Vektor. Der Trainingsprozess ist begrenzt entweder durch die Anzahl der Trainings Zyklen oder durch einem zulässigen minimalen Fehler.

Aufbau eines Netzwerks ist parametrisch durch den Klassenkonstruktor erklärt.

CNetMLP  *net=new CNetMLP(

Anzahl der Layers, Arraystruktur, input Vektorgröße, Typ der Aktivierungsfunktion: 0 - sigmoid, 1 - Tangens Hyperbolicus).

Das Netzwerk Training wird durch den Aufruf von learn(die Anzahl der Trainingsmuster, Eingabe-Daten-Array, Ausgabe-Daten-Array, die Anzahl der Trainingszyklen, zulässiger Trainingsfehler). Das Trainingsergebnis kann überprüft werden durch die Klassen-Variablen: mse – Trainingsfehler und epoch – Anzahl der Trainingszyklen.

Calculate(Array des Eingabevektors, Array des Ausgabevektors) liefert die Antwort des Netzwerks.

Mit Save(Handle des mit FILE_WRITE and FILE_BIN geöffneten Datei) und Load(Handle des mit FILE_READ and FILE_BIN geöffneten Datei) wird ein Netzwerk entweder gespeichert oder geladen . Nur der Trainingsfehler und das Array mit den Wichtungen werden in der Datei gespeichert. Die Übereinstimmung des erstellten und zu ladenden Netzwerkes muss vor der Ausführung von load(handle) überprüft werden.

Die Verwendung der Klasse ist im beigefügten Beispiel gezeigt. Die Klasse und das die Beispieldatei müssen in selben Ordner liegen.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/596

TSI-Oscillator TSI-Oscillator

Ein typischer, normalisierter Oszillator im Bereich -100 bis +100 und mit einem Signallinie.

LinearRegSlope V2 LinearRegSlope V2

Gleitender Durchschnitt auf Basis der linearen Regression.

Modified Optimum Elliptic Filter Modified Optimum Elliptic Filter

Modified Optimum Elliptic Filter aus John Ehlers' Buch "Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading".

Laguerre Filter Laguerre Filter

Der Indikator besteht aus zwei gleitenden Durchschnitten aus John Ehlers' Buch "Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading".