English Русский 中文 Español 日本語 Português
Ein Verfahren zur Erstellung der Unterstützung / Widerstand Levels

Ein Verfahren zur Erstellung der Unterstützung / Widerstand Levels

MetaTrader 4Beispiele | 1 März 2016, 15:16
845 0
Slobodov Gleb
Slobodov Gleb

Einführung

Die Unterstützung / Widerstand Levels sind ein grundlegendes Werkzeug, welches fast alle Händler verwenden. Diese Levels sind in den meisten Prognosen und jeder Händler muss sie selbst berechnen können.

In diesem Artikel wird ein Erstellungsprozess eines einfachen Skripts beschrieben, der die Unterstützung / Widerstand Levels berechnen wird. Der Artikel wurde für Anfänger geschrieben und deshalb können Sie für jeden Prozess eine detaillierte Erklärung finden. Allerdings, obwohl der Skript sehr einfach ist, wird der Artikel auch für fortgeschrittene Händler und Benutzer des MetaTrader 4 Plattforms nützlich sein, denn er enthält ein Beispiel für den Datenexport in die Tabellenformat, den Import einer Tabelle in Microsoft Excel und die Charts-Aufbau für die weitere detaillierte Analyse.


Die Unterstützung / Widerstand Levels

Sie können unten im Bild zwei Unterstützung / Widerstand Levels sehen.

Wir werden nicht genau die Bedeutung dieses Begriffs klarstellen, sagen wir bloß, dass in den meisten Büchern, die die Unterstützung / Widerstand Levels beschrieben sind und Sie können die folgende Bedeutung dazu finden. Die meistens Zeit werden die Notierungen zwischen diesen Linien schwanken und sie überqueren diese Linien sehr selten.

Sie können das sehr deutlich im nächsten Bild sehen.

Lassen Sie uns den Vorteil dieser Eigenschaft übernehmen. Um die Unterstützung / Widerstand Levels zu finden, müssen wir die Zahl der Schnittpunkte von Notierungen und Preis-Level berechnen.

Diese Berechnung ist nicht kompliziert. Als Ergebnis haben wir eine Korrelation zwischen jedem Preis und der Anzahl der Bars bekommen, die den Preis überschnitten haben. Jetzt haben wir das Problem, die Ergebnisse anzuzeigen. Es ist nicht möglich, sie in MetaTrader mit einem Indikator-Chart anzuzeigen, weil wir kein Preis-Chart von der Zeit brauchen, sondern ein Chart aus der Bars-Anzahl vom Preis. Deshalb müssen wir die Daten exportieren und sie in einem anderen Programm analysieren.


Erstellung eines Skripts

Zuerst müssen wir einen neuen Skript erstellen.

Um dies durchzuführen, lassen Sie uns ins Fenster «Navigator» gehen und dann mit der rechten Maustaste im Titel «Scripts« den «Erstellen»-Befehl auswählen. Im erschienen Fenster stellen Wir fest, dass die Art des Programms, das wir erstellen wollen, ist eben ein Skript und drücken auf die Schaltfläche "Weiter".

Dann wird es uns angeboten, den Namen und Parameter des Skripts einzugeben. Nachdem es auf die Schaltfläche "Fertig" geklickt wird, können Sie beginnen, den Skript zu schreiben.


Das Schreiben des Skripts

Der Quellcode des Skripts enthält nicht mehr als zwanzig Zeilen:

//+------------------------------------------------------------------+
//|                                                 ExportLevels.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
#property show_inputs
extern int MaxLimit = 1000;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   int handle;
   handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   FileWrite(handle, "Cost", "Bars Num");
   double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];
   for (double d = d1; d d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i MaxLimit; i++)
           if(d > Low[i] && d High[i])
               a+=1;   
       FileWrite(handle, d, a);
     } 
   FileClose(handle);
   return(0);
  }
//+------------------------------------------------------------------+

Das Skript besteht nur aus einer Funktion start(). Diese Funktion wird jedes Mal beim Aufruf des Skripts gestartet. Im folgenden finden Sie die detaillierte Erklärung des Quellcodes des Skriptes:

#property show_inputs
extern int MaxLimit = 1000;

Die erste Zeile weist darauf hin, dass dem Benutzer vor dem Start des Skripts ein Fenster mit externen Parametern zur Auswahl gegeben wird. In der Tat gibt es nur einen einzigen Parameter, der in der zweiten Zeile definiert wird. MaxLimit verantwortlich für die Anzahl der Bars in der History, die von dem Programm verwendet werden. Es ist standardmäßig 1000, aber der Benutzer kann es jederzeit nach seinem Ermessen ändern.

int handle;
   handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   FileWrite(handle, "Cost", "Bars Num");

Die ersten beiden Zeilen der Funktion start () verantwortlich für die Öffnung der Datei «FindLevels.txt» mit den Parametern FILE_CSV (das bedeutet, dass die Datei eine Texttabelle ist) und mit FILE_WRITE (das bedeutet, dass die Datei zum Schreiben geöffnet ist). Der Parameter '\ t' weist darauf hin, dass die Ziffern in der Datei mit Tabulatortaste geteilt werden. Wir haben zwei Spalten in der Datei: die erste ist «Cost» - der Preis, die zweite ist «Bars Num» - die Anzahl der Bars, die diesen Preis kreuzen. Mit der Funktion Filewrite () schreiben wir die Namen der Spalten in der Datei "FindLevels. txt ".

double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];

Dann finden wir den minimalen und den maximalen Preis in History von der Null-Bar bis zur Bar mit der Nummer MaxLimit. Die Funktion iLowest () zeigt den Index des Bars, wo der niedrigste Preis erreicht wird. Und Low[] – ist der minimale Wert des Preis in diesem Bar. Ähnlich ist es für iHighest() und High[].

for (double d = d1; d <= d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i < MaxLimit; i++)
           if(d > Low[i] && d < High[i])
               a+=1;   
       FileWrite(handle, d, a);
     }

Danach haben wir eine Loop for. Diese Loop wiederholt die Preise vom Mindestpreis d1 bis zum maximalen Preis d2 mit dem Schritt 0,0001. Die Variable a ist die Anzahl der Bars, die den Preis d kreuzt. Die zweite Loop for wiederholt MaxLimit Bars der History und überprüft, ob sie den Preis d kreuzen. Wenn einiger Bar diesen Preis kreuzt, wird a um 1 hochgezählt. Nach dem Ende der Loop for wird das Verfahren Filewrite den Preis d und die Anzahl der Bars a in der Datei schreiben.

FileClose(handle);
   return(0);

Am Ende des Verfahrens start () schließen wir die Datei und verlassen das Verfahren der Funktion return().

Nachdem wir den Skript geschrieben haben, können wir ihn durch Klicken auf die Schaltfläche «Compile» kompilieren und in MetaTrader aus «Scripts» im Fenster «Navigator» starten.


Die Öffnung der Datei mit Excel

Nachdem der Skript aufgerufen wird, erstellt das Programm «FindLevels.txt» im Ordner «\experts\files\». Öffnen wir ihn mit Excel. Um dies zu tun, lass uns Microsoft Excel starten und auf die Schaltfläche "Öffnen" klicken, dann wählen wir die Dateityp «Text Files», finden unsere Datei, die wir brauchen, und klicken wir auf die Schaltfläche «Open».

Wir brauchen nichts in den ersten beiden Fenster zu ändern, klicken Sie einfach auf die Schaltfläche «Next».

Im dritten Fenster klicken Sie auf die Schaltfläche «Advanced» und wählen Sie das Punkt-Symbol «.» für die Dezimalstelle und das Apostroph-Symbol «’» für die Tausendertrennzeichen. Dann klicken Sie auf «Ok» und «Finish».

Als Ergebnis müssen wir die beiden Spalten in Excel haben. Jetzt müssen wir nur das Chart zeichnen. Wählen Sie Insert-> «Chart».

Und das letzte, was wir tun müssen, müssen wir die Art des künftigen Charts und die Art seiner Darstellung wählen.

Schließlich haben wir das Chart der Bars-Anzahl vom Preis bekommen.

Sie können sehen, dass die Minima des Charts in Punkten 1.2582, 1.2616, 1.2644, 1.2705, 1.2712, 1.2730, 1.2744, 1.2850, 1.2879 liegen. Dies sind die Unterstützung / Widerstand Levels.

Wir können die Ergebnisse für 10.11.2006 mit Vorhersagen für 9.10. 2006 vergleichen:

RES 4 $1.2880 das Maximum vom 31 August
RES 3 $1.2865 1.618 das Swing-Ziel nach dem Sturz von 1.2795 bis 1.2680
RES 2 $1.2830 Fibonacci 76.4% von 1.2940 bis 1.2485
RES 1 $1.2805 die Stunde Widerstand
Das aktuelle Level: 1.2760
SUP 1 $1.2745 die Linie der 3 Wochen steigende Tendenz
SUP 2 $1.2730 Fibonacci 61.8% von 1.2680 bis 1.2820
SUP 3 $1.2715 Fibonacci 76.4% von 1.2680 bis 1.2820
SUP 4 $1.2680 das Minimum am 3 November

Wie wir sehen können, haben wir eine gute Korrelation zwischen dem Chart und den Vorhersagen. Es bedeutet, dass die Levels, die wir gefunden haben, sind wirklich die Unterstützung / Widerstand Levels!

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1439

Beigefügte Dateien |
ExportLevels.mq4 (1.33 KB)
Darstellung der Unterstützung / Widerstand Levels Darstellung der Unterstützung / Widerstand Levels
Der Artikel widmet sich der Suche und Darstellung der Unterstützung / Widerstand Levels in MetaTrader 4. Basierend auf einem einfachen Algorithmus wird ein komfortabler und universeller Indikator konstruiert. Der Artikel befasst sich auch mit dem Thema, wie man einen einfachen Indikator erstellen soll, der die Ergebnisse von verschiedenen Zeitrahmen in einem Arbeitsbereich anzeigen kann.
Trading unter Linux Trading unter Linux
Die Verwendung der Programm-Indikatoren für die operative Überwachung der Situation auf den Weltfinanzmärkten.
Der Filter auf basis der History Der Filter auf basis der History
Der Artikel betrachtet die Verwendung des virtuellen Handelns, als Hauptteil des Filters der Trades-Eröffnungen.
MQL4 Sprache für Einsteiger. Technische Indikatoren und Eingebaute Funktionen MQL4 Sprache für Einsteiger. Technische Indikatoren und Eingebaute Funktionen
Dies ist der dritte Artikel aus der Serie "MQL4 Sprache für Einsteiger" Jetzt werden wir erfahren, wie wir eingebaute Funktionen und Funktionen zur Arbeit mit technischen Indikatoren verwenden. Letztere werden bei der zukünftigen Entwicklung Ihrer eigenen Expert Advisors in Indikatoren von wesentlicher Bedeutung sein. Darüber hinaus werden wir an einem einfachen Beispiel sehen, wie wir Handelssignale für den Einstieg in den Markt verfolgen können, um zu verstehen, wie Indikatoren richtig angewendet werden. Und am Ende des Artikels werden Sie etwas Neues und Interessantes über die Sprache selbst erfahren.