Systemhandel

Zähle X Mal und übergebe dann – Expert Advisor für MetaTrader 5
MetaTrader5
Zähle X Mal und übergebe dann – Expert Advisor für MetaTrader 5

01. Zähle "X" Mal und übergebe dann. Schritt 01 - Erstelle eine Variable, um das Zähl-Limit festzulegen. Diese kannst du auch als Input-Parameter in deinem Code verwenden und optimieren. Schritt 02 - Erstelle eine weitere Variable, um das Zähl-Ergebnis zu speichern (wie oft gezählt wurde). Schritt 03 - Sobald der Counter und dein Zähl-Limit gleich sind, ist es Zeit, den von dir festgelegten Codeblock zu übergeben. Schritt 04 - Achte darauf, den Counter zurückzusetzen, nachdem der Codeblock übergeben wurde. Ansonsten zählt er unendlich (in diesem Fall). Du kannst auch Filterbedingungen für den Counter-Block festlegen, wie z.B. >> "Wenn dies wahr ist, dann zähle einmal." input int count = 50; // Setze das Zähl-Limit als Input int Counter; // Zählervariable // Expert Initialisierung -------------------- int OnInit() { return(INIT_SUCCEEDED); } // Expert Deinitialisierung ------------------- void OnDeinit(const int reason) { } // Expert OnTick -------------------------- void OnTick() { Counter ++; // Erhöhe den Zähler bei jedem Tick.   Comment("Aktuelle Anzahl -:", Counter); if(Counter == count)  // Zähle "X" Mal und übergebe   | Dieser Block wird nur einmal pro Zählung ausgeführt. {      // Dein Code kommt hier rein...... Alert(count," Mal gezählt"); Counter = 0; // Setze den Zähler am Ende deines Codeblocks zurück. Das ist wichtig. } } // OnTick Ende  <<---------------------- 02. Übergebe "X" Mal und warte dann "X" Mal. Diese Methode kann verwendet werden, um zwischen warten und übergeben, oder übergeben und warten zu wechseln. Schritt 01 - Erstelle eine Variable für das Zähl-Limit und Warte-Limit. Du kannst sie auch als Input-Parameter in deinem Code verwenden und optimieren. Schritt 02 - Erstelle eine weitere Variable, um die gezählten und wartenden Limits zu speichern (wie oft gezählt und gewartet wurde). Schritt 03 - Sobald der Counter und dein Zähl-Limit gleich sind, ist es Zeit, den von dir festgelegten Codeblock zu übergeben. Schritt 04 - Wenn das Warte-Limit erreicht ist, ist es Zeit, kurz zu warten. Schritt 05 - Stelle sicher, dass du sowohl den Zähler als auch den Wartenden zurücksetzt, wenn das Warte-Limit erreicht ist. Andernfalls wird es aufhören zu funktionieren (in diesem Fall). Du kannst auch Filterbedingungen für den Counter-Block und den Warte-Block festlegen, wie z.B. >> "Wenn dies wahr ist, warte ein wenig." input int count = 50; // Setze das Zähl-Limit als Input input int wait = 50; // Setze das Warte-Limit als Input int Counter; // Zählervariable, Standardwert ist "0" int Waiter; // Wartevariable, Standardwert ist "0" // Expert Initialisierung -------------------- int OnInit()   {    return(INIT_SUCCEEDED);   } // Expert Deinitialisierung ------------------- void OnDeinit(const int reason)   {   } // Expert OnTick -------------------------- void OnTick()   {    Comment("Gezählte Ticks -: ", Counter, "\n", "Gewartete Ticks -: ", Waiter);    if(Counter < count) // Übergebe "X" Mal      {       Counter++; // Aktualisiere den Zähler       // Dein Code kommt hier rein.      }    else       if(Waiter < wait) // Warte für "X" Mal         {          Waiter++; // Aktualisiere den Warte-Zähler          // Dein Code kommt hier rein.         }    if(Waiter == wait) // Warte-Limit erreicht      {       Counter = 0; // Zähler zurücksetzen       Waiter = 0; // Warte-Zähler zurücksetzen      }   } // OnTick Ende  <<---------------------- //+------------------------------------------------------------------+ Besonderheit -: Du kannst "X Mal übergeben und stoppen" programmieren, indem du den oben genannten Code anpasst und den Warte-Codeblock entfernst. Dann zählt es eine bestimmte Anzahl und stoppt, bis der Zähler zurückgesetzt wird. Du kannst ihn überall in deinem Code zurücksetzen, wenn du diese Variablen global definierst.

2024.04.14
Wie man neue Kerzen im MetaTrader 5 effizient erkennt
MetaTrader5
Wie man neue Kerzen im MetaTrader 5 effizient erkennt

In meinem vorherigen Beitrag habe ich die Zeit verwendet, um eine neue Kerze zu erkennen. Diesmal schauen wir uns die Anzahl der Kerzen an, um eine neue Kerze zu identifizieren. Diese Methode ist deutlich leichter und schneller als die zeitbasierte Methode.Definiere die Variablen im Integer-Datentyp, um die Kerzenanzahl zu speichern.Weise bei der Initialisierung die Kerzenanzahl der BarsTotal_OnInt-Variable zu.Nutze die Funktion iBars();, um die Kerzenanzahl für die BarsTotal_OnTick-Variable im Live-Chart zuzuweisen. Diese Variable wird bei jedem Tick aktualisiert.Verwende Kommentare und Alerts, um die Genauigkeit des Codes zu überprüfen.int BarsTotal_OnInt; int BarsTotal_OnTick; //+------------------------------------------------------------------+ //| Expert-Initialisierungsfunktion                                   | //+------------------------------------------------------------------+ int OnInit()   {      BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // Gesamtanzahl der Kerzen bei der Initialisierung zuweisen    return(INIT_SUCCEEDED);   }    void OnTick() // OnTick-Funktion   {      BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // Speichert die aktuelle Anzahl       if(BarsTotal_OnTick > BarsTotal_OnInt) // Neue Kerze ist angekommen    {     BarsTotal_OnInt = BarsTotal_OnTick; // Aktualisiert die Historie.     Alert("Neue Kerze ist angekommen");     Comment("Kerzenanzahl in der Historie -: ", BarsTotal_OnInt, "\n", "Kerzenanzahl im Live-Chart -: ", BarsTotal_OnTick); // Hier kommt dein Code. -------------------------- // Du kannst auch ein "Flag" / eine Variable setzen, die du später verwenden kannst.    }   }

2024.04.11
Virtueller SL TP Pending mit Trailing Stop für MetaTrader 4: Ein Leitfaden für Trader
MetaTrader4
Virtueller SL TP Pending mit Trailing Stop für MetaTrader 4: Ein Leitfaden für Trader

Herzlich willkommen, Trader! Heute möchte ich euch ein spannendes Tool vorstellen: den Virtuellen SL TP Pending mit SL Trailing für MetaTrader 4, auch bekannt als Virtual_SL_TP_Pending_with_SL_Trailing.mq4. Dieses Skript ist speziell dafür entwickelt worden, um eure Trades besser zu verwalten, indem es virtuelle Stop-Loss- und Take-Profit-Niveaus setzt und die Möglichkeit bietet, einen virtuellen Pending-Order mit einem optionalen Trailing Stop-Loss zu integrieren. Hier eine Übersicht über die Funktionen des Skripts: Copyright und Link: Die Angaben zum Copyright sowie ein Link zur Website des Erstellers. Version: Die aktuelle Version des Skripts. Beschreibung: Informationen über das Skript, inklusive der E-Mail-Adresse des Entwicklers, rechtliche Hinweise und ein Warnhinweis zur Nutzung des Tools auf eigenes Risiko. Input-Parameter: Externe Variablen, die es Nutzern ermöglichen, das Verhalten des Expert Advisors (EA) anzupassen, darunter: StopLossPoints: Der anfängliche Stop-Loss in Punkten. TakeProfitPoints: Der anfängliche Take-Profit in Punkten. SpreadThreshold: Der Spread-Schwellenwert für den virtuellen Stop-Loss/Take-Profit in Punkten. TrailingStopPoints: Der Trailing Stop in Punkten für die virtuelle Pending-Order. EnableTrailing: Option, um den Trailing Stop zu aktivieren oder zu deaktivieren. Globale Variablen: Variablen, die im gesamten Skript verwendet werden, um den anfänglichen Spread, den virtuellen Stop-Loss, den virtuellen Take-Profit und den Preis der Pending-Order zu speichern. Initialisierungsfunktion (OnInit): Diese Funktion initialisiert den EA, wenn er auf ein Chart angewendet wird. Sie berechnet den initialen virtuellen Stop-Loss, Take-Profit und den Preis der Pending-Order basierend auf den Input-Parametern. Tick-Funktion (OnTick): Diese Funktion wird bei jedem Preistick aufgerufen. Sie überprüft, ob der Spread über den Schwellenwert hinaus gestiegen ist und passt den virtuellen Stop-Loss, Take-Profit und den Preis der Pending-Order entsprechend an. Außerdem überwacht sie, ob der Preis den virtuellen Stop-Loss oder Take-Profit erreicht, und schließt die Position. Wenn der Trailing Stop aktiviert ist und der Preis die Pending-Order erreicht, wird eine virtuelle Pending-Order mit einem Trailing Stop-Loss platziert. Funktion zum Schließen von Positionen (ClosePosition): Diese Funktion schließt die Position, wenn der Preis den virtuellen Stop-Loss oder Take-Profit erreicht. Funktion zum Platzieren einer Pending-Order (PlacePendingOrder): Platziert eine virtuelle Pending-Order mit einem Trailing Stop-Loss, falls der Trailing Stop aktiviert ist. Dieser EA bietet eine flexible Möglichkeit, Trades mithilfe von virtuellen Niveaus zu verwalten und die Trailing-Stop-Funktion zu nutzen. So könnt ihr euren Handelsprozess in MetaTrader 4 automatisieren und euch auf das Wesentliche konzentrieren – das Trading!

2024.04.10
Close Basket Pairs v1 – Dein Helfer für den MetaTrader 4
MetaTrader4
Close Basket Pairs v1 – Dein Helfer für den MetaTrader 4

In der Welt des Tradings ist es entscheidend, die Kontrolle über deine Positionen zu behalten. Das Close Basket Pairs Skript für den MetaTrader 4 wurde entwickelt, um genau das zu tun: Es schließt Positionen für eine Gruppe von Währungspaaren, sobald bestimmte Gewinn- oder Verlustgrenzen erreicht werden. Hier ist eine kurze Übersicht: Das Skript trägt den Namen CloseBasketPairs.mq4. Es ist urheberrechtlich geschützt und stammt von MetaQuotes Software Corp. aus dem Jahr 2024. Du findest einen Link zur MetaQuotes Website. Die aktuelle Version des Skripts ist 1.01. Der Autor ist persinaru@gmail.com. Das Skript ist unter der IP 2024 lizenziert und als Open Source verfügbar. Der Hauptzweck des Skripts ist es, Positionen für eine Gruppe von Währungspaaren zu schließen, wenn bestimmte Gewinn- oder Verlustgrenzen erreicht werden. Bitte beachte, dass die Nutzung des Skripts auf eigenes Risiko erfolgt; der Ersteller übernimmt keine Verantwortung für Schäden oder Verluste. Das Skript definiert die Währungspaare in der Gruppe sowie die jeweiligen Ordertypen und die Gewinn- und Verlustgrenzen. Es durchläuft alle offenen Positionen und prüft, ob sie zu den festgelegten Währungspaaren gehören. Wenn eine Position die Kriterien erfüllt (Gewinn über der Gewinnschwelle oder Verlust unter der Verlustschwelle), wird die Position geschlossen. Zusätzlich bietet es Funktionen für die Initialisierung, Deinitialisierung und die Verarbeitung von Tick-Ereignissen. Die Funktion PrintStrategyInfo() wird verwendet, um Informationen über die Handelsstrategie anzuzeigen.

2024.04.10
Einfache Trendfolgestrategie für den Handel mit MetaTrader 4: Kaufen und Verkaufen mit vordefinierten Bedingungen
MetaTrader4
Einfache Trendfolgestrategie für den Handel mit MetaTrader 4: Kaufen und Verkaufen mit vordefinierten Bedingungen

In diesem Beitrag möchte ich euch eine einfache, kontinuierliche Trendfolgestrategie vorstellen, die ihr in MetaTrader 4 (MT4) nutzen könnt. Diese Strategie ermöglicht es euch, basierend auf bestimmten vordefinierten Bedingungen zu kaufen und zu verkaufen. Lassen wir uns die Details der Strategie einmal genauer anschauen: Initialisierung: Zu Beginn wird das Skript initialisiert und zeigt eine Erfolgsnachricht an. Deinitialisierung: Wenn das Skript nicht mehr benötigt wird, wird es deinitialisiert und gibt eine entsprechende Nachricht aus. OnTick-Funktion: Diese Funktion wird jedes Mal ausgeführt, wenn es eine neue Kursänderung (Tick) im Markt gibt. a. Positionstracking zurücksetzen: Das Skript setzt die Variablen zurück, die die offenen Kauf- und Verkaufspositionen verfolgen. b. Offene Aufträge überprüfen: Es wird eine Schleife durch alle offenen Aufträge durchgeführt, um festzustellen, ob bereits Kauf- oder Verkaufspositionen bestehen. c. Kaufposition eröffnen: Wenn keine offene Kaufposition vorhanden ist und das Flag „OpenBuyPosition“ auf true gesetzt ist, wird versucht, eine Kaufposition zum aktuellen Marktpreis zu eröffnen. Für diese Kauforder werden ein Stop-Loss und ein Take-Profit festgelegt. d. Verkaufsposition eröffnen: Analog dazu wird, wenn keine offene Verkaufsposition existiert und das Flag „OpenSellPosition“ auf true gesetzt ist, eine Verkaufsposition zum aktuellen Marktpreis eröffnet. Auch hier werden Stop-Loss und Take-Profit für die Verkaufsorder festgelegt. e. Geschlossene Aufträge überprüfen: Das Skript prüft, ob es geschlossene Aufträge gibt. Falls eine Kauf- oder Verkaufsorder mit Gewinn geschlossen wurde, wird das entsprechende Positionsflag zurückgesetzt. Eingabeparameter: Das Skript bietet verschiedene Eingabeparameter für Lotgröße, Stop-Loss, Take-Profit und Flags, um zu steuern, ob Kauf- oder Verkaufspositionen eröffnet werden sollen. Haftungsausschluss: Das Skript enthält einen Hinweis, dass die Nutzung auf eigenes Risiko erfolgt und der Ersteller von jeglicher Verantwortung für mögliche Schäden oder Verluste befreit ist. Zusammenfassend zielt dieses Skript darauf ab, den Prozess des Kaufens und Verkaufens anhand einer kontinuierlichen Trendfolgestrategie zu automatisieren. Ihr könnt die Parameter wie Lotgröße und Handelsrichtung anpassen. Allerdings solltet ihr vorsichtig sein und gründliche Tests durchführen, bevor ihr das Skript in einer Live-Handelsumgebung einsetzt.

2024.04.10
Trailing Stop für MetaTrader 5: So implementierst du es richtig
MetaTrader5
Trailing Stop für MetaTrader 5: So implementierst du es richtig

Dieser Codeblock funktioniert sowohl mit einem Stop Loss als auch ohne. Hier sind die Voraussetzungen, die du beachten solltest: Du musst "Trade.mqh" einfügen, um Zugang zur CTrade-Klasse zu erhalten, die es dir ermöglicht, mit Positionen und Aufträgen zu arbeiten. #include <Trade\Trade.mqh> // <<------------------------------------------ Füge "Trade.mqh" ein, um auf die CTrade-Klasse zuzugreifen Du solltest einen Eingabeparameter festlegen, um den Abstand für den Trailing Stop nach deinen Wünschen anzupassen. Dies ist nicht zwingend erforderlich, aber praktisch. input double Trailing_Step = 3.0; Du musst eine Instanz der CTrade-Klasse definieren. Der Name kann beliebig sein, aber es ist sinnvoll, ihn nach dem OnInit-Ereignishandler zu benennen. Dann musst du eine if-Anweisung erstellen, um zu überprüfen, ob momentan Positionen laufen. Diese Anweisung ruft die Check_TrailingStop();-Funktion für jeden Tick auf. Das ist wichtig, da der EA den Trailing Stop präzise und flüssig verfolgen sollte. Achte darauf, diese Anweisung an den obersten Punkt des OnTick-Ereignishandlers zu setzen, damit sie richtig funktioniert. //+------------------------------------------------------------------+ //| Expert-Initialisierungsfunktion | //+------------------------------------------------------------------+ int OnInit() { //--- Timer erstellen EventSetTimer(60); //--- return (INIT_SUCCEEDED); } CTrade trade; // <<------------------------------------------ Deklariere die "CTrade"-Klasse. Du kannst "trade" durch jeden gewünschten Namen ersetzen void OnTick() { if(PositionsTotal() > 0) { // ruft die Trailing-Stop-Funktion für jeden Tick auf, wenn Positionen aktiv sind. Check_TrailingStop(); } } Du musst eine benutzerdefinierte Funktion namens Check_TrailingStop(); (in diesem Fall) deklarieren, um den Rest zu erledigen. Du kannst jeden gewünschten Namen verwenden. Die benutzerdefinierte Funktion durchläuft alle offenen Positionen und verfolgt sie entsprechend dem gewünschten Abstand. void Check_TrailingStop() { int totalPositions = PositionsTotal(); for(int count = 0; count < totalPositions; count++) { ulong TicketNo = PositionGetTicket(count); // Holt die Ticketnummer der Position anhand des Index. if(PositionSelectByTicket(TicketNo)) { // Wählt eine Position mit der Ticketnummer aus (wir haben die Ticketnummer bereits gewählt) if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) { // Überprüft den Positionstyp. double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); double stopLoss = PositionGetDouble(POSITION_SL); // <<------------------- Holt den aktuellen Stop Loss der Position double takeProfit = PositionGetDouble(POSITION_TP); double bidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); ulong ticket = PositionGetTicket(count); double trailingLevel = NormalizeDouble(bidPrice - (Trailing_Step * Point), _Digits); if(stopLoss < openPrice) { // Kein Stop Loss ist aktiv. if(bidPrice > openPrice && trailingLevel > openPrice) { // Wird nur einmal pro Position ausgeführt. Setzt den ersten SL. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiziert den Trailing Stop mit "CTrade.trade" } } if(bidPrice > openPrice && trailingLevel > stopLoss) { // Überprüft, ob der Trailing-Level über dem vorherigen Level liegt. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiziert den Trailing Stop mit "CTrade.trade" } } if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) { double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); double stopLoss = PositionGetDouble(POSITION_SL); double takeProfit = PositionGetDouble(POSITION_TP); double bidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); double askPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK); ulong ticket = PositionGetTicket(count); double trailingLevel = NormalizeDouble(askPrice + (Trailing_Step * Point), _Digits); if(stopLoss < openPrice) { // Kein Stop Loss ist aktiv. if(askPrice < openPrice && trailingLevel < openPrice) { // Wird nur einmal pro Position ausgeführt. Setzt den ersten SL. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiziert den Trailing Stop mit "CTrade.trade" } } if(askPrice < openPrice && trailingLevel < stopLoss) { // Überprüft, ob der Trailing-Level über dem vorherigen Level liegt. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiziert den Trailing Stop mit "CTrade.trade" } } } } }

2024.04.05
Neuen Bar oder Kerze im MetaTrader 5 erkennen: Ein einfacher Code
MetaTrader5
Neuen Bar oder Kerze im MetaTrader 5 erkennen: Ein einfacher Code

In diesem Beitrag zeigen wir dir, wie du mit einem einfachen Code einen neuen Bar oder eine neue Kerze im MetaTrader 5 erkennen kannst. Das Grundprinzip des Codes ist denkbar einfach. Zuerst speichert der Code die Zeit des vorherigen Bars. Anschließend wird 60 Sekunden (entspricht 1 Minute) zur Zeit des vorherigen Bars addiert, um den Schlusszeitpunkt des aktuellen Bars zu berechnen. Wenn dann: Aktuelle Zeit = Schlusszeitpunkt des aktuellen Bars, bedeutet das, dass ein neuer Bar empfangen wurde und der aktuelle Bar geschlossen ist. In diesem Code verhindert das Flag (die boolesche Variable NewBarReceived), dass dieser Codeblock mehrfach aufgerufen wird. Das bedeutet, dass dieser Codeblock nur einmal pro Bar/Kerze ausgeführt wird. Die Comment(); und die PlaySound("ok.wav"); Funktionen werden verwendet, um die Genauigkeit des Codeblocks zu überprüfen. Du kannst sie entfernen, wenn du möchtest. Das Flag wird zurückgesetzt, sobald die aktuelle Zeit über dem Schlusszeitpunkt der aktuellen Kerze liegt, um die Ankunft des nächsten Bars zu überprüfen. (Siehe Kommentare dazu). //+------------------------------------------------------------------+ //|                                                  New Bar Detect.mq5 | //|                                                  by H A T Lakmal | //|                                                   https://t.me/Lakmal846 | //+------------------------------------------------------------------+ bool NewBarReceived = false; // Flag zur Kontrolle. //+------------------------------------------------------------------+ //| Experteninitialisierungsfunktion                                   | //+------------------------------------------------------------------+ int OnInit()   { //--- Timer erstellen    EventSetTimer(60); //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+ //| Experten-Deinitialisierungsfunktion                                 | //+------------------------------------------------------------------+ void OnDeinit(const int reason)   { //--- Timer zerstören    EventKillTimer();   } //+------------------------------------------------------------------+ //| Experten-Tickfunktion                                             | //+------------------------------------------------------------------+ void OnTick()   {    datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1);    datetime TimeCurrentClose = TimePreviousBar + 60; // Schlusszeit des aktuellen Bars.    datetime Time_Current = TimeCurrent();    if(Time_Current == TimeCurrentClose && NewBarReceived == false)      {       PlaySound("ok.wav");   // Überprüfung der Funktionalität.       NewBarReceived = true; // Flag aktualisieren, um mehrfachen Aufruf zu vermeiden.       // Dein Code kommt hier hin ----- (Mach etwas)      }    else       if(Time_Current > TimeCurrentClose)         {          NewBarReceived = false; // Flag zurücksetzen für den nächsten Bar.          // Dein Code kommt hier hin ----- (Mach etwas)         }    Comment(" " +  " " +  "Aktueller Bar Zeit -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) +            " " + "Aktueller Schlusszeit -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) +            " " + "Aktuelle Zeit -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + " " +" " + "Neuer Bar empfangen -: " + NewBarReceived); // Zur Überprüfung der Berechnungen   } //+------------------------------------------------------------------+ //| Timerfunktion                                                   | //+------------------------------------------------------------------+ void OnTimer()   { //---   } //+------------------------------------------------------------------+ //| Handelsfunktion                                                   | //+------------------------------------------------------------------+ void OnTrade()   { //---   } //+------------------------------------------------------------------+ //| ChartEvent-Funktion                                              | //+------------------------------------------------------------------+ void OnChartEvent(const int id,                   const long &lparam,                   const double &dparam,                   const string &sparam)   { //---   } //+------------------------------------------------------------------+  

2024.04.05
Profit und Verlust im Handelskonto: Optimierung des Expert Advisors für MetaTrader 4
MetaTrader4
Profit und Verlust im Handelskonto: Optimierung des Expert Advisors für MetaTrader 4

Willkommen zu unserem heutigen Blogpost! Heute schauen wir uns die neueste Version des Expert Advisors "Close_on_PROFIT_or_LOSS_in_Account_Currency" für MetaTrader 4 an und was diese Optimierungen für euch als Trader bedeuten. //+------------------------------------------------------------------------------------------------------------------------------+ //| Die Optimierung von Close_on_PROFIT_or_LOSS_in_Account_Currency_V2: Das ist neu: //| //|Fehlerbehandlung hinzugefügt: Der Code enthält nun eine Fehlerbehandlung, um mit Situationen umzugehen, in denen Aufträge nicht geschlossen oder gelöscht werden können.Code-Optimierung: Der Code wurde optimiert, um Wiederholungen zu vermeiden und die Lesbarkeit zu verbessern.Effizienz: Unnötige Schleifen oder Berechnungen wurden entfernt.Alle Chart-Objekte werden beim Deinitialisieren des EAs gelöscht. //+------------------------------------------------------------------------------------------------------------------------------+ Bei einer Einstellung von 0 wird der EA nichts unternehmen. Der Positive_Closure_in_Account_Currency muss höher sein als der aktuelle Kontostand, sonst werden die Trades sofort ausgeführt. Beispiel: Der Kontostand beträgt 55.000 € und der Positive_Closure_in_Account_Currency ist auf 55.500 € gesetzt, um 500 € zu gewinnen. Positive_Closure_in_Account_Currency > 0 && < 55.000 € = sofortige Ausführung Der Negative_Closure_in_Account_Currency muss niedriger sein als der aktuelle Kontostand, sonst werden die Trades ebenfalls sofort ausgeführt. Beispiel: Der Kontostand beträgt 55.000 € und der Negative_Closure_in_Account_Currency ist auf 54.500 € gesetzt, um nur 500 € zu verlieren. Negative_Closure_in_Account_Currency < 55.000 € = sofortige Ausführung Spread-Spitzen können vermieden werden, indem die Spread-Zahl reduziert wird, aber der Markt macht oft, was er will, und höhere Gewinne oder Verluste können auftreten. Wenn der Spread niedriger als der durchschnittliche Spread der gehandelten Paare eingestellt ist, werden diese Positionen möglicherweise nicht ausgeführt. WARNUNG: Nutzt diese Software auf eigenes Risiko. Der Forex-Markt ist sehr volatil! #property copyright &nbsp; &nbsp; &nbsp;"Copyright 2024, MetaQuotes Ltd." #property link &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "https://www.mql5.com" #property version &nbsp; &nbsp; &nbsp; &nbsp;"1.01" #property description &nbsp; &nbsp;"persinaru@gmail.com" #property description &nbsp; &nbsp;"IP 2024 - kostenlose Open Source" #property description &nbsp; &nbsp;"Dieser EA schließt alle Trades bei Gewinn und Verlust, berechnet in Kontowährung." #property description &nbsp; &nbsp;"" #property description &nbsp; &nbsp;"WARNUNG: Nutzt diese Software auf eigenes Risiko." #property description &nbsp; &nbsp;"Der Ersteller dieses Skripts kann nicht für Schäden oder Verluste verantwortlich gemacht werden." #property description &nbsp; &nbsp;"" #property strict #property show_inputs extern string &nbsp; Closures = "EA schließt alle Trades und offenen Aufträge, wenn ein Gewinn oder Verlust erreicht wird. Gewinne und Verluste werden in Kontowährung berechnet."; extern int Positive_Closure_in_Account_Currency &nbsp; &nbsp; = 0; extern int Negative_Closure_in_Account_Currency &nbsp; &nbsp; = 0; extern int Spread = 10;

2024.03.25
Neuro-Netzwerke für algorithmisches Trading mit MQL5 – Dein Leitfaden für MetaTrader 5
MetaTrader5
Neuro-Netzwerke für algorithmisches Trading mit MQL5 – Dein Leitfaden für MetaTrader 5

Entdecke die Welt der Neuro-Netzwerke im Trading Das Buch "Neuro-Netzwerke für algorithmisches Trading mit MQL5" ist dein ultimativer Begleiter, um maschinelles Lernen und neuronale Netze im Trading zu nutzen. Es richtet sich an algorithmische Trader, die lernen möchten, wie sie Handelsstrategien mithilfe fortschrittlicher KI-Techniken entwickeln können. Inhalte des Buches Das Buch umfasst 7 Kapitel, die alles abdecken, was du wissen musst, um mit neuronalen Netzen zu starten und diese in deine Handelsroboter in MQL5 zu integrieren. Mit leicht verständlichen Erklärungen wirst du die Grundlagen des maschinellen Lernens kennenlernen und verschiedene Arten von neuronalen Netzen entdecken, darunter Faltungs- und rekurrente Modelle sowie komplexere architektonische Lösungen und Aufmerksamkeitsmechanismen. Praktische Beispiele und Integration Um dir bei der Integration dieser Lösungen in deine Handelsroboter im MQL5-Umfeld zu helfen, bietet das Buch eine Vielzahl praktischer Beispiele. Außerdem werden verschiedene Methoden zur Verbesserung der Modellkonvergenz behandelt, wie z.B. Batch-Normalisierung und Dropout. Neurale Netze in deinen Handelsstrategien Der Autor gibt zudem praktische Hinweise, wie du neuronale Netze trainierst und in deine Handelsstrategien einbindest. Du wirst lernen, wie du Trading Expert Advisors erstellst, um die Leistung der trainierten Modelle mit neuen Daten zu testen und ihr Potenzial in realen Finanzmärkten zu bewerten. Fazit "Neuro-Netzwerke für algorithmisches Trading mit MQL5" ist nicht nur ein Buch: Es ist ein praktischer Leitfaden, der dir helfen kann, fortgeschrittene Entscheidungsfindungstechniken in deine Handelsalgorithmen zu integrieren und potenziell deine finanziellen Ergebnisse zu verbessern. Starte noch heute, um die erweiterten Möglichkeiten des maschinellen Lernens zu entdecken und bringe dein Trading auf das nächste Level.

2024.02.29
Manueller Trading EA: Buy Sell Close für Einsteiger im MetaTrader 4
MetaTrader4
Manueller Trading EA: Buy Sell Close für Einsteiger im MetaTrader 4

Wenn du neu im Trading bist, könnte der Buy Sell Close EA genau das Richtige für dich sein. Dieser manuelle Trading-Expert Advisor (EA) lässt sich sowohl im Backtesting-Modus als auch im Live-Trading einsetzen. Mit diesem Tool kannst du dein eigenes Trading-System im Backtesting ausprobieren und testen. Der Buy Sell Close EA ermöglicht dir die manuelle Steuerung, das Pausieren und die Anpassung der Geschwindigkeit beim Backtest, sodass du deine Trading-Fähigkeiten weiterentwickeln kannst. Einführung: Lots: Du kannst die Anzahl der Lots über den Button nach dem Eingabefeld anpassen. BUY: Mit einem Klick auf diesen Button platzierst du eine Kauforder mit der Anzahl der Lots, die du festgelegt hast. SELL: Durch Drücken dieses Buttons wird eine Verkaufsorder in der eingestellten Lot-Größe platziert. SL Anpassen TP: Dieser Button ermöglicht dir, Stop Loss und Take Profit für alle offenen Orders entsprechend dem aktuellen Preis anzupassen. Alle Kauforders schließen: Mit diesem Button schließt du alle offenen Kauforders. Alle Verkaufsorders schließen: Drücke diesen Button, um alle offenen Verkaufsorders zu schließen. Alle Orders schließen: Ein Klick auf diesen Button schließt alle offenen Orders. Auf der rechten Seite siehst du Informationen zu deinen offenen Orders und den jeweiligen Gewinnen. Parameterbeschreibung: MM: Automatische Berechnung der Lotgröße basierend auf dem Risiko. Risiko: Bei einem Kontostand von 10.000 beträgt das Risiko 0,2 Lots. Lots: Feste Lots, wenn MM auf FALSE gesetzt ist, wird diese feste Anzahl verwendet. SL: Stop-Loss: Standardmäßig 250 Mikropunkte. TP: Take-Profit: Standardmäßig 500 Mikropunkte. Hier sind noch weitere Parameter, die mit der Benutzeroberfläche zusammenhängen. Nutze die Gelegenheit, dein eigenes Trading-System zu üben. Vielen Dank fürs Lesen!

2024.02.29
Optimierung der Lot-Größe für Grid- und Martingale-Strategien: Der Bounce Number Indikator für MetaTrader 4
MetaTrader4
Optimierung der Lot-Größe für Grid- und Martingale-Strategien: Der Bounce Number Indikator für MetaTrader 4

Die Bestimmung der Lot-Größe und der Anzahl der Trades für Strategien wie Grid und Martingale ist von entscheidender Bedeutung. Als Trader stellen wir uns oft die Frage, was in der Vergangenheit eines Symbols während der Seitwärtsbewegungen passiert ist. Wie oft hat der Preis zwischen den zwei Preisen einer Range-Zone geschwankt?! Das, was ich als Bounce Number definiere, lässt sich durch eine statistische Analyse der Historie eines Symbols aus dem Markt berechnen. Um das klarer zu machen, schauen wir uns Bild Nr. 1 an. Bild Nr. 1: Definition der Bounce Number, ihre Ziele und Anwendungen Das Bild veranschaulicht, wie die Preisbewegung Statistiken des Bounce Number Tools generiert. Um eine Verzögerung im Tool zu erzeugen, habe ich es als Expert Advisor (EA) programmiert, um die Sleep-Funktion zu nutzen. Diese Funktion soll verhindern, dass das Chart aufgrund der hohen Anzahl an Kerzen im Input des Tools abstürzt. Das nächste Bild (Bild Nr. 2) zeigt die grafische Struktur des Tools und die Bedeutung seiner Objekte. Bild Nr. 2: Bounce Number Statistiken. So verwendest du das Tool: Aus Bild Nr. 2 betrachtet, wenn wir Bouncing Channel Half Height auf 600 Punkte setzen: Es gibt 6 verschiedene Bounce Numbers von 1 bis 6 für dieses Symbol. Die Bounce Number 2 bedeutet, dass der Preis von der Mitte des Bouncing Channels (Höhe 2 * 600 = 1200 Punkte) ausgeht und einmal die rote und einmal die blaue Linie berührt, bevor er das TP = 1200 Punkte erreicht. Bei Bounce Nr. 5 startet der Preis ebenfalls von der Mitte des Channels und berührt 2 Mal die rote und 3 Mal die blaue Linie oder umgekehrt, bevor er das TP erreicht. Das Gleiche gilt für die anderen Bounce Numbers. Es gibt keine Bounce Number 7, was bedeutet, dass es über die gesamte im Tool ausgewählte Historie keinen 7-fachen Bounce zwischen den roten und blauen Linien (mit 1200 Punkten Abstand) gibt. Wenn du jedoch mehr historische Daten (Maximale Anzahl der zurückliegenden Kerzen) auswählst, erhöht sich die Chance, 7 Bounces zu finden. Wie wir sehen, liegt die Chance für 6 Bounces bei 22 von 9020 Gesamtpreisen, die die TPs erreicht haben. Was im Input des Tools enthalten ist: Maximale Anzahl der zurückliegenden Kerzen: Sei vorsichtig mit der Zahl, die du für dieses Feld festlegst. Erhöhe sie nicht drastisch, um Abstürze im Speicher zu vermeiden. Zeitrahmen: Der Zeitrahmen der Kerzen, die du nutzen möchtest, um Bounces von den Kanalgrenzen und das Berühren der TP-Linien zu finden. Verwende einen niedrigeren Zeitrahmen für enge Channels. Wenn du dir unsicher bist, nutze besser den M1-Zeitrahmen. Bouncing Channel Half Height: Dies ist der Abstand der grünen Linie von den roten und blauen Linien, gemessen in Punkten. Hintergrundfarbe des Charts Farbe der Balkendiagramme 1/2: Um die statistischen Balken etwas ansprechender zu gestalten. Farbe der Zählzellen Farbe der Bounce Number Zellen Farbe der Ladeanzeige: Während der Berechnung hilft diese Ladeanzeige dem Benutzer zu erkennen, ob das Tool arbeitet und wie schnell die Berechnungen vorangehen. - Einfügte Schaltfläche zum Starten und Eingeben der Anzahl der historischen Kerzen vom Bildschirm.

2024.01.12
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&nbsp;&nbsp;&nbsp;&nbsp;"https://www.mql5.com/en/users/rajeshnait/seller" #property version&nbsp;&nbsp;"1.00" #include &lt;Trade/TerminalInfo.mqh&gt; bool&nbsp;&nbsp;&nbsp;&nbsp; first&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = true; bool&nbsp;&nbsp;&nbsp;&nbsp; Now_IsConnected&nbsp;&nbsp; = false; bool&nbsp;&nbsp;&nbsp;&nbsp; Pre_IsConnected&nbsp;&nbsp; = 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() &nbsp;&nbsp;{ //--- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResetLastError(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ( !IsStopped() ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pre_IsConnected = Now_IsConnected; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Now_IsConnected = terminalInfo.IsConnected(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( first ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pre_IsConnected = !Now_IsConnected; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( Now_IsConnected != Pre_IsConnected ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( Now_IsConnected ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connect_Start = TimeLocal(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( !first ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!PlaySound("::Files\Sounds\DISCONNECTED.wav")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Print("Fehler: ",GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( IsStopped() ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!PlaySound("::Files\Sounds\CONNECTED.wav")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("Fehler: ",GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connect_Stop = TimeLocal(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( !first ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!PlaySound("::Files\Sounds\CONNECTED.wav")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Print("Fehler: ",GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( IsStopped() ) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!PlaySound("::Files\Sounds\DISCONNECTED.wav")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("Fehler: ",GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; first = false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sleep(1000); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} //--- &nbsp;&nbsp; return(INIT_SUCCEEDED); &nbsp;&nbsp;} //+------------------------------------------------------------------+ 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
Erste Vorherige 2 3 4 5 6 7 8 9 10 11 12 Nächste Letzte