Systemhandel 게시글

Einfacher Single-Layer Perceptron EA für MetaTrader 4: Ein Leitfaden für Trader

첨부파일
18987.zip (1.98 KB, 다운로드 0회)

1. Über Perceptrons

Ein Perceptron ist eine grundlegende Einheit in der künstlichen Intelligenz, die für einfache Entscheidungsprozesse genutzt wird. Weitere Informationen findest du in den Notizen von Dr. Mark Humphrys über einlagige neuronale Netzwerke.

Ich bezeichne das Konzept des Perceptron als die „Logik“ hinter der künstlichen Intelligenz.


2. Algorithmus

2.1. Eingaben

Die w1, w2, w3 und w4 sind die Gewichte, die durch deine Optimierung festgelegt werden.

input int    x1 = 0;//Gewicht 1
input int   x2 = 0;//Gewicht 2
input int   x3 = 0;//Gewicht 3
input int   x4 = 0;//Gewicht 4


2.2. Perceptron

Um einen einfachen EA zu erstellen, setzen wir den Schwellenwert auf null. Der Ausgang ändert sich nicht: „feuert“ 1, „feuert nicht“ 0.

Die Regel

double w1 = x1 - 100;
double w2 = x2 - 100;
double w3 = x3 - 100;
double w4 = x4 - 100;

// Perceptron vor einer Kerze, 2017/03/18
double a11 = ((iRSI(Symbol(), 0, 12, PRICE_MEDIAN, 1))/100-0.5)*2;
double a21 = ((iRSI(Symbol(), 0, 36, PRICE_MEDIAN, 1))/100-0.5)*2;
double a31 = ((iRSI(Symbol(), 0, 108, PRICE_MEDIAN, 1))/100-0.5)*2;
double a41 = ((iRSI(Symbol(), 0, 324, PRICE_MEDIAN, 1))/100-0.5)*2;
double Current_Percptron = (w1 * a11 + w2 * a21 + w3 * a31 + w4 * a41);

// Perceptron vor zwei Kerzen, 2017/03/18
double a12 = ((iRSI(Symbol(), 0, 12, PRICE_MEDIAN, 2))/100-0.5)*2;
double a22 = ((iRSI(Symbol(), 0, 36, PRICE_MEDIAN, 2))/100-0.5)*2;
double a32 = ((iRSI(Symbol(), 0, 108, PRICE_MEDIAN, 2))/100-0.5)*2;
double a42 = ((iRSI(Symbol(), 0, 324, PRICE_MEDIAN, 2))/100-0.5)*2;
double Pre_Percptron = (w1 * a12 + w2 * a22 + w3 * a32 + w4 * a42);

In diesem EA verwende ich den RSI, aber auch andere Oszillatoren wie RCI oder W%R sind möglich.


2.3. Handelsöffnung und -schließung

Wenn der vorherige Perceptron unter 0 und der aktuelle Perceptron über 0 liegt, wird eine Short-Position geschlossen.

Das EA sendet dann eine Long-Order.

if(Pre_Percptron < 0 && Current_Percptron > 0) //Long-Signal
   {
      //Wenn eine Short-Position besteht, Order schließen
      if(pos < 0)
      {
         ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0);
         if(ret) pos = 0; //Wenn das Order schließen erfolgreich war, ist der Positionsstatus Null
      }
      //Wenn keine Position besteht, Long-Order senden
      if(pos == 0) Ticket = OrderSend(
                                       _Symbol,              // Symbol
                                       OP_BUY,                 // Operation
                                       Lots,              // Volumen
                                       Ask,               // Preis
                                       0,            // Slippage
                                       0,            // Stop-Loss
                                       0,          // Take-Profit
                                       Trade_Comment,        // Kommentar
                                       MagicNumber,// Magic Number
                                       0,        // Verfallsdatum der ausstehenden Order
                                       Green  // Farbe
                                       );
   }

Umgekehrt, wenn der aktuelle Perceptron unter 0 und der vorherige Perceptron über 0 liegt, wird eine Long-Position geschlossen.

Das EA sendet dann eine Short-Order.


3. Optimierung

Lade die Datei "Slime_Mold_RSI_template.set" und wähle "Nur Eröffnungspreise" für das Modell.

Eingaben

Optimierung


4. Kommentar und Magic Number

Ich habe die Magic Number auf die Dauer gesetzt, die für die Optimierung verwendet wurde. Dieses EA nutzt die Magic Number im Kommentar.

string Trade_Comment = IntegerToString(MagicNumber,5,' ') + "Tage-Optimierung";

Kommentar


5. Verwandte Artikel

Hier klicken für weitere Informationen

연관 포스트

댓글 (0)