Neuronale Netze - Seite 7

 
Cyclesurfer:
Tolles neues digitales Programm! Ich werde mir das Material in ein paar Minuten ansehen... muss das Russisch rausholen... das nicht so toll ist, aber ich denke, dass ich in Verbindung mit AltaVista in der Lage sein werde, einen anständigen Versuch zu machen. Ich kodiere derzeit in CORTEX auf anderen Neuronalen Netzen (NN von nun an) und plane, diese in MQ4 zu konvertieren... Ich denke, wir sollten diesen Thread auf jeden Fall weiterführen, denn (und das ist eine Meinung) NN sind DIE Zukunft der technischen Analyse. NN's, für diejenigen, die nicht geek genug, um zu wissen..sind im Grunde algorythms, dass das Gehirn imitieren (nicht unbedingt das menschliche Gehirn..cuz, dass wäre Mind bustingly kompliziert) in, dass es lernt, wie es geht. Ich schreibe die EAs, um Ratschläge zu geben, ob ein bestimmtes Signal auf der Grundlage von kleinen Mustern, die vor gekommen sind, wenn ein similer Signal gegeben wurde, zu nehmen oder nicht. Das ist, was die meisten NN's tun, sie suchen Daten für kleine Muster, die bedeutungslos für uns sein würde, oder sogar andere algorthms und sehen, was diese Muster im Laufe der Zeit tun. Der erste EA wird Brain Trend enthalten. Ich bitte alle um etwas Geduld, denn die CORTEX-Codierung braucht Zeit... oder besser gesagt, es braucht Zeit, um die NNs zu trainieren und zu perfektionieren. Wenn jemand hier mit CORTEX oder der Code-Konvertierung vertraut ist, wäre ich für jede Hilfe dankbar. Ich verstehe, warum das russische Forum kommerziell arbeiten würde... NNs sind der aktuelle Stil bei Tradern mit großem Geld. Also... was sagt ihr dazu?

Ich habe Ihren Beitrag in diesen Thread verschoben, in dem Sie einige Personen zu dieser Software finden. Einer von ihnen ist oben zitiert.

 

Neuronales Netzwerk mit Matlab und Metatrader

Hallo!

Ich benutze Matlab und habe ein neuronales Netzwerk für mehrere Paare entwickelt, aber ich habe Probleme bei der Neuprogrammierung des NN von Matlab zu mql4!

Zu Testzwecken habe ich ein kleines neuronales Netzwerk erstellt, das den USDJPY-Kurs aus dem Preis in i+10 und i+20 vorhersagt. Es hat 2 Eingänge, 3 versteckte Schichten und 1 Ausgang. Die Aktivierungsfunktion der versteckten Schicht ist tansigmoide, für die Ausgabe ist sie linear.

Wenn ich den NN-Ausgang mit dem realen Preis vergleiche, zeigt das, dass das NN funktioniert, aber mit dem Code, den ich gemacht habe, funktioniert es definitiv nicht.

Die berechneten Gewichte der versteckten Schicht sind:

[13.8525 -43.4534;

-11.2084 18.4331;

-0.30603 0.01022]

Die Gewichte von der versteckten Schicht zum Ausgang sind :

[0.0020021 0.0047956 -3.4143]

Bias der versteckten Schicht :

[13.876;

2.644;

0.083215]

Verzerrung der Ausgabe

[0.27514]

Das Problem muss in der Aktivierungsfunktion liegen, die tan sigmoide sein sollte. Da der Preis mehr als 100 ist, gibt mir MathExp(-100) etwas sehr kleines...

Hier ist der interessante Teil des Codes :

>>

double a1=iClose("USDJPY",0,i+10);

double a2=iClose("USDJPY",0,i+20); >> double a2=iClose("USDJPY",0,i+20);

//Knoten (1,1)

double Summe_Knoten_1_1=13,8525*a1 -43,4534*a2+13,876;

double Sigmoide_node_1_1=(1-MathExp(-Sum_node_1_1))/(1+MathExp(-Sum_node_1_1));

//Knoten (1,2)

double Sum_node_1_2=-11.2084*a1+18.4331*a2+2.644;

double Sigmoide_node_1_2=(1-MathExp(-Sum_node_1_2))/(1+MathExp(-Sum_node_1_2));

//Knoten (1,3)

double Sum_node_1_3=-0.30603*a1+0.01022*a2+0.083215;

double Sigmoide_node_1_3=(1-MathExp(-Sum_node_1_3))/(1+MathExp(-Sum_node_1_3));

//---- Exit-Wert -----

double Sum_node_2_1=(0.0020021*Sigmoide_node_1_1+0.0047956*Sigmoide_node_1_2-3.4143*Sigmoide_node_1_3+0.27514);

<<

Vielen Dank für Ihre Hilfe!

 

Hier ein Beispiel zur Veranschaulichung meines Problems beim Aufbau eines neuronalen Netzes unter Matlab. Das Bild, das ich gepostet habe, zeigt den Zielwert (X) und die Ausgabe des neuronalen Netzes (Y) für den EURGBP. Im schlimmsten Fall, bei einem realen Kurs von 0,7, liegt der NN-Ausgang zwischen 0,68 und 0,73 (ziemlich schlecht, aber es war nur ein Test!).

Wenn ich die NN-Gewichte verwende, um den Ausgabewert von Hand zu berechnen, erhalte ich einen Wert von 0,75, was für 0,7 unmöglich ist... Ich muss also irgendwo bei der Berechnung meines Outputs falsch liegen... Hier ist die Formel :

-1.1261*tansig(-1.6589*0.6964+1.4776*0.6936+4.5965)

-0,013796*Tansig(-2,6065*0,6964+ 4,3402 *0,6936+0,30321)

+1.2166*tansig( 0.88612*0.69669364+0.11309 *0.6936+0.055821)+1.1116

Die Gewichte :

-Gewichte für die Schicht aus der Eingabe

[-1.6589 1.4776;

-2.6065 4.3402;

0.88612 0.11309]

-Gewichte für die Schicht

[-1.1261 -0.013796 1.2166]

-Vorspannung für Schicht 1

[4.5965;

0.30321;

0.055821]

-Vorspannung zur Schicht 2

[1.1116]

Die 2 Eingangspreise, die zur Berechnung des Ausgangs verwendet werden, sind:

0.6964

0.6936

Das Netzwerk ist ein 2 Eingänge/3 versteckt/1 Ausgang mit Tangente sigmoide Aktivierung für versteckt und lineare Aktivierung für den Ausgang.

DANKE!!

Dateien:
captureplot.jpg  23 kb
 

Außerdem war die richtige Tangente-Sigmoide-Aktivierungsfunktion in meinem mql4-Code falsch. Die richtige Funktion ist: 2/(1+MathExp(-2* x ))-1

Prost!

 

Erste Ergebnisse

dieser Thread sieht ein wenig tot aus, aber ich hoffe, dass es noch Leute gibt, die sich für Neuronale Netze interessieren! Bitte teilen Sie Ihre Erfahrungen mit NNets hier mit!

Ich habe bereits einige Kombinationen von Faktoren getestet, um die Vorhersagekraft von neuronalen Netzen zu prüfen.

Wie ich in verschiedenen Artikeln und Beiträgen gelesen habe, scheint die Verwendung des bisherigen High-Low-Open-Close völlig ineffizient zu sein. Das NN tappt völlig im Dunkeln... Der Fitting Plot des realen Wertes gegenüber der NN-Ausgabe ist horizontal (1. Bild Open-Low-High-Close.jpg), was bedeutet, dass es überhaupt nichts vorhersagen kann. Es ist das gleiche Ergebnis wie der Versuch, die Loterie-Nummern mit einem NN zu finden Ich habe verschiedene Eingangs- und Ausgangswerte ausprobiert, normalisiert oder nicht, das Ergebnis ist das gleiche.

Was ist also schlimmer zu betrachten? Es scheint, dass technische Indikatoren viel besser funktionieren. Ich habe eine Mischung aus klassischen Indikatoren als Inputs für die Vorhersage des absoluten Preises getestet. Das Anpassungsdiagramm ist nicht das beste, aber nicht schlecht (2. Bild - Technische Faktoren inputs.jpg). Ich denke auch, dass die Verwendung absoluter Werte eine sehr schlechte Idee ist.

Die Verwendung der Steigung des gleitenden Durchschnitts zur Vorhersage der zukünftigen Steigung liefert interessante Ergebnisse zur Identifizierung möglicher Umkehrungen (3. Bild - MA Slope.jpg).

Ein anderer interessanter Weg der Forschung ist die Verwendung eines NN, um gute Handelsbedingungen zu bewerten. So habe ich einen normalisierten Score erstellt, der aus dem aktuellen Schlusskurs und seinem Abstand zu den zukünftigen Hochs und Tiefs berechnet wird. Wenn der Score hoch ist, bedeutet dies, dass in den nächsten 4 Perioden der Abstand zwischen dem aktuellen Schlusskurs und den zukünftigen Höchstständen hoch ist (Gewinne im Voraus kaufen) und der Abstand zu den Tiefstständen niedrig ist (kein signifikanter Drawdown). Im Moment habe ich mit dieser Methode noch keinen Erfolg gehabt.

Ich hoffe, dass ich bald einige Kommentare und Erfahrungen austauschen kann!

 

Herzlichen Glückwunsch Webesa

THX Liebe Webesa,

das sind gute Ergebnisse,

aber eine Frage: Ist es nicht besser, ein größeres NN zu verwenden (mehr Eingaben + mehr Schichten + mehr Neuronen), um eine bessere Beziehung zwischen den Kerzen herzustellen?

 

vom neuronalen Netz zur dll

Hallo!

hat jemand Erfahrung damit, eine dll, die ein trainiertes neuronales Netz aus Matlab oder Neurosolutions enthält, in ein mq4-Skript zu integrieren?

 
webesa:
Dieser Thread scheint ein wenig tot zu sein, aber ich hoffe, dass es noch Leute gibt, die sich für Neuronale Netze interessieren! Also bitte teilen Sie Ihre Erfahrungen mit NNets hier!

Ich habe bereits einige Kombinationen von Faktoren getestet, um die Vorhersagekraft von neuronalen Netzen zu prüfen.

Wie ich in verschiedenen Artikeln und Beiträgen gelesen habe, scheint die Verwendung von High-Low-Open-Close völlig ineffizient zu sein. Das NN tappt völlig im Dunkeln... Das Fitting-Plot des realen Wertes gegenüber der NN-Ausgabe ist horizontal (1. Bild Open-Low-High-Close.jpg), was bedeutet, dass es überhaupt nichts vorhersagen kann. Es ist das gleiche Ergebnis wie der Versuch, die Lotteriezahlen mit einem NN zu finden.

Ich habe verschiedene Eingangs- und Ausgangswerte ausprobiert, normalisiert oder nicht, das Ergebnis ist das gleiche.

Was ist also schlimmer zu betrachten? Es scheint, dass technische Indikatoren viel besser funktionieren. Ich habe eine Mischung aus klassischen Indikatoren als Inputs für die Vorhersage des absoluten Preises getestet. Das Anpassungsdiagramm ist nicht das beste, aber nicht schlecht (2. Bild - Technische Faktoren inputs.jpg). Ich denke auch, dass die Verwendung absoluter Werte eine sehr schlechte Idee ist.

Die Verwendung der Steigung des gleitenden Durchschnitts zur Vorhersage der zukünftigen Steigung liefert interessante Ergebnisse zur Identifizierung möglicher Umkehrungen (3. Bild - MA Slope.jpg).

Ein anderer interessanter Weg der Forschung ist die Verwendung eines NN, um gute Handelsbedingungen zu bewerten. So habe ich einen normalisierten Score erstellt, der aus dem aktuellen Schlusskurs und seinem Abstand zu den zukünftigen Hochs und Tiefs berechnet wird. Wenn der Score hoch ist, bedeutet dies, dass in den nächsten 4 Perioden der Abstand zwischen dem aktuellen Schlusskurs und den zukünftigen Höchstständen hoch ist (Gewinne im Voraus kaufen) und der Abstand zu den Tiefstständen niedrig ist (kein signifikanter Drawdown). Mit dieser Methode hatte ich im Moment keinen Erfolg.

Ich hoffe, dass ich sehr bald einige Kommentare und Erfahrungen austauschen kann!

Was genau waren Ihre Inputs/Outputs für das NN, das die gleitenden Durchschnitte verwendet?

 
 

Ich denke, Sie haben Recht: Wenn Sie nicht ständig umlernen müssen, brauchen Sie die DLL nicht.

Möchten Sie eine Vorlage für das teilen?