Diskussion zum Artikel "Erstellen von selbstoptimierenden Expertenberatern in MQL5 (Teil 7): Handel mit mehreren Periodenlängen gleichzeitig"

 

Neuer Artikel Erstellen von selbstoptimierenden Expertenberatern in MQL5 (Teil 7): Handel mit mehreren Periodenlängen gleichzeitig :

In dieser Artikelserie haben wir mehrere verschiedene Möglichkeiten zur Ermittlung der besten Periodenlänge für die Verwendung unserer technischen Indikatoren untersucht. Heute werden wir dem Leser zeigen, wie er stattdessen die umgekehrte Logik anwenden kann, d. h., anstatt die beste Periodenlänge auszuwählen, werden wir dem Leser zeigen, wie er alle verfügbaren Periodenlängen effektiv nutzen kann. Dieser Ansatz reduziert die Menge der verworfenen Daten und bietet alternative Anwendungsmöglichkeiten für Algorithmen des maschinellen Lernens, die über die normale Preisvorhersage hinausgehen.

In unserer letzten Diskussion über selbstoptimierende Expert Advisors haben wir eine RSI-Klasse erstellt, die uns eine sinnvolle und organisierte Möglichkeit bietet, Indikatordaten über viele verschiedene Periodenlängen des RSI abzurufen. Leser, die mit dieser Diskussion nicht vertraut sind, können sich schnell informieren, indem sie diesem Link folgen. Für diese Diskussion werden wir jedoch vom RSI abweichen und ihn stattdessen durch Indikator Williams Percent Range (WPR) ersetzen.

Der WPR wird im Allgemeinen als Momentum-Oszillator betrachtet, und seine mögliche Gesamtspanne reicht von 0 bis -100. Werte zwischen 0 und -20 stehen für fallend, während Werte zwischen -80 und -100 als ansteigend angesehen werden. Der Indikator funktioniert im Wesentlichen durch den Vergleich des aktuellen Kurses eines bestimmten Symbols mit dem höchsten Wert, der innerhalb des vom Nutzer ausgewählten Periodenlänge festgestellt wurde. Unser erstes Ziel wird es sein, eine neue Klasse mit dem Namen „SingleBufferIndicator“ zu erstellen, die sowohl von der RSI- als auch von der WPR-Klasse genutzt wird. Dadurch, dass unsere RSI- und WPR-Klassen ein gemeinsames übergeordnetes Element haben, erhalten wir eine einheitliche Funktionalität beider Indikatorklassen. Wir beginnen mit der Definition der Klasse „SingleBufferIndicator“ und der Auflistung ihrer Klassenmitglieder. 

Dieser Entwurfsansatz bietet uns viele Vorteile. Wenn wir zum Beispiel neue Funktionen realisieren, die alle Indikatorklassen in Zukunft haben sollen, müssen wir nur eine Klasse aktualisieren, die übergeordnete Klasse „SingleBufferIndicator.mqh“, und von dort aus müssen wir nur noch die untergeordneten Klassen kompilieren, damit die Aktualisierungen verfügbar sind. Die Vererbung ist ein unverzichtbares Merkmal der objektorientierten Programmierung, weil wir viele Klassen effektiv kontrollieren können, indem wir nur eine Klasse ändern. 


Autor: Gamuchirai Zororo Ndawana