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.

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.


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";

5. Verwandte Artikel
Hier klicken für weitere Informationen
연관 포스트
- So integrierst du hochkarätige Wirtschaftsdaten in deinen EA für MetaTrader 4
- Erstelle einen Expert Advisor basierend auf dem Center of Gravity Indikator für MetaTrader 4
- RRS Impulse – Dein Trading-Partner für MetaTrader 4
- Visuelle Auftragsbearbeitung: Ihr EA für MetaTrader 4
- Accelerator: Der leistungsstarke Expert Advisor für MetaTrader 4