Systemhandel

Soundbenachrichtigung für Verbindungen im MetaTrader 5 – So funktioniert's!
MetaTrader5
Soundbenachrichtigung für Verbindungen im MetaTrader 5 – So funktioniert's!

In diesem Beitrag möchte ich euch eine einfache Möglichkeit vorstellen, wie ihr Soundbenachrichtigungen für Verbindungen und Trennungen im MetaTrader 5 einrichten könnt. Das kann besonders hilfreich sein, um sofort informiert zu werden, wenn eure Handelsplattform eine Verbindung herstellt oder trennt. Um die Soundbenachrichtigungen zu aktivieren, müsst ihr zunächst die entsprechenden WAV-Dateien in den MQL5\Files\Sounds-Ordner kopieren. Hier sind die Schritte, die ihr befolgen solltet: Fügt die benötigten WAV-Dateien in den genannten Ordner ein. Kopiert den nachfolgenden Code und kompiliert das EA-Utility. Beachtet, dass einige Codezeilen kommentiert sind, da die Verwendung von #resource das Hochladen erschwert. //+------------------------------------------------------------------+ //| Connect_Disconnect_Sound_Alert.mq5 | //| Copyright 2024, Rajesh Kumar Nait | //| https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link    "https://www.mql5.com/en/users/rajeshnait/seller" #property version  "1.00" #include <Trade/TerminalInfo.mqh> bool     first             = true; bool     Now_IsConnected   = false; bool     Pre_IsConnected   = true; datetime Connect_Start = 0, Connect_Stop = 0; CTerminalInfo terminalInfo; //--- Sounddateien #resource "\Files\Sounds\CONNECTED.wav" #resource "\Files\Sounds\DISCONNECTED.wav" //+------------------------------------------------------------------+ //| Funktion zur Initialisierung des Experts | //+------------------------------------------------------------------+ int OnInit()   { //---       ResetLastError();       while ( !IsStopped() ) {          Pre_IsConnected = Now_IsConnected;          Now_IsConnected = terminalInfo.IsConnected();          if ( first ) {             Pre_IsConnected = !Now_IsConnected;          }          if ( Now_IsConnected != Pre_IsConnected ) {             if ( Now_IsConnected ) {                Connect_Start = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\Sounds\DISCONNECTED.wav"))                      Print("Fehler: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\Sounds\CONNECTED.wav"))                   Print("Fehler: ",GetLastError());           } else {                Connect_Stop = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\Sounds\CONNECTED.wav"))                      Print("Fehler: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\Sounds\DISCONNECTED.wav"))                   Print("Fehler: ",GetLastError());           }          }          first = false;          Sleep(1000);       } //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+ Hier ist auch ein hilfreiches Video, das die Verwendung des Skripts erklärt:

2024.01.08
Fortgeschrittene MQL5 Werkzeuge für Trader – Teil 7
MetaTrader5
Fortgeschrittene MQL5 Werkzeuge für Trader – Teil 7

Teil 7: Fortgeschrittene MQL5 Werkzeuge "Teil 7: Fortgeschrittene MQL5 Werkzeuge" aus dem Buch "MQL5 Programmierung für Trader" behandelt die erweiterten Möglichkeiten der MQL5 API, die beim Entwickeln von Programmen für MetaTrader 5 nützlich sind. Dazu gehören maßgeschneiderte Finanzsymbole, integrierte Ereignisse aus dem Wirtschaftskalender sowie vielseitige Technologien wie Netzwerke, Datenbanken und Kryptografie. In diesem Teil werden Bibliotheken behandelt – eine spezielle Programmart, die fertige APIs zum Verbinden mit anderen MQL-Programmen bereitstellt. Außerdem wird die Möglichkeit erörtert, Softwarepakete zu entwickeln und logisch verbundene Programme in Projekte zu kombinieren. Abschließend werden Integrationen mit anderen Softwareumgebungen, einschließlich Python, vorgestellt. Wir beginnen mit der Untersuchung von Ressourcen, die Dateien beliebiger Art sind und in den Programmcode eingebettet werden können. Ressourcen können folgende Elemente enthalten: Multimedia-Inhalte "Feste" Einstellungen von externen Programmen Andere MQL5-Programme in kompilierter Form Die MQL5 Entwicklungsumgebung ermöglicht das Einfügen von Anwendungsdatenarrays, Bildern, Klängen und Schriftarten in die Quelldatei, wodurch das Programm zu einem autarken und benutzerfreundlichen Produkt für den Endnutzer wird. Besonderes Augenmerk wird auf grafische Ressourcen mit Rasterbildern im BMP-Format gelegt: Sie lernen, wie man sie dynamisch erstellt, bearbeitet und auf dem Chart anzeigt. Wir schließen den letzten Teil des Buches mit der Untersuchung der OpenCL-Integration in MQL5 ab. OpenCL ist ein offener Standard für paralleles Programmieren in Mehrprozessorsystemen, einschließlich Grafikkarten (GPUs) und zentralen Verarbeitungseinheiten (CPUs). Es ermöglicht die Beschleunigung rechenintensiver Aufgaben, sofern die Algorithmen parallelisiert werden können. Dazu gehören das Trainieren von neuronalen Netzwerken, die Fourier-Transformation und das Lösen von Gleichungssystemen. Die Nutzung von OpenCL in MQL-Programmen erfordert spezielle Treiber vom Hersteller und die Unterstützung von OpenCL-Version 1.1 und höher. Das Vorhandensein einer Grafikkarte ist nicht zwingend erforderlich, da auch der zentrale Prozessor für paralleles Rechnen verwendet werden kann.

2023.12.16
Automatisierter Handel mit MQL5: Teil 6 – Expert Advisors für MetaTrader 5
MetaTrader5
Automatisierter Handel mit MQL5: Teil 6 – Expert Advisors für MetaTrader 5

Teil 6: HandelsautomatisierungIn "Teil 6: Handelsautomatisierung" des Buches "MQL5 Programmierung für Trader" befassen wir uns mit einem zentralen Element der MQL5-Sprache. Wir starten mit einer Beschreibung der grundlegenden Entitäten, wie z.B. den Spezifikationen der Finanzinstrumente und den Einstellungen des Handelskontos. Diese sind Voraussetzung für die Erstellung von funktionierenden Expert Advisors.Danach gehen wir zu den integrierten Funktionen und Datenstrukturen über sowie zu roboterspezifischen Ereignissen und den wesentlichen Aspekten des Betriebs von Expert Advisors im Strategietester. Der Strategietester von MetaTrader 5 ist ein entscheidendes Werkzeug in der Entwicklung von Handelsrobotern, da er es ermöglicht, die finanzielle Performance zu bewerten und Handelsstrategien zu optimieren.Der Tester bietet unverzichtbare Werkzeuge zum Debuggen in verschiedenen Modi, inklusive visuellem Testen mit Balken oder Ticks, sowohl mit modellierten als auch mit realen Ticks. Darüber hinaus ermöglicht er die visuelle Nachbildung des Kursflusses und einfaches Testen ohne visuelles Fenster. Wir haben bereits gesehen, wie man Indikatoren im visuellen Modus testet. Allerdings sind für diese nur eine begrenzte Anzahl von Einstellungen zulässig. Bei der Entwicklung von Expert Advisors haben wir Zugriff auf die volle Bandbreite der Tester-Funktionalitäten.Zusätzlich werfen wir einen Blick auf eine andere Darstellung der Marktdaten: Die Markttiefe und ihre Software-Schnittstelle.MetaTrader 5 bietet die Möglichkeit, Finanzinstrumente (Symbole) zu analysieren und zu handeln, die die Grundlage aller Subsysteme des Terminals bilden. Nutzer können Symbole aus der Liste auswählen, die vom Broker bereitgestellt wird, und diese im Marktbeobachtungsfenster überwachen. Mit der MQL5 API können Sie die Eigenschaften aller Symbole einsehen und analysieren sowie sie zum Marktbeobachtungsfenster hinzufügen oder daraus entfernen.Neben den standardmäßigen Symbolen, die von Brokern bereitgestellt werden, unterstützt MetaTrader 5 die Erstellung benutzerdefinierter Symbole, indem deren Eigenschaften und Kursverläufe aus beliebigen Datenquellen geladen oder unter Verwendung von Formeln und MQL5-Programmen berechnet werden.

2023.12.16
MQL5 Programmierung für Trader: Anwendungen und Expert Advisors verstehen
MetaTrader5
MQL5 Programmierung für Trader: Anwendungen und Expert Advisors verstehen

Teil 5: Anwendungen in MQL5 erstellen In "Teil 5: Anwendungen in MQL5 erstellen" des Buches über MQL5 Programmierung für Trader tauchen wir tiefer in die APIs des algorithmischen Handels ein. Dazu gehören die Analyse und Verarbeitung finanzieller Daten, die Visualisierung von Charts, Automatisierung und Interaktionen mit Nutzern. Wir beginnen mit den allgemeinen Prinzipien zur Erstellung von MQL-Programmen und betrachten die verschiedenen Ereignistypen, Funktionen und Modelle im Terminal. Außerdem werden wir den Zugang zu Zeitreihen, Operationen mit Charts und grafischen Objekten sowie die Prinzipien der Erstellung und Anwendung jedes MQL-Programms separat erkunden. Der MetaTrader 5 Terminal unterstützt fünf Arten von Programmen: technische Indikatoren, Expert Advisors (EAs) für automatisierten oder halbautomatisierten Handel, Skripte für einmalige Aufgaben, Dienste für Hintergrundoperationen und Bibliotheken für individuelle Funktionsmodule. Wir werden uns intensiv mit Indikatoren und Charts beschäftigen und Techniken erlernen, die auch für Expert Advisors anwendbar sind. Die Entwicklung von Expert Advisors wird im nächsten Teil des Buches behandelt, wo wir die automatische Ausführung von Aufträgen, die Formalisierung von Handelsstrategien und deren Testung sowie Optimierung anhand historischer Daten untersuchen. Wir lernen, wie man mit den standardmäßig integrierten Indikatoren arbeitet und wie wir eigene Anwendungen von Grund auf oder basierend auf anderen Indikatoren erstellen können. Alle kompilierten Programme werden im Navigator des MetaTrader 5 angezeigt, mit Ausnahme von EX5-Bibliotheken, die von anderen Programmen verwendet werden, jedoch keine separate Darstellung im Navigator haben. Am Ende werden wir ein umfassenderes Verständnis der Möglichkeiten der MQL5-Sprache und ihrer Anwendung im algorithmischen Handel gewinnen. Dies ermöglicht es uns, effektiv mit finanziellen Daten zu arbeiten und Handelsindikatoren sowie Expert Advisors zu erstellen.

2023.12.16
MQL5 Programmierung für Trader – Teil 4: Wichtige MQL5 APIs
MetaTrader5
MQL5 Programmierung für Trader – Teil 4: Wichtige MQL5 APIs

Teil 4: Wichtige MQL5 APIs In den vorherigen Abschnitten unseres Buches haben wir uns mit den Grundlagen der Programmiersprache MQL5 beschäftigt und deren Syntax, Anwendungsregeln und Schlüsselaspekte kennengelernt. Um jedoch praxisnahe Programme für die Datenverarbeitung und den automatisierten Handel zu schreiben, ist es wichtig, die zahlreichen integrierten Funktionen zu nutzen, die mit dem MetaTrader 5 Terminal interagieren. In "Teil 4: Wichtige MQL5 APIs" werden wir uns darauf konzentrieren, die integrierten Funktionen (MQL5 API) zu meistern und schrittweise in spezialisierte Subsysteme einzutauchen. Jedes MQL5-Programm kann eine Vielzahl von Technologien und Funktionalitäten verwenden. Daher macht es Sinn, mit den einfachsten und nützlichsten Funktionen zu beginnen, die in den meisten Programmen eingesetzt werden können. Zu den Hauptthemen gehören Array-Operationen, die Verarbeitung von Strings, Dateizugriffe, Datenkonvertierungen und Funktionen zur Benutzerinteraktion. Außerdem werden wir uns mit mathematischen Funktionen und der Verwaltung der Programmumgebung beschäftigen. Im Gegensatz zu einigen anderen Programmiersprachen erfordert die Verwendung der integrierten Funktionen der MQL5 API keine zusätzlichen Präprozessor-Direktiven. Die Namen aller MQL5 API-Funktionen sind im globalen Kontext (Namespace) verfügbar und können jederzeit bedingungslos aufgerufen werden. Wir werden auch die Möglichkeit besprechen, ähnliche Namen in verschiedenen Programmkontexten zu verwenden, wie beispielsweise Klassennamen oder benutzerdefinierte Namespaces. In solchen Fällen sollten Sie den Kontextauflösungsoperator verwenden, um die globale Funktion aufzurufen, über die wir im Abschnitt über verschachtelte Typen, Namespaces und den Kontextoperator '::' gesprochen haben. Programmierung erfordert oft Operationen mit verschiedenen Datentypen. In den vorherigen Abschnitten haben wir bereits die Mechanismen für die explizite und implizite Konvertierung der integrierten Datentypen gesehen. Diese sind jedoch nicht immer aus verschiedenen Gründen geeignet. Um eine präzisere Datenkonvertierung zwischen verschiedenen Typen zu ermöglichen, umfasst die MQL5 API eine Reihe von Konvertierungsfunktionen. Besonders Augenmerk liegt auf den Funktionen zur Konvertierung zwischen Strings und anderen Typen, wie Zahlen, Daten und Zeiten, Farben, Strukturen und Aufzählungen.

2023.12.15
Objektorientierte Programmierung in MQL5 – Teil 3 für Trader
MetaTrader5
Objektorientierte Programmierung in MQL5 – Teil 3 für Trader

Teil 3: Objektorientierte Programmierung in MQL5 In diesem Teil "Objektorientierte Programmierung in MQL5" tauchen wir tief in die Welt der objektorientierten Programmierung (OOP) mit der MQL5-Sprache ein. Die Softwareentwicklung ist oft mit der Herausforderung verbunden, mehrere Entitäten zu verwalten, was fortgeschrittene Technologien erfordert, um die Programmierung effizienter, produktiver und qualitativ hochwertiger zu gestalten. Die OOP-Technologie basiert auf dem Konzept von Objekten, die Variablen eines benutzerdefinierten Typs sind, die vom Programmierer mithilfe der MQL5-Tools definiert werden. Durch die Erstellung benutzerdefinierter Typen können wir Objekte modellieren und die Programmierung sowie die Wartung der Software erheblich vereinfachen. In diesem Abschnitt betrachten wir verschiedene Möglichkeiten, neue Typen zu definieren, einschließlich Klassen, Strukturen und Vereinigungen. Diese benutzerdefinierten Typen können Daten und Algorithmen kombinieren, um den Zustand und das Verhalten von Anwendungsobjekten zu beschreiben. Der Autor erläutert das Prinzip "teilen und herrschen" und zeigt, dass Objekte kleine Programme sind, die jeweils dafür verantwortlich sind, eine kleine, aber logisch abgeschlossene Aufgabe zu lösen. Sie können Objekte zu einem einzigen System kombinieren und Produkte sowie Dienstleistungen beliebiger Komplexität erstellen. Um den Nutzern das Verständnis der Möglichkeiten von MQL5 zu erleichtern, führt der Teil "Objektorientierte Programmierung in MQL5" die Grundsätze der OOP ein und bietet praktische Implementierungsbeispiele. Das Buch behandelt auch Vorlagen, Schnittstellen und Namensräume und zeigt die Flexibilität und Leistungsfähigkeit der OOP bei der Entwicklung von Programmen in MQL5.

2023.12.15
MQL5 Programmierung für Trader – Einführung in die Entwicklungsumgebung
MetaTrader5
MQL5 Programmierung für Trader – Einführung in die Entwicklungsumgebung

Teil 1: Einführung in MQL5 und die Entwicklungsumgebung Im ersten Teil des Buches mit dem Titel "Einführung in MQL5 und die Entwicklungsumgebung" werden die Grundlagen der MQL5-Sprache sowie die Entwicklungsumgebung behandelt. Eine der neuen Funktionen, die die MQL5-Sprache im Vergleich zu MQL4 (der Sprache von MetaTrader 4) bietet, ist die Unterstützung der objektorientierten Programmierung (OOP). Das macht sie C++ ähnlich. Auch wenn einige OOP-Funktionen bereits von MQL4 nach MQL5 übertragen wurden, könnte es für viele Nutzer ohne Programmiererfahrung eine Herausforderung sein, sich in der OOP zurechtzufinden. Das Ziel dieses Buches ist es, diesen Ansatz verständlich und zugänglich zu machen. Es dient als Ergänzung zum MQL5-Referenzhandbuch und behandelt alle Aspekte der MQL5-Programmierung, wobei sämtliche Prozesse detailliert erklärt werden. Entwickler können zwischen objektorientierten und prozeduralen Programmierstilen wählen oder beide kombinieren. Wer bereits Programmiererfahrung hat, kann die Grundlagen überspringen. C++-Programmierer werden es einfacher haben, MQL5 zu meistern, sollten jedoch auf die Unterschiede in der Sprache achten, um Fehler zu vermeiden. Mit MQL5 kannst du verschiedene Arten von Programmen erstellen, wie z.B. Indikatoren zur grafischen Darstellung von Daten, Expert Advisors zur Automatisierung des Handels, Skripte für einmalige Aktionen und Dienste für Hintergrundaufgaben. Ein besonderes Merkmal von MetaTrader 5 ist die Verwaltung des gesamten Handelssystems über die Client-Terminal, in dem MQL5-Programme laufen und Handelsbefehle an den Handelsserver senden. MQL5-Anwendungen werden nicht auf dem Server installiert. Teil 1 erklärt, wie man Programme bearbeitet, kompiliert und ausführt. Außerdem werden verschiedene Datentypen, Variablen, Ausdrücke, Arrays, Debugging und Ausgabe behandelt.

2023.12.15
Handschriftliche Zahlen erkennen: Ein Expert Advisor für MetaTrader 5
MetaTrader5
Handschriftliche Zahlen erkennen: Ein Expert Advisor für MetaTrader 5

Ein Expert Advisor zur Erkennung handschriftlicher Ziffern Die MNIST-Datenbank besteht aus 60.000 Bildern zum Trainieren und 10.000 Bildern zum Testen. Diese Bilder wurden durch die "Neumischung" eines ursprünglichen NIST-Sets von 20x20 Pixel großen Schwarzweißmustern erstellt, die vom US Census Bureau stammen und durch Testmuster amerikanischer Oberschüler ergänzt wurden. Die Muster wurden auf eine Größe von 28x28 Pixel normalisiert und geglättet, was Graustufen erzeugte. Das trainierte Modell zur Erkennung handschriftlicher Ziffern mnist.onnx wurde von Github heruntergeladen, genauer gesagt aus dem Model Zoo (opset 8). Interessierte können auch andere Modelle herunterladen und ausprobieren, jedoch nicht die Modelle mit opset 1, die von der neuesten ONNX-Runtime nicht mehr unterstützt werden. Überraschenderweise wurde der Ausgabewert nicht mit der Softmax Aktivierungsfunktion verarbeitet, wie es in Klassifikationsmodellen üblich ist. Aber kein Problem, das können wir selbst einfach implementieren. int PredictNumber(void)   {    static matrixf image(28,28);    static vectorf result(10);    PrepareMatrix(image);    if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))      {       Print("OnnxRun Fehler ",GetLastError());       return(-1);      }    result.Activation(result,AF_SOFTMAX);    int predict=int(result.ArgMax());    if(result[predict]<0.8)       Print(result);       Print("Wert ",predict," mit Wahrscheinlichkeit ",result[predict]);    return(predict);   } Zeichne Ziffern in einem speziellen Raster, indem du die linke Maustaste gedrückt hältst. Um die gezeichnete Ziffer zu erkennen, drücke den CLASSIFY-Button. Wenn die erhaltene Wahrscheinlichkeit für die erkannte Ziffer weniger als 0,8 beträgt, wird der resultierende Vektor mit Wahrscheinlichkeiten für jede Klasse im Protokoll ausgegeben. Versuche zum Beispiel, ein leeres, nicht ausgefülltes Eingabefeld zu klassifizieren. [0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267]Wert 5 mit Wahrscheinlichkeit 0.11471312493085861 vorhergesagt. Aus irgendeinem Grund ist die Erkennungsgenauigkeit beim Ziffern neun (9) bemerkenswert geringer. Links geneigte Ziffern werden genauer erkannt.

2023.11.23
Take Profit Strategien: Wie du deinen Gewinn effektiv managen kannst
MetaTrader4
Take Profit Strategien: Wie du deinen Gewinn effektiv managen kannst

Einleitung Die meisten Trading-Bots schließen Positionen mit Take Profit basierend auf der Pip-Distanz zum Einstiegspreis. Aber der EA Perceptron setzt auf den aktuellen Gewinn. Diese Methode ermöglicht es dir, den Take Profit bei mehreren offenen Positionen viel einfacher zu verwalten, indem du den Gesamtgewinn basierend auf der Magic Number im Blick behältst – besonders nützlich, wenn du mehrere Bots oder verschiedene EAs gleichzeitig nutzt. Füge mich zu deinen Freunden hinzu und folge meinem Feed, um auf dem Laufenden zu bleiben! Wenn du diese Methode anwendest, kannst du auch einige Probleme vermeiden, die auftreten können, wenn du einen Take Profit basierend auf Pips verwendest. Zum Beispiel könnte ein Pip-basierter Take Profit durch Slippage deines Brokers beeinträchtigt werden, was deine Gewinne limitiert. Mit einem Code, der auf dem aktuellen Gewinn basiert, hast du mehr Kontrolle über deine Trades und umgehst dieses Problem. Wenn du mehr darüber erfahren möchtest, wie du einen Take Profit auf Basis des aktuellen Gewinns einrichten kannst, kannst du den Code des EA SwingBot als Referenz verwenden. … Gesamtanzahl der Positionen Beginnen wir mit dem Code, der die Gesamtzahl der offenen Positionen mit derselben Magic Number berechnet. Die Magic Number ist ein eindeutiger Identifikator, der einer Order vom Trader oder einem EA (Expert Advisor) zugewiesen wird. Der Code initialisiert eine Variable total_orders mit Null. Dann durchläuft er alle offenen Positionen mit einer for Schleife und wählt jede Order mithilfe der OrderSelect() Funktion aus. Wenn eine Order erfolgreich ausgewählt wird, wird die Variable total_orders um eins erhöht. //-----------------    int total_orders = 0;    for(int i = 0; i < OrdersTotal(); i++)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {         if(OrderMagicNumber() == MagicNumber)          {          total_orders++;         }         }      } … Berechnung des aktuellen Gewinns Der Code initialisiert zwei Variablen: ProfittoMinimo und Profit. Die Variable ProfittoMinimo wird verwendet, um den Take Profit auf diesem Level zu aktivieren; der Wert wird in der Kontowährung angegeben. Die Variable Profit dient dazu, den aktuellen Gewinn aller offenen Positionen mit derselben Magic Number zu sammeln. Die Variable StopLoss wird für den Stop Loss verwendet. Der Code nutzt eine for Schleife, um alle offenen Positionen mit der OrdersTotal() Funktion zu durchlaufen. Für jede offene Position wird die entsprechende Order mit der OrderSelect() Funktion ausgewählt. Wenn die Order erfolgreich ausgewählt wurde und die gleiche Magic Number hat, wird der Gewinn der Order zur Variable Profit hinzugefügt.       double ProfittoMinimo = 3; // Zielgewinn       double Profit = 0; // aktueller Gewinn              for(int i=0; i<OrdersTotal(); i++)         {          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))            {             if(OrderMagicNumber() == MagicNumber) // Bei mehreren EAs kannst du den MagicNumber-Filter entfernen, um die Funktion auf alle offenen Orders anzuwenden               {                Profit += OrderProfit();               }            }         } Der minimale Gewinn kann als externe Variable eingestellt und in den EA-Optionen konfiguriert werden: … Positionen schließen, wenn der Gewinn erreicht ist Der Code verwendet eine for Schleife, um alle offenen Orders mit der OrdersTotal() Funktion zu durchlaufen. Die Schleife beginnt mit der letzten Order und geht zur ersten Order zurück. Für jede Order wird der entsprechende Trade mit der OrderSelect() Funktion ausgewählt. Wenn der ausgewählte Trade dasselbe Symbol wie das aktuelle Chart hat, vom Typ OP_BUY ist und die gleiche Magic Number hat, wird geprüft, ob der Profit des Trades größer oder gleich ProfittoMinimo ist. Falls ja, wird der Trade zum Bid-Preis mit der OrderClose() Funktion geschlossen und es wird eine Nachricht ausgegeben, dass der Buy-Order geschlossen wurde. Ähnlich verhält es sich, wenn der ausgewählte Trade dasselbe Symbol wie das aktuelle Chart hat, vom Typ OP_SELL ist und die gleiche Magic Number hat. In diesem Fall wird geprüft, ob der Profit des Trades größer oder gleich ProfittoMinimo ist. Wenn ja, wird der Trade zum Ask-Preis mit der OrderClose() Funktion geschlossen und es wird eine Nachricht ausgegeben, dass der Sell-Order geschlossen wurde.       for(int e = OrdersTotal() - 1; e >= 0; e--)         {          if(OrderSelect(e, SELECT_BY_POS, MODE_TRADES))            {             if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) // Die Order wird nur geändert, wenn die MagicNumber mit der der aktuellen Order übereinstimmt.               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Bid Preis                   Print("Buy-Order geschlossen", Profit, " - Minimaler Stoploss: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }           }             if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber)               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Ask Preis                   Print("Sell-Order geschlossen", Profit, " - Minimaler Stoploss: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }           }           }         } … Fazit Dieser Code könnte für alle Strategien, die auf dem Schließen von Positionen basieren, nützlich sein, aber auch mit einem Trailing-Stop kombiniert werden, der auf dem Anstieg des aktuellen Gewinns basiert. Das System ist auch bei mehreren Expert Advisors von Vorteil. Wenn du die if-Bedingung für die MagicNumber ausschließt, kannst du allgemeine Take-Profit-Level festlegen, um alle offenen Positionen von allen aktiven EAs gleichzeitig zu steuern.

2023.10.27
Die Double Bollinger Band Strategie für MetaTrader 4: Ein Leitfaden für Trader
MetaTrader4
Die Double Bollinger Band Strategie für MetaTrader 4: Ein Leitfaden für Trader

1. Überblick Die Double Bollinger Band Strategie nutzt zwei Bollinger Bänder, um Ein- und Ausstiegspunkte im Forex-Markt zu filtern. Das Ziel dieser Strategie ist es, Kauf- (oder Verkaufs-) Positionen zu eröffnen, wenn der Preis über (unter) das 3σ-Niveau (3 Standardabweichungen) steigt (fällt). Zusätzlich wird das 2σ-Niveau (2 Standardabweichungen) der Bollinger Bänder berücksichtigt, um Handelsentscheidungen zu treffen. Standardparameter: 2σ Bollinger Bänder (20,2): der einfache gleitende Durchschnitt (20) und die Anzahl der Standardabweichungen (2). 3σ Bollinger Bänder (20,3): der einfache gleitende Durchschnitt (20) und die Anzahl der Standardabweichungen (3). Parameter für Eingaben 2. Long Einstieg Öffne eine Kauf-Order, wenn diese 2 Bedingungen erfüllt sind: Bedingung 1: Der Ask-Preis überschreitet das obere Bollinger Band bei 3σ (BB3UP). Bedingung 2: Wenn Bedingung 1 erfüllt ist, überprüfe, ob der aktuelle Preis im Bereich des oberen (BB2UP) und unteren (BB2LO) Bollinger Band bei 2σ liegt. 3. Short Einstieg Öffne eine Verkaufs-Order, wenn diese 2 Bedingungen erfüllt sind: - Bedingung 1: Der Bid-Preis fällt unter das untere Bollinger Band bei 3σ (BB3LO). - Bedingung 2: Wenn Bedingung 1 erfüllt ist, überprüfe, ob der aktuelle Preis im Bereich des unteren (BB2LO) und oberen (BB2UP) Bollinger Band bei 2σ liegt. 4. Ausstiegsorders Verwende OCO-Orders, bei denen sowohl Stop-Loss als auch Take-Profit auf N Pips gesetzt werden. ※N: Eingestellte Eingabeparameter.

2023.10.02
Martin Gale Breakout: Der perfekte Expert Advisor für den Forex-Handel
MetaTrader4
Martin Gale Breakout: Der perfekte Expert Advisor für den Forex-Handel

Willkommen zu meinem neuesten Blogbeitrag! Heute werfen wir einen Blick auf die faszinierende Welt des Forex-Handels mit dem Martin Gale Breakout Expert Advisor (EA). Dieser EA kombiniert die Breakout-Handelsstrategie mit dem bewährten Martin Gale Geldmanagement-System, um deine Handelsperformance zu optimieren. Eingabeparameter: TakeProfPoints: Hier kannst du das Take Profit-Niveau in Punkten für jeden Trade festlegen. BalancePercentageAvailable: Gib den Prozentsatz deines Kontostands an, der für den Handel verwendet werden soll. TP_Percentage_of_Balance: Bestimmt den Prozentsatz deines Kontostands, der als Take Profit für jeden Trade genutzt wird. SL_Percentage_of_Balance: Legt den Prozentsatz deines Kontostands fest, der als Stop Loss für die Trades eingesetzt wird. Start_The_Recovery: Dieser Parameter spielt eine entscheidende Rolle im Wiederherstellungsprozess und steuert, wann und wie die Wiederherstellungsmaßnahmen aktiviert werden. TP_Points_Multiplier: Ein Multiplikator für die Take Profit-Punkte, der flexible Gewinnmitnahme-Strategien ermöglicht. MagicNumber: Eine eindeutige Kennung für diesen EA, die sicherstellt, dass er seine eigenen Trades unabhängig verwalten kann. Strategie-Highlights: Breakout Trading: Der EA ist spezialisiert auf die Identifizierung von Breakout-Möglichkeiten am Markt, bei denen Preisbewegungen wichtige Niveaus durchbrechen. Dynamische Lot-Größe: Die Lot-Größen werden dynamisch basierend auf deinem Kontostand und deinen Risikopräferenzen angepasst, gemäß den Prinzipien des Martin Gale Geldmanagements. Verlustwiederherstellung: Der EA enthält einen leistungsstarken Wiederherstellungsmechanismus, der entwickelt wurde, um Verluste durch adaptive Anpassung der Handelsparameter zu kompensieren. Eine der Hauptfunktionen, die in diesem EA verwendet wird, ist die CalcLotWithTP() Funktion, die drei Eingabeparameter hat: Takeprofit, Startpreis, Endpreis. Sie berechnet das erforderliche Volumen für den Trade, damit das Gewinnziel erreicht wird, wenn er zu einem bestimmten Startpreis einsteigt und zu einem Endpreis aussteigt. Der gesamte Code ist kommentiert, sodass das Verständnis erleichtert wird. Ich habe auch ein YouTube-Video dazu erstellt:

2023.09.26
Breakout Martin Gale System Trading für MT5 – Dein perfekter Trading-Partner
MetaTrader5
Breakout Martin Gale System Trading für MT5 – Dein perfekter Trading-Partner

Die Strategie "Martin Gale Breakout" ist ein Trading-System, das speziell für den Forex-Markt entwickelt wurde. Dieses System kombiniert die Breakout-Trading-Methode mit Elementen des Martin Gale Geldmanagements, um die Handelsleistung zu optimieren. Wichtige Eingabeparameter: TakeProfPoints: Hiermit kannst du das Take Profit-Level in Punkten für jeden Trade festlegen. BalancePercentageAvailable: Gib den Prozentsatz deines Kontostands an, der für das Trading verwendet werden soll. TP_Percentage_of_Balance: Dies bestimmt den Prozentsatz deines Kontostands, der als Take Profit für jeden Trade verwendet wird. SL_Percentage_of_Balance: Hierlegst du den Prozentsatz deines Kontostands fest, der als Stop Loss für die Trades genutzt wird. Start_The_Recovery: Dieser Parameter spielt eine entscheidende Rolle im Recovery-Prozess und steuert, wann und wie Maßnahmen zur Verlustbegrenzung aktiviert werden. TP_Points_Multiplier: Ein Multiplikator für die Take Profit-Punkte, der flexible Gewinnmitnahme-Strategien ermöglicht. MagicNumber: Eine eindeutige Kennung für dieses System, die sicherstellt, dass es seine eigenen Trades unabhängig verwalten kann. Highlights der Strategie: Breakout Trading: Das System spezialisiert sich darauf, Breakout-Möglichkeiten im Markt zu identifizieren, bei denen Preisbewegungen wichtige Niveaus durchbrechen. Dynamische Lot-Größen: Die Lot-Größen werden dynamisch an deinen Kontostand und deine Risikoeinstellungen angepasst, gemäß den Prinzipien des Martin Gale Geldmanagements. Verlust-Rückgewinnung: Das System beinhaltet einen leistungsstarken Rückgewinnungsmechanismus, der darauf abzielt, Verluste durch adaptive Anpassung der Handelsparameter wieder auszugleichen. Die Hauptfunktion in diesem System ist die CalcLotWithTP()-Funktion, die drei Eingabeparameter hat: Takeprofit, Startpreis, Endpreis. Sie berechnet das erforderliche Volumen für den Trade, sodass das Gewinnziel erreicht wird, wenn der Trade zum Startpreis eingegangen und zum Endpreis geschlossen wird. Der gesamte Code ist kommentiert, um das Verständnis zu erleichtern.

2023.09.26
Mit gleitenden Durchschnitten und einem Expert Advisor erfolgreich traden – MetaTrader 4 leicht gemacht
MetaTrader4
Mit gleitenden Durchschnitten und einem Expert Advisor erfolgreich traden – MetaTrader 4 leicht gemacht

1. EINTRETEN REGEL Long-Einstieg: Wir eröffnen Long-Positionen beim Goldenen Kreuz. Der Wert des vorherigen gleitenden Durchschnits ist höher als der des kurzfristigen gleitenden Durchschnitts. Der Wert des gleitenden Durchschnitts vor zwei Perioden liegt unter dem kurzfristigen gleitenden Durchschnitt. Der Wert des gleitenden Durchschnitts vor zwei Perioden liegt unter dem Wert des vorherigen kurzfristigen gleitenden Durchschnitts. Wenn diese drei Bedingungen erfüllt sind, betrachten wir das als Goldenes Kreuz und eröffnen eine Long-Position. Short-Einstieg: Wir eröffnen Short-Positionen beim Toten Kreuz. Der Wert des vorherigen gleitenden Durchschnits ist niedriger als der des kurzfristigen gleitenden Durchschnitts. Der Wert des gleitenden Durchschnitts vor zwei Perioden liegt über dem kurzfristigen gleitenden Durchschnitt. Der Wert des gleitenden Durchschnitts vor zwei Perioden liegt über dem Wert des vorherigen kurzfristigen gleitenden Durchschnitts. Wenn diese drei Bedingungen erfüllt sind, betrachten wir das als Totenkreuz und eröffnen eine Short-Position. 2. AUSSTIEG REGEL Einstiegsorders werden ausschließlich mit Stop-Loss-Orders und Take-Profit-Limit-Orders verwaltet. Der Stop-Loss-Punkt wird in einem Abstand vom Stop-Loss-Wert zum mittelfristigen gleitenden Durchschnitt gesetzt. Take-Profit-Limit-Orders werden im gleichen Abstand wie Stop-Orders gesetzt, jedoch auf der positiven Seite, um Fairness zu gewährleisten. 3. BACKTEST-ERGEBNIS

2023.09.16
Erste Vorherige 3 4 5 6 7 8 9 10 11 12 13 Nächste Letzte