English
preview
MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 27): Gleitende Durchschnitte und der Anstellwinkel (Angle of Attack)

MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 27): Gleitende Durchschnitte und der Anstellwinkel (Angle of Attack)

MetaTrader 5Handelssysteme | 30 August 2024, 09:52
11 0
Stephen Njuki
Stephen Njuki

Einführung

Wir setzen die Serie über Handels-Setups und Ideen fort, die dank des MQL5-Assistenten schnell getestet und abgesichert werden können, indem wir den Anstellwinkel berücksichtigen. Der Begriff „Anstellwinkel“ bezieht sich allgemein auf den idealen Winkel, in dem ein Kampfjet abheben sollte, um maximalen Auftrieb und minimalen Treibstoffverbrauch zu erzielen.

Für Händler bezieht sich dieser Ausdruck jedoch in der Regel auf den Kursverlauf eines Wertpapiers, wenn es sich inmitten eines Trends befindet, wobei die allgemeine Meinung ist, dass ein steiler Winkel auf einen starken Trend hinweist. Daher beginnen wir diesen Artikel nicht nur mit dieser Sichtweise, sondern vor allem auch mit der Frage, mit welchen Mitteln der Indikator oder der Preiswinkel gemessen werden kann. Anschließend kritisieren wir diesen Ansatz, indem wir versuchen, einige seiner Probleme aufzuzeigen, schlagen eine möglicherweise bessere Alternative vor und schließen wie immer mit Testergebnissen und Berichten. 

Wir verwenden wie immer eine Instanz einer nutzerdefinierten Signalklasse, um unsere Hypothesen zur Messung des Anstellwinkels zu testen, und wir messen diesen Winkel nicht anhand des Rohpreises, sondern anhand eines gleitenden Durchschnitts. Wir verwenden den abnehmenden gleitenden Durchschnitt als Indikator für die Messung und Verfolgung der Bedeutung des Anstellwinkels. Rohpreise können auch zur Überwachung von Anstellwinkeln verwendet werden, da sie jedoch zwangsläufig volatilere Werte aufweisen als ein Indikatorpuffer, wählen wir den ersteren. Es hätte auch jeder andere gleitende Durchschnitt verwendet werden können, aber wir haben uns für den absteigenden gleitenden Durchschnitt entschieden, weil er etwas neu ist und den meisten Händlern nicht vertraut sein dürfte.


Aktuelle Ansätze zur Nutzung des Anstellwinkels

Der „Fußgängeransatz“ zur Ermittlung des Anstellwinkels beginnt mit der Identifizierung von zwei Preispunkten innerhalb eines Preis- oder Indikatorpuffers, von denen aus der Winkel gemessen wird. Bei diesem Puffer kann es sich um die rohen Wertpapierkurse handeln, die jedoch in der Regel sehr volatil sind, sodass es üblicher ist, einen geglätteten Puffer wie einen gleitenden Durchschnittspuffer zu verwenden. Wenn wir dies also auf dem täglichen Zeitrahmen durchführen, würden wir den gleitenden Durchschnitt für heute und den gleitenden Durchschnitt von vor N Tagen erhalten.

Im Anschluss daran wird die Veränderung des gleitenden Durchschnitts pro Periode bestimmt, in unserem Fall also die N Perioden, über die die beiden gleitenden Durchschnittswerte ermittelt werden. Als erstes wird in der Regel die Steigung m bestimmt, die mit Hilfe der unten stehenden Formel berechnet werden kann:

Wobei:

  • MA(heute) ist der heutige Wert des gleitenden Durchschnitts.
  • MA(vor N Tagen) ist der Wert des gleitenden Durchschnitts vor N Tagen.
  • N ist die Anzahl der Tage, die zwischen den beiden Punkten liegen.

Der von unserer obigen Formel zurückgegebene Wert von m entspricht der Steigung und ist proportional zum Anstellwinkel des gleitenden Durchschnitts. In seiner jetzigen Form kann er als Indikator für die Steilheit und damit für die Preisdynamik verwendet werden. Für viele Menschen bezieht sich der Begriff des Winkels jedoch auf etwas auf dem Papier, das für die Zwecke dieser Preisaktion im Bereich von 0 bis 90 Grad liegt.

Wenn Sie diese Steigung also als Winkel darstellen wollen, würden Sie die Arcus-Tangens-Funktion (inverser Tangens) verwenden, um die Steigung in Grad umzurechnen:

Der zurückgegebene Wert θ ist der Winkel im Bogenmaß. Um ihn in Grad umzurechnen, multipliziert man ihn mit:

Um dies in Aktion zu sehen, lassen Sie uns ein sehr einfaches Anwendungsbeispiel betrachten. Angenommen, Sie haben die folgenden Daten für einen Zeitraum von 10 Tagen:

  • Vor 10 Tagen war der MA: 100
  • Heute ist der MA: 110

Nach der obigen einfachen Formel würde die Steigung m lauten:

Daraus ergibt sich der Winkel θ (theta) im Bogenmaß:

Und wenn wir dies in Grad umrechnen:

Wir würden einen Wert erhalten, der in den Augen vieler Menschen an der Schwelle zu einem sehr hohen Wert steht. 45 Grad. Wenn es sich bei dem fraglichen Wertpapier um ein Yen-Devisenpaar handeln würde, könnte man die Idee von 45 Grad rechtfertigen oder nachvollziehen. Stellen Sie sich jedoch eine Situation vor, in der der Kurs eines Technologieunternehmens an einem einzigen Tag um denselben Betrag steigt. Wenn wir dieselben Berechnungen anstellen, die wir oben durchgeführt haben, beträgt unser Winkel 84 Grad, also fast 90! Die grundlegende Interpretation des „Anstellwinkels“ bei diesem Ansatz, der kein Standardbegriff in der Finanzanalyse ist, führt jedoch dazu, dass die Steigung eines gleitenden Durchschnitts so interpretiert wird, dass sie Aufschluss über die Stärke und Richtung des Trends gibt. Je steiler der Winkel (oder die Steigung), desto stärker ist der Trend.


Probleme mit dem derzeitigen Ansatz und den Methoden

Wie bereits bei der Anwendung der aktuellen Anstellwinkelmessungen erwähnt, gibt es eine Reihe von Problemen, die in erster Linie aus der Überempfindlichkeit gegenüber der Preisskala und den inkonsistenten Winkelergebnissen in unterschiedlichen Zeiträumen resultieren. Um diese zu veranschaulichen, beginnen wir mit dem Problem der Preissensibilität.

Handelt es sich bei dem gehandelten Wertpapier um ein Devisenpaar, das nicht in Yen notiert, wie z. B. GBPUSD, dann würde eine vergleichbare 10-Tage-Kursveränderung, die bei diesem Paar bei etwa 0,10 plus/minus liegt, einen m-Wert von 0,01 ergeben. Multipliziert man dies mit 180 und dividiert das Ergebnis durch PI, erhält man einen Winkel von 0,57 Grad. Wir alle wissen aus unseren Beobachtungen, dass 45 Grad und 0,57 Grad in der Größenordnung meilenweit auseinander liegen, und doch hatten beide Währungen, das Yen-Paar und der GBPUSD, eine Bewegung von 10000 Punkten! Man könnte argumentieren, dass dieser Unterschied in den Winkeln darauf zurückzuführen ist, dass Yen-Paare volatiler sind, aber das Verhältnis der beiden Winkel unterscheidet sich um den Faktor 90!!! Die meisten Händler sind sich einig, dass der Yen nicht 90 Mal volatiler ist als Nicht-Yen-Paare wie GBPUSD. Das liegt natürlich daran, dass für eine korrekte Bewertung der Veränderung der Preise von Devisenpaaren der Tickwert der Punktbewegung berücksichtigt werden muss. Und zu diesem Zweck, laut forex.com, werden die volatilsten Paare im Jahr 2023 von AUDUSD und NZDUSD übertroffen!

Das volatilste Yen-Paar liegt auf Platz 3, und das, obwohl sowohl AUDUSD als auch NZDUSD mit fünfstelligen Dezimalzahlen gehandelt werden, was bedeutet, dass unsere obige Bewegung um 0,10 Punkte denselben Winkel von 0,57 Grad ergeben würde.

Laut der Liste von forex.com war AUDUSD mit einer durchschnittlichen täglichen Veränderung von 1,04% am volatilsten. Bei einem Kurs von etwa 0,68150 würde eine Bewegung über 10 Tage mit 1,04 % pro Tag 0,070876 betragen. Daraus ergibt sich ein m bzw. eine Steigung von 0,0070876 und ein Winkel über die 10 Tage von 0,406 Grad. Das ist weniger als die 0,507, die wir für den GBPUSD veranschlagt hatten, aber der GBPJPY, der auf der Liste an siebter Stelle steht, verzeichnete eine durchschnittliche Preisänderung von 0,81 %. Diese Kursveränderung über einen Zeitraum von 10 Tagen, mit einem Basispreis von 147,679, würde einen Winkel von 50,1 Grad ergeben!

Zugegebenermaßen ist der Anstellwinkel nicht dazu gedacht, die Volatilität an sich zu messen, aber ich denke, die meisten Leser und Händler würden erwarten, dass die Größe eines geschätzten Anstellwinkels in gewisser Weise ein Maß für die Größe der letztendlichen Kursbewegung des Wertpapiers ist. Die Tatsache, dass dies eindeutig nicht der Fall ist, stellt diesen Ansatz zur Messung dieses Winkels in Frage. Zusätzlich zu diesen Unstimmigkeiten zwischen Sensitivität und Preis können Änderungen im Zeitrahmen eines Charts/einer Analyse die Größe des Anstellwinkels stark beeinflussen.

Nehmen wir zum Beispiel an, wir würden vom täglichen Zeitrahmen zum 4-Stunden-Zeitrahmen wechseln. In der allerersten Abbildung mit dem 45-Grad-Winkel würde sich dieser Wert auf 0,95 Grad ändern! Das wirft die Frage auf, warum wir bei einer einfachen „Detaillierung“ des Zeitraums, über den wir den Winkel messen, ohne irgendwelche Änderungen an der Preisskala vorzunehmen, plötzlich einen sehr flachen Winkel erhalten, der weniger als ein Grad beträgt? Die grobe Antwort darauf ist, dass wir eine verlängerte Basis haben und daher der Winkel im Vergleich zur gleichen Höhe weniger ansteigt, aber da die Länge der Basis wirklich die gleiche ist, wenn sie in der Zeit und nicht in ihren Einheiten gemessen wird, sollte diese Verzerrung nicht vorhanden sein.


Einführung einer alternativen Methode

Eine genauere Betrachtung der Probleme, die sich aus der Veränderung des Zeitrahmens ergeben, bietet jedoch eine mögliche Lösung. Wenn wir in einem beliebigen Dreieck nach der Größe des Winkels suchen und sowohl eine Höhe als auch eine Basis für dieses rechtwinklige Dreieck haben, sollte der Arkustangens der Basis geteilt durch die Höhe einen der Winkel in Grad ergeben.

Quelle

Aus unserem obigen Bild geht hervor, dass die Basis des größeren rechtwinkligen Dreiecks tatsächlich 1 ist (sie ist größer als cosθ), weshalb unsere gegenüberliegende Seite eine Höhe von tanθ hat. Wichtig ist dabei, dass die Einheiten der angrenzenden Seite (der Basis) den Einheiten der gegenüberliegenden Seite (der Höhe) entsprechen. Wenn dies der Fall ist, erhalten Sie aussagekräftige Gradwerte für Theta, wenn Sie den Arcustangens oder Arcuskosinus des Winkels Theta finden, was auch immer der Fall sein mag.

Das oben gezeigte Diagramm liefert zwar „zu viele Informationen“, unterstreicht aber die Definition des Tangens als Verhältnis. Sinus zu Kosinus. Oder was immer Sie vorziehen. Die horizontale Achse muss die gleiche Einheit haben wie die vertikale Achse, wenn der Winkel theta sinnvoll sein soll. Dies wirft die Frage auf, wie die beiden Achsen von Preis und Zeit so harmonisiert werden können, dass sie die gleichen Einheiten haben.

Bei dieser Normalisierung haben Sie die Wahl, entweder die Zeitachse und die Preisachse in Zeiteinheiten oder beide in Preiseinheiten umzurechnen. Diese Umstellung mag auf den ersten Blick radikal erscheinen, aber wenn wir uns die Ergebnisse ansehen und vergleichen, ergibt das alles einen Sinn. Da der Preis entscheidend ist und eine Preisbewegung in die falsche Richtung Sie Drawdowns kostet, werden wir sowohl die „vertikale“ als auch die „horizontale“ Achse unserer Preisaktion in Preiseinheiten angeben. Das wirft die Frage auf, wie man eine Zeitachse in Preise umskaliert.

Es gibt eine Reihe von Ansätzen, die dabei verfolgt werden können, und es ist nicht unsere Absicht, in diesem Artikel alle aufzuzählen oder unbedingt den „besten“ zu verwenden. Wir werden jedoch eine variable Skala verwenden. Bei zwei beliebigen Preispunkten, die in einem zeitlichen Abstand D voneinander liegen, wird der Abstand D in die Preiseinheiten der Preisspanne gegenüber dem vorherigen Abstand D umgerechnet. Es scheint sehr einfach zu sein, aber es führt zu relativ konsistenten Ergebnissen für die Größe des Anstellwinkels. In MQL5 würden wir dies wie folgt umsetzen:

//+------------------------------------------------------------------+
//| Get Angle function
//+------------------------------------------------------------------+
double CSignalAA::Angle(int Index)
{  double _angle = 0.0;
   double _price = DM(Index) - DM(Index+m_length_period);
   double _max = DM(Index+m_length_period+1);
   double _min = DM(Index+m_length_period+1);
   for(int i=Index+m_length_period+2;i<Index+(2*m_length_period);i++)
   {  double _dm = DM(i);
      _max = fmax(_max, _dm);
      _min = fmin(_min, _dm);
   }
   double _time = fmax(m_symbol.Point(), _max - _min);
   _angle = (180.0 / M_PI) * MathArctan(fabs(_price) / _time);
   if(_price < 0.0)
   {  _angle *= -1.0;
   }
   return(_angle);
}

Unsere Funktion nimmt einfach zwei Indexplatzhalter und verwendet diese, um zu bestimmen, von wo aus der Anstellwinkel gemessen werden soll und auch, wie oben erwähnt, wie weit zurück in der Geschichte auf der Suche nach der Preisspanne, die als unser Maß für die Zeit oder den Wert der horizontalen Achse dient, gehen soll. Die Preisspanne der gewählten Historie könnte Null sein, deshalb haben wir einen Punkt, der durch die minimale Preispunktgröße des gehandelten Wertpapiers bestimmt wird, als Mindestspanne. Der Leser kann diesen Wert so ändern, dass er der aktuellen Spanne entspricht, oder einen beliebigen Wert wählen, solange Nullteilungen vermieden werden. Wir beziehen uns auf die Funktion des abklingenden gleitenden Durchschnitts (DM), die im Folgenden vorgestellt wird.


Abnehmender gleitender Durchschnitt (DMA)

Dieser gleitende Durchschnitt ergibt exponentiell abnehmende Gewichte, die schneller abfallen als bei herkömmlichen exponentiellen gleitenden Durchschnitten. Er wird durch die nachstehende Formel definiert:

wobei

  • n der Umfang der gemittelten Stichprobe ist,
  • i ein Positionsindex innerhalb der Stichprobe ist und
  • P der Preis zum Zeitpunkt i ist.

Wie einige der neuartigen gleitenden Durchschnitte, die wir uns in den letzten Artikeln dieser Serie angesehen haben, kann auch dieser als Funktion oder als nutzerdefinierter Indikator implementiert werden, wenn Sie manuell damit handeln möchten. Nutzerdefinierte Indikatoren können gut gepuffert werden, was sogar einem Expert Advisor zusätzliche Effizienz verleihen kann. Für unsere Testzwecke bleiben wir jedoch bei dem Funktionsansatz, da ein nutzerdefinierter Indikator bedeutet, dass unser kompilierter Expert Advisor zusätzliche Anforderungen stellt.

Es gibt viele exponentielle Durchschnitte, die den jüngsten Kursen mehr Gewicht verleihen, ich denke, der abfallende gleitende Durchschnitt tut dies mit Steroiden. Wir können es in MQL5 wie folgt implementieren:

//+------------------------------------------------------------------+
//| Decaying Mean                                                   |
//+------------------------------------------------------------------+
double CSignalAA::DM(int Index, int Mask = 8)
{  double _dm = 0.0;
   vector _r;
   if(_r.CopyRates(m_symbol.Name(), m_period, Mask, Index, m_length_period))
   {  //vectors are not series
      double _weight = 0.0;
      for(int i = 0; i < m_length_period; i++)
      {  _dm += (1.0/pow(2.0, m_length_period-i))*_r[i];
         _weight += (1.0/pow(2.0, m_length_period-i));
      }
      if(_weight != 0.0)
      {  _dm /= _weight;
      }
   }
   return(_dm);
}

Wir wenden einfach eine Gewichtung auf jeden Preis innerhalb der Stichprobe an, der gemittelt wird, wobei die größte Vorsicht darin besteht, dass Vektoren die Kurse nicht als Reihen kopieren. Das bedeutet, dass wir darauf achten müssen, dass der höchste Indexpreis der letzte Preis oder der Preis ist, der dem Index am nächsten kommt, mit dem wir unsere Kopie begonnen haben. Dies bedeutet, dass unsere Gewichtung (Exponent, der dem 2-Nenner gegeben wird) umgekehrt wird, da wir in einer for-Schleife hochzählen.


Signal Klasse

Um dies alles in einer Klasse zusammenzufassen, fügen wir die Funktionen für abklingenden Mittelwert und dem Winkel zu einer Instanz einer Signalklasse hinzu und nehmen natürlich Änderungen an den Kauf- und Verkaufs-Bedingungen vor, wie unten gezeigt:

//+------------------------------------------------------------------+
//| "Voting" that price will grow.                                   |
//+------------------------------------------------------------------+
int CSignalAA::LongCondition(void)
{  int result = 0;
   double _angle = Angle(StartIndex());
   if(_angle >= m_threshold)
   {  result = int(round(100.0 * ((_angle) / (90.0))));
   }
   return(result);
}
//+------------------------------------------------------------------+
//| "Voting" that price will fall.                                   |
//+------------------------------------------------------------------+
int CSignalAA::ShortCondition(void)
{  int result = 0;
   double _angle = Angle(StartIndex());
   if(_angle <= -m_threshold)
   {  result = int(round(100.0 * (fabs(_angle) / (90.0))));
   }
   return(result);
}

Unsere Bedingungen sind wirklich einfach und prüfen nur, ob der Winkel, gemessen von einer Eingangsdistanz, einen Eingangsschwellenwert überschreitet oder gleich groß ist. Das bedeutet, dass unsere Bedingungen von Natur aus trendfolgend sind. Die „Winkel-Funktion“ gibt einen positiven oder negativen Wert zurück, weshalb die Kauf- und Verkaufs-Bedingungen dies vor der Eröffnung einer Position überprüfen. Der trendfolgende Ansatz könnte in Situationen, in denen der Winkel zu steil ist, umgedreht werden. Dies ist etwas, das wir in diesem Artikel nicht untersucht haben, sondern es bleibt dem Leser überlassen, dem nachzugehen und zu sehen, ob es einige Vorzüge haben könnte. Ein weiterer interessanter Punkt könnte sein, wie wir das „Ergebnis“ in den Bedingungen bemessen haben. Da unsere Winkelfunktion nun „konsistentere“ Werte liefert als die des orthodoxen Ansatzes, können wir sicher sein, dass wir keinen Winkel erhalten, der über oder nahe 90 Grad liegt.

Deshalb normalisieren wir den absoluten Wert des Winkels, indem wir ihn durch 90 teilen und ihn so umskalieren, dass er im gewünschten Bereich von 0 bis 100 liegt, damit er als Ergebnis dient. Es können auch hier alternative Ansätze zur Normalisierung untersucht werden, aber dies ist derjenige, der dem Wert des Anstellwinkels, um den es in diesem Artikel hauptsächlich geht, am meisten Gewicht verleiht.


Strategietests und Berichte zu beiden Ansätzen

Wenn wir Tests auf dem 4-Stunden-Zeitrahmen für das Paar GBPCHF über das Jahr 2023 (vom 2023.01.01 bis 2024.01.01) durchführen, erhalten wir die folgenden Ergebnisse:

r1

c1

Sie deuten zwar auf ein gewisses Potenzial hin, doch könnte man argumentieren, dass nicht genügend Abschlüsse getätigt werden. Und natürlich sind diese Läufe nicht nur auf ein Jahr begrenzt, sondern sie nutzen auch nicht die Vorwärtsfunktion des Strategietesters, die als schnelles Sieb dafür dienen kann, was funktionieren wird und was nicht. Wir haben jedoch die Steigung des abklingenden gleitenden Durchschnitts als Proxy für die Preissteigung verwendet, und da dieser besondere Durchschnitt stark auf die jüngsten Preise ausgerichtet ist, werden wir zwangsläufig eine Menge wilder Schwankungen bei den Signalen erhalten.


Kritischer Anstellwinkel

Der kritische Winkel ist ein Konzept, das wir aus der Aerodynamik übernehmen werden. Bislang haben wir nach Kauf- oder Verkaufs-Bedingungen gesucht, indem wir uns ausschließlich auf die Größe des Winkels des abfallenden gleitenden Durchschnitts gestützt haben. Der kritische Anstellwinkel führt den Gedanken ein, dass dieser Winkel, auf den wir unsere Eröffnungsentscheidungen stützen, nicht durch einen einzelnen Schwellenwert definiert ist, sondern besser innerhalb einer Bandbreite oder eines bestimmten Bereichs liegt. Um dies zu testen und auszunutzen, ändern wir unsere nutzerdefinierte Signalklasse, indem wir einen zusätzlichen Parameter einführen.

Der Parameter, den wir unserer Signalklasse hinzufügen, ist der doppelte Wert „m_band“, mit dem der äußere Bereich des Auslösewinkels festgelegt wird, da wir bereits den Schwellenwert kennen. Diese Änderung würde sich wie folgt in den langen und kurzen Konditionsfunktionen niederschlagen:

//+------------------------------------------------------------------+
//| "Voting" that price will grow.                                   |
//+------------------------------------------------------------------+
int CSignalAA::LongCondition(void)
{  int result = 0;
   double _angle = Angle(StartIndex());
   if(_angle >= m_threshold && _angle <= m_threshold+m_band)
   {  result = int(round(100.0 * ((_angle) / (90.0))));
   }
   return(result);
}
//+------------------------------------------------------------------+
//| "Voting" that price will fall.                                   |
//+------------------------------------------------------------------+
int CSignalAA::ShortCondition(void)
{  int result = 0;
   double _angle = Angle(StartIndex());
   if(_angle <= -m_threshold && _angle >= -(m_threshold+m_band))
   {  result = int(round(100.0 * (fabs(_angle) / (90.0))));
   }
   return(result);
}

Die wichtigste Änderung ist die Überprüfung, dass der Winkel über dem Schwellenwert liegt, wie es bei unserem ersten Signal der Fall war, aber auch, dass er unter einer Obergrenze liegt, die durch den Bandparameter definiert ist. Wenn wir Tests mit dieser Signaldatei durchführen, sobald sie zu einem Expert Advisor zusammengesetzt ist (Anleitungen dazu für diejenigen, die neu sind, finden Sie hier und hier), erhalten wir die folgenden Ergebnisse aus einem ähnlichen Testlauf wie oben:

r2

c2

Ein kurzer Vergleich mit unseren früheren Ergebnissen zeigt deutlich, dass wir nicht mehr so häufig handeln, und vielleicht ist das auch zu erwarten, weil wir jetzt verlangen, dass der Winkel nicht nur den Schwellenwert überschreitet, sondern auch innerhalb einer bestimmten Bandbreite bleibt. Die Gesamtperformance war bei den meisten Kennzahlen besser, d. h. Gewinnfaktor, Erholungsfaktor, prozentuale Inanspruchnahme usw. Dies ist daher etwas, das durch Tests über längere Zeiträume und mit Tickdaten weiter erforscht werden könnte, bevor Schlussfolgerungen über seine Wirksamkeit gezogen werden können.


Schlussfolgerung

Zusammenfassend lässt sich also sagen, dass wir den Anstellwinkel als Metrik für Finanzzeitreihen sowohl aus der traditionellen Sicht der einfachen Ermittlung des Winkels auf der Grundlage von Preis- und Rohzeitänderungen als auch aus einem neuartigen Ansatz der Umwandlung der Zeitreihen-Zeitachse in Preiseinheiten betrachtet haben. Die Tests mit dem erstgenannten Ansatz werden in diesem Artikel nicht vorgestellt, da wir so viele Ungereimtheiten bei der Messung des Anstellwinkels festgestellt haben, dass es uns sinnlos und eine Verschwendung von Rechenressourcen erschien, einen Strategietest durchzuführen.

Die Erprobung unseres neuen Ansatzes, die Horizontal- oder Zeitachse in Zeiteinheiten abzugrenzen, bevor wir den Anstellwinkel berechnen, hat jedoch einige vielversprechende Ergebnisse erbracht. Wir haben diesen Ansatz in zwei Modi getestet. Erstens haben wir einfach einen Schwellenwert für den Anstellwinkel verwendet, um herauszufinden, welche Positionen wir öffnen sollten, und zweitens haben wir das Konzept des kritischen Winkels angewandt, bei dem der Anstellwinkel nicht nur den Schwellenwert überschreiten, sondern auch nahe genug am Schwellenwert liegen musste, um eine Position zu öffnen, indem er innerhalb einer bestimmten Bandbreite lag.


Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/15241

Beigefügte Dateien |
SignalWZ_27_.mqh (6.67 KB)
attack_angle.mq5 (6.52 KB)
SignalWZ_27_c.mqh (6.96 KB)
Die Übertragung der Trading-Signale in einem universalen Expert Advisor. Die Übertragung der Trading-Signale in einem universalen Expert Advisor.
In diesem Artikel wurden die verschiedenen Möglichkeiten beschrieben, um die Trading-Signale von einem Signalmodul des universalen EAs zum Steuermodul der Positionen und Orders zu übertragen. Es wurden die seriellen und parallelen Interfaces betrachtet.
Sentiment-Analyse und Deep Learning für den Handel mit EA und Backtesting mit Python Sentiment-Analyse und Deep Learning für den Handel mit EA und Backtesting mit Python
In diesem Artikel werden wir die Sentiment-Analyse und ONNX-Modelle mit Python vorstellen, die in einem EA verwendet werden können. Ein Skript führt ein trainiertes ONNX-Modell aus TensorFlow für Deep Learning-Vorhersagen aus, während ein anderes Nachrichtenschlagzeilen abruft und die Stimmung mithilfe von KI quantifiziert.
Eine alternative Log-datei mit der Verwendung der HTML und CSS Eine alternative Log-datei mit der Verwendung der HTML und CSS
In diesem Artikel werden wir eine sehr einfache, aber leistungsfähige Bibliothek zur Erstellung der HTML-Dateien schreiben, dabei lernen wir auch, wie man eine ihre Darstellung einstellen kann (nach seinem Geschmack) und sehen wir, wie man es leicht in seinem Expert Advisor oder Skript hinzufügen oder verwenden kann.
MQL5-Assistent-Techniken, die Sie kennen sollten (Teil 26): Gleitende Durchschnitte und der Hurst-Exponent MQL5-Assistent-Techniken, die Sie kennen sollten (Teil 26): Gleitende Durchschnitte und der Hurst-Exponent
Der Hurst-Exponent ist ein Maß dafür, wie stark eine Zeitreihe auf lange Sicht autokorreliert. Es wird davon ausgegangen, dass sie die langfristigen Eigenschaften einer Zeitreihe erfasst und daher in der Zeitreihenanalyse auch außerhalb von wirtschaftlichen/finanziellen Zeitreihen eine gewisse Bedeutung hat. Wir konzentrieren uns jedoch auf den potenziellen Nutzen für Händler, indem wir untersuchen, wie diese Metrik mit gleitenden Durchschnitten gepaart werden kann, um ein potenziell robustes Signal zu bilden.