Frage zur Programmierung neuronaler Netze - Seite 5

 
Und dann ist eine solche Netzkonfiguration in der Lage, jedes Problem zu lösen, einschließlich des "Ausschlusses oder" :)
 
Gut. Aber ich würde trotzdem gerne etwas mehr über die Praxis erfahren: Was wird in den Eingang eingespeist, welches Maß N sollte eingestellt werden usw.? Es sei denn natürlich, es ist kein Geheimnis :) Ich bin ein Dummkopf in diesem Geschäft, aber ich bin bereit, mitzumachen.
 
rsi:
Gut. Aber ich würde trotzdem gerne etwas mehr über die Praxis erfahren: Was wird in den Eingang eingespeist, welches Maß N sollte eingestellt werden usw.? Es sei denn natürlich, es ist kein Geheimnis :) Ich bin ein Dummie in diesem Geschäft, aber bereit, mitzumachen.

Ich habe den Indikator oben dargelegt. Der Steigungswinkel der linearen Regression wird dem Eingang zugeführt. Versuchen Sie, es auf Eura 1 Stunde laufen zu lassen
 
Danke, ich werde es mir ansehen :)
 
rsi:
Danke, ich werde es mir ansehen :)

Ich würde gerne ein Z-Konto zu dieser Sache hinzufügen und das wäre gut :)
 

Ja, das ist eine komische Sache. Nochmals vielen Dank, klot, ich habe genug für das Wochenende :)

 
Dies ist ein Neuro von metaquotes. Schauen Sie es sich an und sehen Sie, ob es hilft. Die Richtung ist nur für kurze Zeiträume von 2-5 bar tolerierbar.
 
AAAksakal, was sehen Sie?
 
klot:


Und im Allgemeinen kann jede NS einfach direkt in MQL4 programmiert werden. Sie können auch die Gewichte der NS mit dem MT4 GA oder Ihre eigenen wählen. Pessimismus ist nur durch den Mangel an Phantasie und Vorstellungskraft definiert. Im Grunde gibt es keine Grenzen...

Pessimismus wird durch Einschränkungen des Strategietesters definiert, d.h. wenn der Bereich der Eingabewerte groß ist oder die Anzahl dieser Werte die Grenze überschreitet, weigert sich der Optimierer zu starten. Es gibt also doch Grenzen.

Heute habe ich endlich den Aufbau eines neuronalen Netzes komplett in MQL4 mit 3:3:1 Architektur (drei Neuronen am Eingang, drei versteckte Eingänge, ein Ausgang). Alle Ebenen werden mit dem Tester GA konfiguriert. Das Problem ist jedoch, dass man für eine Schicht mindestens 12 Eingabeparameter benötigt, zumindest mit Werten von -1 bis 1 in Schritten von 1 (wie Rosenblatt). Aber so viele kann der Optimierer nicht verarbeiten. Ich musste mich herauswinden und die erste Schicht vereinfachen.

Im Gegensatz zu einem fremden Netz ist ein selbst hergestelltes Netz besser, weil es aufgerüstet werden kann. Zum Beispiel habe ich nicht nur die erste Ebene nicht standardisiert, sondern auch eine dynamische Normalisierung der Eingabedaten hinzugefügt.

Die Signale an den Eingängen sind recht primitiv:

   static  int  p = 12;
   ...
   double       z1 = Close[0] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, 0);
   double       z2 = Open[p] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, p);
   double       z3 = Open[p * 2] - iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, p * 2);

Trotz der oben erwähnten Primitivität erweist sich das Raster als sehr trainierbar, d.h. Gewichte und Schwellenwerte sind leicht zu wählen, so dass die Testergebnisse ohne einen einzigen Fehler (kein Gewinnfaktor) ausfallen. Aber nach einer solchen Anpassung beginnt der Vorwärtstest sofort, auf den Spread zu fallen. Ich musste an der Handelsstrategie herumschrauben, damit sich das Raster nicht verändert.

Die Mühe hat sich gelohnt, auch wenn sich mein Gehirn dabei von innen nach außen gedreht hat:

Dies sind die Ergebnisse des Tests. Von 1 bis 273 Trades - Optimierung, weiterer Vorwärtstest.

Und hier ist der Vorwärtstest:

Hier sind die Ergebnisse des Vorwärtstests:

Strategie-Tester-Bericht
RNN
Alpari-Demo (Build 409)

SymbolEURUSD (Euro gegenüber US Dollar)
Zeitraum1 Stunde (H1) 2011.10.24 00:00 - 2012.01.13 23:59 (2011.10.24 - 2012.01.14)
ModellNach Eröffnungskursen (nur für Expert Advisors mit expliziter Bar Opening Control)
Parametert1=54; t2=4; t3=48; x1=194; x2=128; x3=68; y1=1; y2=1; y3=-1; t4=136; sl=900; lots=1; mn=888;

Bars in der Geschichte2431Modellierte Zecken3862Qualität der Simulationk.A.
Diagrammabweichungsfehler0




Ersteinlage10000.00



Reingewinn14713.00Gesamtgewinn40711.60Totalverlust-25998.60
Rentabilität1.57Erwartung des Gewinns88.10

Absolute Absenkung2721.60Maximale Absenkung4800.00 (39.74%)Relative Absenkung39.74% (4800.00)

Handel insgesamt167Short-Positionen (% Gewinn)101 (67.33%)Long-Positionen (% Gewinn)66 (92.42%)

Gewinnbringende Geschäfte (% von allen)129 (77.25%)Verlustgeschäfte (% von allen)38 (22.75%)
Größteertragreicher Handel900.00Verlustgeschäft-907.20
Durchschnittprofitables Geschäft315.59Verlustgeschäft-684.17
Maximumkontinuierliche Gewinne (Gewinn)13 (2557.00)Kontinuierliche Verluste (Verlust)4 (-3605.40)
MaximumKontinuierlicher Gewinn (Anzahl der Siege)3511.60 (11)Kontinuierlicher Verlust (Anzahl der Verluste)-3605.40 (4)
Durchschnittlaufende Gewinne4Kontinuierlicher Verlust1





Das Interessanteste ist, dass wir sogar aus dem Diagramm ersehen können, dass der Optimierungsabschnitt schlechter ist als der Vorwärtsabschnitt. Dies geschieht selten. Obwohl ich diesen als den besten Stürmer unter vielen anderen ausgewählt habe, d.h. andere Stürmer haben viel schlechtere Ergebnisse als die Optimierer, aber trotzdem haben sie die besten.

 
Reshetov:

Der Pessimismus wird durch die Grenzen des Strategietesters bestimmt, d. h. wenn die Eingabewertebereiche groß sind oder die Anzahl der gleichen Werte die Grenze überschreitet, weigert sich der Optimierer zu starten. Es gibt also doch Grenzen.

Heute habe ich endlich den Aufbau eines neuronalen Netzes komplett in MQL4 mit 3:3:1 Architektur (drei Neuronen am Eingang, drei versteckte Eingänge, ein Ausgang). Alle Ebenen werden mit dem Tester GA konfiguriert. Das Problem ist jedoch, dass man für eine Schicht mindestens 12 Eingabeparameter benötigt, zumindest mit Werten von -1 bis 1 in Schritten von 1 (wie Rosenblatt). Aber so viele kann der Optimierer nicht verarbeiten. Ich musste mich herauswinden und die erste Schicht vereinfachen.

Im Gegensatz zu einem fremden Netz ist ein selbst hergestelltes Netz besser, weil es aufgerüstet werden kann. Zum Beispiel habe ich nicht nur die erste Ebene nicht standardisiert, sondern auch eine dynamische Normalisierung der Eingabedaten hinzugefügt.

Die Signale an den Eingängen sind recht primitiv:

Trotz der oben erwähnten Primitivität erweist sich das Raster als sehr trainierbar, d.h. Gewichte und Schwellenwerte sind leicht zu wählen, so dass die Testergebnisse ohne einen einzigen Fehler (kein Gewinnfaktor) ausfallen. Aber nach einer solchen Anpassung beginnt der Vorwärtstest sofort, auf den Spread zu sinken. Ich musste mit der Handelsstrategie herumspielen, um zu verhindern, dass sich das Raster anpasst.

Die Mühe hat sich gelohnt, auch wenn sich mein Gehirn dabei von innen nach außen gedreht hat:



Ich habe ein normales Gitter mit 256 Eingängen und einer versteckten Schicht pro 256 Neuronen erstellt. Und eine Ausgabeschicht mit einem Neuron. Und ich habe das alles perfekt in MT4 trainiert

Es gab eine Option mit drei ausgeblendeten Ebenen, die jedoch unnötig waren