Arbeiten mit Telegram in MetaTrader. Telegram Kanäle und Bot
Meine Autolot-Geheimnisse. Dynamisches Lot oder Autolot.
Beschreibung
Alert : Die häufigsten Suchanfragen in Suchmaschinen und beliebten Forenthemen enthalten oft die folgenden Phrasen. Alert sind ebenfalls ein oft besprochenes Thema.
Ein Alert bei solchen Themen kann Ihnen helfen, über die neuesten Trends auf dem Laufenden zu bleiben.
- “Alertindikator“
- “Wie fügt man dem Indikator ein Tonsignal hinzu?“
- “Hilf mir, dem Indikator ein Tonsignal einzufügen“
- “Wie fügt man Alert und Pfeile ein“
- “Wie sendet man eine Nachricht per E-Mail oder Telefon, wenn das Signal vom Indikator kommt?“
In diesem Artikel werde ich ausführlich eine einfache Methode beschreiben, um Alert -, E-Mail-, Push- und Pfeil-Benachrichtigungen zu jedem Indikator hinzuzufügen, indem zusätzlicher Code von Expforex verwendet wird.
Vorwort
Um Alert korrekt in Ihrem Indikator zu installieren, müssen Sie den Open-Source-Code Ihres Indikators besitzen.
Der dekompilierte Code ist unerwünscht, weil er Anfängern nur minimale Informationen bietet. Es ist schwer zu verstehen. Der dekompilierte Code ist wenig hilfreich.
Sie können auch auf Kompilierungsprobleme nach der Bearbeitung stoßen.
xCustomEA
Wenn Sie nach einer einfacheren Möglichkeit suchen, Ihre Handelsstrategie zu automatisieren, ohne sich in komplexe benutzerdefinierte Programmierung zu vertiefen, sollten Sie xCustomEA in Betracht ziehen.
Dieser Expert Advisor von Expforex ist darauf ausgelegt, nahtlos mit Indikatoren zu arbeiten, die Pfeilsignale generieren. Mit xCustomEA können Sie jeden Indikator, der Kauf- oder Verkaufspfeile anzeigt, einfach automatisieren und so eine leistungsstarke automatisierte Strategie erstellen, ohne den Aufwand für die Entwicklung benutzerdefinierter Codes.
xCustomEA macht die Automatisierung von Strategien basierend auf Indikatorsignalen unglaublich zugänglich. Es ermöglicht Händlern, sich auf die Optimierung ihres Handels zu konzentrieren, anstatt Zeit und Ressourcen für die benutzerdefinierte Programmierung aufzuwenden. Dieser Expert Advisor dient als hervorragende Alternative zur Einstellung eines Programmierers und bietet eine einfache Lösung, um Indikatorsignale in Trades umzuwandeln.
Für weitere Informationen besuchen Sie die xCustomEA-Seite oder erkunden Sie die anderen Expert Advisors von Expforex.
Arbeitsbeginn zum Einfügen eines Alerts
Zuerst müssen Sie bestimmen, welche Indikator-Puffer spezifische Signale liefern, den Zweck der Erstellung eines Alerts und die Bedingungen zur Bestimmung des Signals im Indikator.
Wichtig: Nur externe Puffer, die zu Beginn des Variablencodes definiert sind, können in Indikatoren angezeigt werden:
#property indicator_buffers 1
Der Indikator kann jedoch auch versteckte Puffer enthalten, die in der init() Funktion gesetzt und als Variablen deklariert werden:
IndicatorBuffers(7): Wir benötigen nur die ersten Puffer.
Wenn Sie beispielsweise 1 externen Puffer haben, schauen Sie sich die Variable an:
SetIndexBuffer(0, SarBuffer);
- 0 ist der erste Puffer
- 1 ist der zweite Puffer
Diese Puffer oder ihre Namen können identifiziert werden, indem Sie mit der Maus über eine bestimmte Linie des Indikators im Chart fahren.
Value1 – Dies ist der erste Puffer oder 0 im Indexierungssystem des Codes.
SetIndexBuffer(0, SarBuffer); // Der Name des benötigten Puffers
Wenn dies SarBuffer ist, dann werden wir ihn verwenden.
Darüber hinaus ist es eine technische Frage, zu bestimmen, wie das Signal ausgelöst wird;
Zum Beispiel, wenn dies der Schnittpunkt der 0-Linie von oben (unten) ist, die nach unten (oben) geht, sieht es so aus:
SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0
Indikator kreuzt den aktuellen Preis oder eine Kerze, ein Kerzenausbruch durch den Indikator und so weiter:
SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]
Wenn dies der Schnittpunkt einzigartiger Ebenen ist, Indikatoren wie Stochastik:
SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75; SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;
Wenn bereits Pfeile in Ihrem Indikator vorhanden sind, ist auch der folgende Signaltyp möglich:
DnTrend[1] != EMPTY_VALUE && DnTrend[1] != 0 && UpTrend[2] != EMPTY_VALUE
In jedem Fall müssen Sie Logik und Kreativität anwenden, um das Signal korrekt aufzuzeichnen. Wenn Sie auf Schwierigkeiten stoßen, schreiben Sie in diesem Thread, fügen Sie den Indikator bei, zeigen Sie die Linien im Chart und beschreiben Sie detailliert, was Sie nicht können. Eine Nachricht wie “Sie müssen einen Alert in den Indikator einfügen” ohne zu erklären, wo und was zu tun ist, und ohne den Indikator selbst bereitzustellen, ist nicht hilfreich.
Code „Alert und Pfeile von www.expforex.com“
Der nächste Schritt zum Hinzufügen unseres Alerts zu Ihrem Indikator besteht aus mehreren Punkten:
SCHRITT 1
Fügen Sie den folgenden Code am Anfang des Expert Advisors vor der OnCalculate() (Start) Funktion ein:
//+==+//+ www.expforex.com edit AlertArrow +//+==+ extern string Alerts="Alarme und Pfeile von www.expforex.com"; extern bool AlerT=true; // Alarm auf dem Bildschirm ausgeben extern bool Mail=true; // Nachricht senden extern bool Push=true; // PUSH an das Telefon senden extern bool Arrow=true; // Pfeile auf Signalen platzieren extern int shift=1; // Auf welcher Kerze das Signal gezählt wird 0 - auf der aktuellen, 1 - auf der geschlossenen int timeee; // Interne Variable string nameInd; void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=3) { if(nm=="") nm=DoubleToStr(Time[0], 0); if(t1 <= 0) t1=Time[0]; if(p1 <= 0) p1=Bid; nameInd=WindowExpertName(); int wind=WindowFind(nameInd); wind=0; if(ObjectFind(nm) < 0) ObjectCreate(nm, OBJ_ARROW, wind, 0, 0); ObjectSet(nm, OBJPROP_TIME1, t1); ObjectSet(nm, OBJPROP_PRICE1, p1); ObjectSet(nm, OBJPROP_ARROWCODE, cd); ObjectSet(nm, OBJPROP_COLOR, cl); ObjectSet(nm, OBJPROP_WIDTH, sz); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Expforex_AlertArrow(string text="", int arrowdir=0, bool history=false, int i=0) { nameInd=WindowExpertName(); int wind=WindowFind(nameInd); if(wind==-1) wind=0; ObjectCreate("Originalalarm", OBJ_LABEL, wind, 0, 0); ObjectSetText("Originalalarm", "Änderung AlarmArrow www.expforex.com", 10, "Arial Bold", Red); ObjectSet("Originalalarm", OBJPROP_CORNER, 2); ObjectSet("Originalalarm", OBJPROP_XDISTANCE, 200); ObjectSet("Originalalarm", OBJPROP_YDISTANCE, 10); if(!history) { if(AlerT) Alert(text); if(Arrow) if(arrowdir==1) SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift], 0), Time[shift], Low[shift]); if(Arrow) if(arrowdir==2) SetArrow(242, Red, nameInd + DoubleToStr(Time[shift], 0), Time[shift], High[shift]); if(!IsTesting()) if(Mail) SendMail(text, text); if(!IsTesting()) if(Push) SendNotification(text); } if(history) { if(Arrow) if(arrowdir==1) SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], Low[shift + i2]); if(Arrow) if(arrowdir==2) SetArrow(242, Red, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], High[shift + i2]); } }//+==+//+ www.expforex.com edit AlertArrow +//+==+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { for(int i=ObjectsTotal(); i>=0; i--) { if(StringFind(ObjectName(i), nameInd)!=-1) ObjectDelete(ObjectName(i)); } } //+------------------------------------------------------------------+
SCHRITT 2
Bevor Sie die OnCalculate() Funktion schließen, fügen Sie den folgenden Code ein:
return(rates_total); }
Fügen Sie den folgenden Code ein:
//+==+//+ www.expforex.com edit AlertArrow +//+==+ nameInd=WindowExpertName(); if(timeee != Time[0] && SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " AUF", 1); timeee=Time[0]; } if(timeee != Time[0] && SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " AB", 2); timeee=Time[0]; }//+==+//+ www.expforex.com edit AlertArrow +//+==+
SCHRITT 3
Dieser Code dient als unser Signal.
Natürlich müssen Sie einige Codes mit Ihren eigenen ersetzen.
Der folgende Code dient als Signal für einen Alert:
1. Schnittpunkt der 0-Linie von oben (unten) nach unten (oben), sieht so aus:
SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0
2. Indikator kreuzt den aktuellen Preis oder eine Kerze, ein Kerzenausbruch durch den Indikator und so weiter:
SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]
3. Wenn dies der Schnittpunkt einzigartiger Ebenen ist, Indikatoren wie Stochastik:
SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75; SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;
Nach der Verwendung
Um dem Indikator ein Tonsignal hinzuzufügen, befolgen Sie diese Schritte:
- 1. Öffnen Sie die Einstellungen des Indikators.
- 2. Suchen Sie den Abschnitt “Alert ” oder “Pfeile“.
- 3. Wählen Sie die Option, einen TonAlert hinzuzufügen.
- 4. Wählen Sie die Audiodatei aus, die Sie als Alert verwenden möchten.
- 5. Speichern Sie die Änderungen.
Durch das Einfügen eines Tonsignals in den Indikator können Sie eine akustische Benachrichtigung erhalten, wenn bestimmte Bedingungen erfüllt sind, was Ihnen helfen kann, bessere Handelsentscheidungen zu treffen.
Wenn Sie Pfeile in der Historie benötigen, dann müssen Sie Folgendes tun:
Nach dem obigen Code fügen Sie Folgendes hinzu:
//+==+//+ www.expforex.com edit AlertArrow +//+==+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(counted_bars > 0) counted_bars--; int limit2 = Bars - counted_bars; for(int i2 = 0; i2 < limit2; i2++) { nameInd = WindowExpertName(); if(SarBuffer[shift+1+i2] <= 75 && SarBuffer[shift+i2] > 75) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " AUF" + i2, 1, true, i2); } if(SarBuffer[shift+1+i2] >= 25 && SarBuffer[shift+i2] < 25) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " AB" + i2, 2, true, i2); } } //+==+//+ www.expforex.com edit AlertArrow +//+==+
Beispiele
Diese Beispiele stammen aus dem entsprechenden Abschnitt unseres Forums. Ich habe die Indikatoren nach den oben beschriebenen Prinzipien modifiziert.
Fazit
In diesem Artikel habe ich den Prozess der Erstellung von Signalen für den Indikator auf die detaillierteste und verständlichste Weise erklärt.
Der obige Code kann uneingeschränkt in jedem Indikator verwendet werden. Es ist wichtig, den Namen des Autors nicht zu ändern, wenn Sie Code in den Indikator einfügen.
Wenn Ihnen dieser Artikel gefallen hat und Sie diese Methode des Einfügens von Signalen nützlich fanden, hinterlassen Sie bitte Ihre Kommentare und bewerten Sie die Themen.
- Freelance: Benutzerdefinierte Programmierung auf MetaTrader und MQL!
- Signal-Kerzen-Indikator. Von welcher Kerze sollten Sie ein Signal nehmen? Zeichnen von Indikatoren.
- CrossObjectALert Alarmindikator beim Kreuzen mit Objekten für MT4- und MT5-Terminals
- Arbeiten mit E-Mail und Push in MetaTrader
Signal-Kerze: Das ist wichtig zu wissen
Fragen?
Wenn Sie Fragen haben, stellen Sie sie bitte. Wir verkaufen kein Schwein im Sack.
Zusätzlich kann jedes unserer Produkte vor dem Kauf getestet werden.
Wir schätzen Ihr Interesse und Ihre Unterstützung für unsere Produkte und bemühen uns, hohe Qualitätsstandards aufrechtzuerhalten.
Danke, dass Sie bei uns sind!
Haben Sie eine Frage?
This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어
Leave a Reply