English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
Random Walk und der Trendindikator

Random Walk und der Trendindikator

MetaTrader 5Handel | 14 März 2016, 16:23
1 193 0
Гребенев Вячеслав
Гребенев Вячеслав

Einleitung

Den Münzwurf gibt es seit sehr langer Zeit. Lassen Sie uns das Spiel spielen, allerdings mit der Absicht, die Mechanismen des technischen Handels auf dem FOREX-Markt auszuprobieren und zu verstehen. Wir sind bei Weitem nicht die Ersten, die eine Münze in die Hand nehmen. Wenn Sie mehr über die Wahrscheinlichkeitstheorie erfahren möchten, empfehle ich Ihnen das Buch An Introduction to Probability Theory and Its Applications von William Feller. Unser Ziel ist es, die Mechanismen des Handels zu verstehen.

Random Walk und seine Eigenschaften

Zu Beginn simulieren wir das Ergebnis eines Münzwurfspiels mithilfe eines Generators von Zufallszahlen. Definieren wir Kopf als +1, Zahl als -1. Das Ergebnis des i-ten Münzwurfs ist x(i)=p(1/2). Dabei ist p(1/2) eine Funktion, die mit der Wahrscheinlichkeit 1/2 den Wert +1 und mit der gleichen Wahrscheinlichkeit 1/2 den Wert -1 annimmt.

Dann ist der Random Walk einfach die Summe von x(i). Zur Vereinfachung beginnen wir bei Null.

Münzwurf. Vertikale Achse: Werte des Wurfs; horizontale Achse: Anzahl der Münzwürfe.

Abbildung 1. Random Walk: (vertikale Achse: aktuelle Position auf der Linie; horizontale Achse: Zeitschritte)

Der Random Walk wurde ausgiebig studiert und verfügt über eine Reihe von bemerkenswerten Eigenschaften. Fassen wir diejenigen zusammen, die für uns nützlich sind:

  1. Die Arcsin-Verteilung. Je länger wir eine Münze werfen, desto weniger überschreitet die Position des Random Walk Null.
  2. Der Random Walk befindet sich etwa 90 Prozent der Zeit auf einer Seite von Null. Eigentlich sind diese beiden Theoreme im realen Handel nutzlos. Und auch wir brauchen sie grundsätzlich nur, um die Unterschiede zwischen realen Währungskursen und dem Random Walk zu verdeutlichen.
  3. Das Diagramm des Random Walk ist ein Fraktal, das heißt, er bleibt sich selbst bei einer Änderung des Maßstabs ähnlich. Fraktal ist ein schönes Wort, genauso wie Bilder von Fraktalen. Es ist hilfreich, dass die statistischen Parameter des Random Walk vom Maßstab unabhängig sind.
  4. Das Theorem des betrunkenen Matrosen. Der Random Walk ist die Spur eines betrunkenen Matrosen, der, nachdem er sein Geld ausgegeben hat, die Taverne verlässt. Dabei ist die Durchschnittsgeschwindigkeit die Quadratwurzel der Anzahl von Schritten (oder Münzwürfen). Dies ist ein sehr nützliches Theorem, da es uns eine Einschätzung der Zufälligkeit oder Nichtzufälligkeit von Ereignissen ermöglicht. Wenn wir es irgendwie geschafft haben, mit 65 Köpfen aus 100 Würfen zu gewinnen, hatten wir dann einfach nur Glück oder sollten wir einen Teil des Gewinns mit der Nützlichkeit dieses Wunders teilen?

Der Random Walk kann für den Handel verwendet werden. Schülern ist das schon lange aufgefallen und sie spielen "Kopf oder Zahl" zwischen Unterrichtsstunden. Der Random Walk kann für die Errichtung eines Spielzeugmarktes genutzt werden. Es gelten alle Handelsregeln wie auf dem echten Markt, doch anstatt der Währungskurse nehmen wir die Kurse des Random Walk. Wie immer gibt es einen Vermittler, der Spreads, Provisionen und Steuern sammelt. Doch wir bitten ihn höflich, vorerst nichts zu nehmen und uns das Spiel nicht zu verderben.

Ein paar Kommentare zum Handel:

  1. Bei der Verwendung des Random Walk ist es unmöglich zu erraten, wohin sich die RW-Position im nächsten Moment bewegen wird.
  2. Die Position kann sich um eine zufällige Distanz von Null wegbewegen, ins Plus wie ins Minus und über eine ausreichend große Menge von Münzwürfen.
  3. Kein Handelssystem kann im Schnitt auf Random-Walk-Kursen gewinnen oder verlieren. Es sollte beachtet werden, dass die Bilanz des Handelssystems ins Negative gehen kann, auch wenn es sich hier um einen Spielzeugmarkt handelt. Wir handeln mit einer endlichen Anzahl von Münzwürfen. Beim letzten Wurf schließen alle Abschlüsse. Der Begriff "im Schnitt" kann durch die Phrase "bei einer Mittelung über die Gesamtheit aller möglichen Werte" ersetzt werden.
    Wenn die Geldmittel des Handelssystems begrenzt sind und nicht ins Negative gehen können, trifft die folgende Aussage zu: Jedes Handelssystem, das aktiv auf Random-Walk-Daten handelt, wird Geld verlieren, bis kein Geld mehr übrig ist.
  4. Wenn wir es dem Vermittler erlauben, einen kleinen Spread von jedem Abschluss zu nehmen, nehmen die Mittel proportional zur Anzahl der Abschlüsse ab. Die optimale Strategie beim Handeln mit Vermittler: Überhaupt nicht spielen. Wenn Sie wirklich handeln wollen, stecken Sie am besten alles in einen Abschluss. In diesem Fall ist die Gewinnwahrscheinlichkeit am höchsten, liegt allerdings weiterhin unter 0,5.
  5. Die Mehrheit der Indikatoren und Expert Advisors werden mit Daten des Random Walk arbeiten. Viele von ihnen werden Signale zum Kauf oder Verkauf abgeben. Doch ihre Signale sind völlig bedeutungslos. Beim Handel mit Random-Walk-Daten und Anwesenheit eines Vermittlers sollte ein korrekter Expert Advisor nur eine Empfehlung abgeben: "Den Markt nicht betreten".
  6. Die Werte des Z-Kontos für jede beliebige Handelsstrategie auf Basis von Random-Walk-Daten werden normal um Null verteilt sein. Der konkrete Wert des Z-Kontos für bestimmte RW-Daten kennzeichnet keine Handelsstrategie. Bei der Verwendung von Random-Walk-Daten sind alle Katzen grau, das heißt, alle Handelsstrategien sind gleich. Handelsstrategien unterscheiden sich in ihrer Vorhersage zukünftiger Veränderungen und die Position des Random Walk ist unmöglich vorherzusagen.
  7. In den Daten des Random Walk können wir Trends, Zyklen, Umkehrmuster, Kanäle und weitere Attribute technischer Analysen beobachten. Das alles sind imaginäre Muster und helfen nicht im Handel. So ist es um die Psyche eines Händlers bestellt – er sieht Oasen in der Wüste, wo kein Tröpfchen an Informationen zu finden ist.
  8. Wenn zwei Personen mit einer begrenzten Anzahl an Münzen "Kopf oder Zahl" gegeneinander spielen, wird der durchschnittliche Gewinner derjenige sein, der mehr Münzen hat, da das Spiel automatisch endet, sobald der andere kein Geld mehr hat. Wird "Kopf oder Zahl" vom Händler und dem Markt gespielt, sind die Gewinnchancen des Händlers im Schnitt proportional zum Verhältnis des Kapitals des Händlers zum Marktvolumen. Oder einfacher ausgedrückt: Der Händler hat keine Chance. Auch dann nicht, wenn es keine Moderatoren gibt.
  9. Es lässt sich eine Meisterschaft mit Random-Walk-Daten abhalten. Jeder Teilnehmer erhält einen virtuellen Einsatz. Die Sponsoren versprechen denen, die die größte Summe an virtuellem Geld erhalten, echtes Geld. Die mathematische Gewinnerwartung wird klar positiv. Das Problem entsteht bei der Umsetzung der für die Meisterschaft optimierten Martingal-Strategie. Die aggressivsten Mitspieler verbrauchen ihren gesamten Einsatz weit vor dem Ende, während die Umsichtigen wenig Gewinn machen. Im Mittelfeld entscheidet der Random Walk in Form einer Lotterie. Interessant ist, dass die Strategie optimiert werden sollte, und zwar nicht nur für die Anzahl der Münzwürfe und die Höhe des ursprünglichen Einsatzes, sondern auch für die Anzahl aggressiver Mitspieler und sonstiger Typen. Dieses Thema überlassen wir allerdings einem anderen Beitrag. Das Schöne am Random Walk ist, dass er es uns ermöglicht, solche Optimierungsprobleme sowohl numerisch während der Simulation als auch analytisch zu lösen. Und sobald eine Aufgabe gelöst und verstanden wurde, kann sie im echten Leben verwendet werden.

Unterschiede zwischen echten Währungskursen und Random-Walk-Daten

Die Aussagen 1-8 fallen eher pessimistisch aus. Sie sagen den bedingungslosen Verlust des Einsatzes jedes Händlers auf dem Random-Walk-Markt voraus. Doch die Kurse von Währungspaaren unterscheiden sich von den Random-Walk-Daten. Diese Unterschiede sind der Schlüssel zum Aufbau einer (im Schnitt!) gewinnbringenden Handelsstrategie. Zählen wir die wesentlichen Unterschiede zwischen echten Währungskursen und Random-Walk-Daten auf.

  1. Der echte Währungskurs wird durch grundlegende ökonomische Faktoren eingeschränkt und befindet sich innerhalb eines bestimmten grundlegenden horizontalen Kanals. Anhand dessen können wir zum Beispiel eine Handelsstrategie auf Basis der "Volatilität" bei großen Timeframes aufbauen.
  2. Die Veränderungen eines echten Währungskurses können manchmal vorhergesagt werden, z. B. auf Basis aktueller Nachrichten.
  3. Es gibt Unterschiede bei der statistischen Verteilung der Parameter des echten Währungskurses und der des Random Walk. Diese sehr allgemeingültige Aussage ist der Schlüssel für die überwiegende Mehrheit der Handelsstrategien. Der echte Währungskurs und der Random Walk werden als Zahlenreihe betrachtet. Die Aufgabe ist, statistische Regelmäßigkeiten in der Reihe zu finden und auf deren Basis ihre zukünftigen Werte vorauszusagen.   

Eine Reihe von Änderungen im Random Walk ist eine Reihe zufälliger Vorkommen von +1 und -1. Wie finden wir also statistische Trends in dieser Reihe? Diese Frage fällt mit der Aufgabe der Überprüfung der Sequenz auf Zufälligkeit zusammen. Es wurden zahlreiche Zufälligkeitstests entwickelt. Wenn irgendein Test eine "Zufälligkeit" in einer Reihe zeigt, kann eine Handelsstrategie auf dieser Basis aufgebaut werden.

Das Konzept von Trends

Der einfachste Test ist der folgende. Die Häufigkeit von +1 und -1 in einer Sequenz sollte annähernd gleich sein. Laut Theorem des betrunkenen Matrosen kann sich die Häufigkeit von +1 im Allgemeinen nicht um mehr als die Quadratwurzel der Menge von Daten in der Sequenz von der Häufigkeit von -1 unterscheiden. Bei einem realen Kurs wird dieser Zufälligkeitstest einfach auf Basis der Beschränkung der realen Kurse durch den zugrundeliegenden Kanal durchgeführt. Hier können wir keine Handelsstrategie aufbauen.

Ein anderer Test ist viel interessanter. Lassen Sie uns die Menge der Ketten "+1+1", "+1-1", "-1+1" und "-1-1" zählen. In einer zufälligen Sequenz sollte ihre Menge in etwa gleich sein (natürlich wieder in Übereinstimmung mit dem Theorem des betrunkenen Matrosen). Falls die Menge der "++"-Ketten (umbenannt in "+1+1") plötzlich weit über der Menge von "+-"-Ketten ("+1-1") liegt, bauen wir eine Strategie auf: Nach jedem "+" setzen wir auf "+". Laut der Statistik sollten wir in mehr als der Hälfte der Fälle gewinnen.

Übersetzen wir den letzten Absatz in die Sprache des Händlers. Die beliebtesten Handelsstrategien sind solche, die Trends folgen. Das Hauptziel dieser Strategien ist es, Trends rechtzeitig zu erkennen und zum richtigen Zeitpunkt auf- und abzuspringen. Doch es gibt auch falsche Scheintrends, zum Beispiel bei Random Walks. Der oben beschriebene Test der Anzahl von Ketten hilft bei der Unterscheidung zwischen falschen und echten Trends. Wenn die Menge der "++"- und "--"-Ketten größer ist als die Menge von "+-" und "-+", dann weist der RW einen Trend auf und Strategien, die Trends folgen, werden funktionieren. Falls nicht, dürfen wir den Markt nicht auf Basis von Trendverfolgungsstrategien betreten. 

Wir können nicht nur binomiale Ketten (++ ,+- ,-+ ,--) berücksichtigen, sondern auch solche mit drei (+++, ++-, +-+, ...) und mehr Gliedern. Wir können die Menge der Trendketten (+++, ---, ++++) und Antitrendketten (-+-, +-+, +-+-) zählen oder jeder Kette einen Trendkoeffizienten zuordnen und die Summe mithilfe der Koeffizienten berechnen. Letztendlich führen uns diese Handlungen zur Berechnung der Punktzahl Z. Die Punktzahl Z wird hier allerdings nicht in einer Serie von Gewinn-Verlust-Strategien berechnet, wie es die Händler gewohnt sind, sondern unter Berücksichtigung der Kursänderungen. Eine negative Punktzahl Z bedeutet, dass es eine Trendserie gibt, eine positive Punktzahl Z deutet auf eine trendfreie Serie hin.

Die Berücksichtigung langer Ketten und die Berechnung der Punktzahl Z erfordern eine ausreichend lange Serie (ab 30). Unser Ziel ist es, den Trendindikator zu konstruieren, und die Berücksichtigung langer Serien führt zu Verzögerungen des Indikators. Die Berücksichtigung binomialer Ketten kann mit Serien aus 8 Elementen anfangen.  Lassen Sie uns deshalb die binomialen Ketten betrachten, um den Indikator zu konstruieren. Für eine eingehende Studie des Random Walk (zum Beispiel, um einen RW-Simulator zu bauen) müssen wir die Punktzahl Z benutzen.

Illustration von Trends im Random Walk

Lassen Sie uns das Konzept des Trends anhand des Random Walk illustrieren.

Eine Definition eines Trends lautet wie folgt: Ein Trend ist eine Erinnerung an vorherige Änderungen. Der Random Walk erinnert sich nicht an seine Historie. Geben wir ihm also eine Erinnerung: Sei das Ergebnis des i-ten Münzwurfs x(i)=p(1/2+a*x(i-1)). a ist dabei der Trendparameter zwischen -1/2 und +1/2. Die Funktion p(...) erzeugt +1 mit einer Wahrscheinlichkeit von 1/2+a*x(i-1) und -1 mit einer Wahrscheinlichkeit von 1/2-a*x(i-1).

Falls a<0, dann ist der Random Walk ein Antitrend. Falls a>0, ist er ein Trend. Falls a=0, hat der Random Walk keinen Trend.

Die Random Walks, die anhand derselben Abfolge zufälliger Zahlen erzeugt wurden, sind in der Grafik abgebildet.

Kurse eines Münzwurfs mit Trend

Abbildung 2. Erzeuge Random Walks: Trend (rot, a=0,2), kein Trend (blau, a=0) und Antitrend (gelb, a=-0,2)

Wir sehen, dass ein Random Walk mit Trend durch eine relativ hohe Volatilität – der Tendenz, geneigte Kanäle zu formen – gekennzeichnet ist. Der Random Walk mit Antitrend hat eine relativ niedrige Volatilität und versucht, zu einem horizontalen Kanal zurückzukehren.

Auf dem realen Markt ist der Unterschied zwischen Trend- und Antitrend-RWs nicht so einfach zu erkennen, insbesondere, wenn der Trend schwach ist. Ein Trendindikator ist absolut essentiell. Wie bereits erwähnt, ist der Handel mit trendlosen und Antitrend-RWs mit trendverfolgenden Strategien eine sichere Möglichkeit, den Einsatz zu verlieren.

Bei einem Trend-RW können Sie mit trendverfolgenden Strategien handeln. Die Kunst, einen Trend einzufangen und die Punkte der Trendumkehr zu untersuchen, kann durch statistische mathematische Methoden ersetzt werden. Doch die Frage bleibt weiterhin offen: Wird es genügend nichtzufällige Gewinne geben, um den Vermittler zu bezahlen und weiterhin Gewinn zu machen? Um eine ungefähre Antwort zu erhalten, müssen wir uns dem Trendindikator widmen, der am Ende dieses Beitrags bereitgestellt wird.

Bei einem Antitrend-RW können wir mit Volatilität handeln. Der Antitrend-RW versucht, geneigte Trends aufzubrechen und in einen horizontalen Kanal überzugehen. Sie können das Take-Profit-Niveau an jeder beliebigen Stelle im Kanal platzieren, unabhängig vom aktuellen Trend, und das Stop-Loss-Niveau außerhalb der Grenzen des Kanals. Ganz egal, an welcher Stelle sich der Preis im Kanal befindet, wird er am Ende das Take-Profit-Niveau berühren.

Bei einem trendlosen RW können wir nicht mit trendverfolgenden Strategien handeln. Wir müssen auf andere Konzepte zurückgreifen, beispielsweise die zyklische Wiederholung.

Vorschlag für einen Random-Walk-Simulator

Der Random Walk mit Trend ist ebenso nützlich für das Testen von Handelsstrategien. Wir können einen RW-Simulator auf Basis der folgenden Funktion erstellen:

Dabei bedeutet:

  • Amp – Amplitude,
  • P(...) – Wahrscheinlichkeitsfunktion,
  • Trend – Trend, die Funktion der vorherigen Änderungen,
  • Cycle – Zyklus, eine Funktion der Zeit,
  • Limit – eine Funktion des Random Walk,
  • Expect – Erwartungen, die Funktion der zukünftigen Änderungen.

Die Parameter dieser Funktionen werden an die statistischen Parameter der echten Kurse angepasst.

Die Simulation der echten Kurse durch den Random Walk hat eine viel tiefgreifendere Bedeutung als nur die Illustration der Unzulänglichkeit der menschlichen Wahrnehmung. Mit der RW-Simulation der Kursdaten können sie jeden beliebigen Expert Advisor auf dem VOLLSTÄNDIGEN Satz der möglichen Kurse testen (oder zumindest auf einem geeigneten Auszug des vollständigen Satzes). Dadurch wird es uns wiederum ermöglicht, eine Funktion der Wahrscheinlichkeitsverteilung der Mittel des ausgewählten Expert Advisors zu erstellen. Diese Verteilungsfunktion bestimmt eindeutig die Wirtschaftlichkeit, Aggressivität und sonstige Parameter des EAs.

Definition der Vollständigkeit des Satzes:

  1. Der Satz der vollständigen historischen Daten der Kurse bedeutet: Für jedes Gebot auf dem realen Markt gibt es ein sehr ähnliches RW-Muster. Mit zunehmender Menge der Kurse in einem Satz wird die Ähnlichkeit absolut (Abstand (Norm) der Kurse (Funktionen) zwischen dem realen und dem nächstgelegenen simulierten Kurs nähert sich Null an).
  2. Die Nichtswisser-Strategie – eine Strategie, deren Abschlüsse zufällig gemacht werden, aber ohne das Wissen um die historischen und aktuellen Kurse. Die Ergebnisse der vorherigen Abschlüsse sind ebenfalls unbekannt. Wir kennen nur die Startzeit oder die Nummer des Münzwurfs. Der Nichtswisser bezahlt nie die Spreads, Provisionen und Steuern. Der Nichtswisser kann auch negative Mittel haben.
    Der Satz der Kurse ist mathematisch vollständig, wenn die Funktion der Wahrscheinlichkeitsverteilung jeder beliebigen Nichtswisser-Strategie im Satz sich einer Normalverteilung annähert.
  3. Der Satz ist vollständig, wenn er mathematisch und historisch vollständig ist.

Das Testen anhand historischer Daten ist sicherlich besser als nichts. Doch die historischen Daten sind mangelhaft und veraltet. Zudem können historische Daten in Form einer Optimierung im Konzept des EAs enthalten sein. Wie können wir dann auf ihnen testen? Auch ist die Eigenkapitalkurve des EA auf historischen Daten nur ein Ausschnitt der Funktion der Wahrscheinlichkeitsverteilung des Eigenkapitals bei der historisch gewachsenen Umsetzung der Kurse. Als vollständiges Merkmal eines Expert Advisors kann sie nicht dienen.

Natürlich werden wir es nie schaffen, alle Feinheiten und Nuancen realer Kurse in simulierten Kursen wiederzugeben. Die Simulation realer Kurse ist ein reichhaltiges Thema für andere Beiträge und Studien. Doch für den Anfang können wir zum Testen der trendverfolgenden Systeme einen ziemlich einfachen Simulator auf Basis des Random Walk mit Trend nutzen.

Ein einfacher Simulator, der die Verteilungsfunktion bestimmen kann, muss nur an den Strategietester angehängt werden. Ein weiterer Ort, an dem die simulierten Kurse benötigt werden, ist die Ladenzeile der EAs. Andernfalls wäre es schwierig zu sehen, was wir eigentlich kaufen. Ich würde einen Handels-EA erst nach Tests auf mehreren völlig unterschiedlichen Simulatoren und historischen Daten kaufen. Bei jedem verkauften EA sollten neben dem Preis eine Funktion der Wahrscheinlichkeitsverteilung der Mittel und ein Simulator, aus dem diese hervorgeht, angebracht sein.

Die Funktion der Wahrscheinlichkeitsverteilung eines Expert Advisors ist ein technischer Pass des EAs und seine Herstellergarantie. Das Verbraucherschutzgesetz der Russischen Föderation gilt für EAs genauso wie für alle anderen Produkte. Hier müssen wir allerdings erst ein Zertifizierungssystem für Simulatoren aufbauen.


Trendindikator

Anhand des Konzepts des Trends eines Kurses können wir den einfachsten Trendindikator erstellen. Im Gegensatz zum Random Walk werden die realen Kurse als Balken dargestellt. Ersetzen wir die realen Kurse mit Random-Walk-Kursen. Jeder Balken wird durch einen einzelnen Durchschnittswert (high+low)/2 ersetzt (siehe Frage am Ende des Beitrags).  Entfernen wir die Amplitude der Änderungen und behalten nur die Zeichen. Wir erhalten eine Reihe von Plus- und Minuszeichen wie ++-+---+-+--.... Zählen Sie die Anzahl der Trendketten "++" und "--" und der Antitrend-Ketten "+-" und "-+" für die letzten N Balken. Als Indikator nehmen wir den Wert von "++" + "--" - "-+" - "+-".

Zur Erleichterung zeichnen wir eine Linie im Indikator, die die Stärke des Trends bewertet: + oder - Quadratwurzel von N.

Den Indikatorcode in MQL5 finden Sie am Ende dieses Beitrags (TrendingHL.mq5).

Trendindikator auf EURUSD

Abbildung 3. Trendindikator, EURUSD, monatlicher Timeframe. Die Kurse bilden fast immer einen Trend (über Null) und die Hälfte der Zeit ist es ein starker Trend (über der oberen grünen Linie). Die Menge der Balken, durch die der Trend bewertet wird, ist N=30.

Nachdem wir den Trendindikator auf EURUSD-Kursen ausprobiert haben, stellen wir Folgendes fest:

  1. Der Indikator ist die meiste Zeit über größer als Null. Das bedeutet, die Kurse bilden einen Trend. Der schwache Trend der Kurse wurde bereits besprochen. Doch ein Bild sagt mehr als tausend Worte.

  2. Reale Kurse bilden nicht immer einen Trend.

  3. Der Trendindikator reagiert verzögert, genauso wie alle anderen Indikatoren.

  4. Der Trendindikator ermöglicht es uns, die Höhe des nichtzufälligen Gewinns, der durch die Trendstrategie in diesem Diagramm erhalten werden kann, zu schätzen. Der Durchschnittswert des Indikators in der Abbildung liegt bei etwa 7. Die durchschnittliche Änderung des Kurses für einen Balken beträgt (etwa) 0,01 USD. 0,01*7=0,07. Somit können wir pro investierten Dollar jeden Monat 7 Cent verdienen. Das ist nur eine grobe Bewertung, doch sie verschafft uns einen groben Überblick über die Größenordnung. Wir haben den Vermittler, den Margenhandel und die Ein- und Austrittspunkte des Marktes vernachlässigt.

    Die gute Nachricht ist, dass reale Kurse im Gegensatz zu Random-Walk-Kursen Trends bilden und uns Geld verdienen lassen.
    Ernüchternd ist allerdings, dass der Ertrag aus dem Kapital sehr niedrig und mit anderen Anlageninstrumenten vergleichbar ist.

  5. Die Tatsache, dass der Trend über die Jahre im Schnitt positiv ist, verleiht dem Indikator die Kraft der Vorsehung. Wir können hoffen, dass der Trendcharakter der Kurse sich fortsetzen wird.

  6. Trends lassen sich am besten auf großen Timeframes erkennen.

  7. Antitrends treten selten auf.

  8. Obwohl der reale Kurs ein Fraktal ist, kann nicht mit Sicherheit von einer Trendinvarianz bei einer Änderung des Maßstabs (Timeframe) gesprochen werden.
    Eine korrekte Hypothese wäre vermutlich die folgende: Der relative Gewinn ist bei Änderungen des Maßstabs unveränderlich.

    Dabei bedeutet:

    • Trend – Trend,
    • AverChangePerBar – durchschnittliche absolute Änderung des Kurses pro Balken,
    • TimeInBar – Dauer des Balkens in der Zeit (Timeframe).


    Dabei bleibt der Gewinn nicht nur bei unterschiedlichen Timeframes erhalten, sondern auch bei unterschiedlichen Handelskonzepten (zyklische Wiederholung, Volatilität), verschiedenen realen Kursen und unterschiedlichen Anlageinstrumenten. Die Wirtschaftlichkeit wird nach oben hin durch zahlreiche Spekulanten und Investoren begrenzt. Von unten wird der Gesamtgewinn für alle Instrumente durch den Anstieg des Gesamtvolumens des Kapitals oder, verallgemeinert gesagt, durch die Entwicklung der Menschheit begrenzt.

    Anhand des letzten Absatzes können wir einen Indikator des Trendgewinns eines Kurses erstellen und unter Einbezug anderer Konzepte einen Indikator des Gesamtgewinns. Durch die Erstellung ähnlicher Indikatoren für andere Instrumente können wir die Bewegung des Kapitals im Markt untersuchen und daraufhin können wir die Kurse möglicherweise genauer vorhersagen.

Lassen Sie mich den letzten Absatz detaillierter erklären. Es gibt zwei Arten, die Kurse vorherzusagen:

  1. Wir wissen, dass es unmöglich ist, durch Random-Walk-Kurse Gewinn zu machen. Wir erforschen den realen Kurs und sehen, dass der reale Kurs Trends aufweist, die seit langer Zeit bestehen. Da die Trends seit Jahren bestehen, können wir annehmen, dass sie auch morgen noch bestehen werden. Und das ist die ganze Vorhersage. Eine Art der Nichtzufälligkeit ist der Trend. Die Nichtzufälligkeit der Kurse wird durch das Wachstum des Gesamtkapitals erzeugt. Das Wachstum des Kapitals beträgt mehrere Prozent pro Jahr. Diesen Anteil des Kapitals erhalten wir im Großen und Ganzen aus unserer Spekulation auf diese Nichtzufälligkeit.
  2. Wir kennen nicht nur die Historie der Kurse, sondern auch ihre Bewegungen auf benachbarten Märkten. Die Summe des Kapitals auf allen Märkten ist ein annähernd konstanter Wert. Wir untersuchen die Kapitalbewegungen zwischen den Märkten, finden Trends und nutzen sie, um die Kurse vorauszusagen. Der Gewinn wird hier proportional zum nichtzufälligen Kapitalfluss zwischen den Märkten ausfallen. Doch die Umsetzung solcher Vorhersagen in MetaTrader 5 ist derzeit nur innerhalb der Grenzen des Währungsmarktes möglich. 

Die 7 Prozent der Trendwirtschaftlichkeit (siehe "nichtzufällige Trends"), die wir mit dem Indikator ermittelt haben, sind die Summe der beiden oben betrachteten Nichtzufälligkeiten sowie weiterer Nichtzufälligkeiten, die wir nicht einmal kennen.

Die Märkte werden hier als ungeschlossene (offene) Systeme mit Zu- und Abflüssen betrachtet. Anstieg = Zufluss - Abfluss. Falls der Zufluss größer ist als der Abfluss, bildet der Markt (die Marktkurse) einen Trend. Sind Zu- und Abfluss gleich hoch, ist der Markt trendlos. Falls der Zufluss geringer ist als der Abfluss, bildet der Markt einen Antitrend.

Dieser Beitrag enthält einen ernsten Widerspruch. Einerseits haben wir anhand des Trendindikators festgehalten, dass der reale Kurs einen Trend bildet. Andererseits behaupten wir, dass der reale Kurs innerhalb der Grenzen eines zugrundeliegenden horizontalen Kanals fluktuiert. Und ein horizontaler Kanal ist ein starkes Zeichen für einen Antitrend.

Bildet der reale Kurs nun also einen Trend oder einen Antitrend? Mein Harmonieempfinden sagt mir, dass die Kurse einen Trend bilden und ein zugrundeliegender horizontaler Kanal nicht existiert. Und das bedeutet, dass die historischen Maximal- und Minimalwerte ständig aktualisiert werden. Die damit zusammenhängenden Krisen werden immer stärker, bis die nächste Krise das System zerstört. Im Allgemeinen ist das verständlich: Ein Trend ist ein Zeichen dafür, dass irgendein Parameter im System (Kapital) akkumuliert wird und wächst. Wenn wir ein System immer weiter beladen, wird es irgendwann zusammenbrechen. Es wird eine Rücksetzung des akkumulierten Parameters stattfinden und ein neuer Entwicklungszyklus beginnen.

Fazit

Dies ist ein weiterer Beitrag über den FOREX-Markt. Sie finden hunderte solcher Beiträge mit einem Durchschnittspreis von einem Dollar im Internet. Die Menge der kostenlosen Artikel lässt sich nicht einmal zählen. Was ist in diesem speziellen Beitrag also neu?

  1. Um Händlern das Leben zu erleichtern, werden die Merkmale des Random Walk vorgestellt und ein Indikator erstellt, der es uns ermöglicht, reale Kurse mit Trends von Random-Walk-Daten zu unterscheiden.
  2. Mithilfe des Indikators können wir die Gewinne beurteilen, die aus einer trendverfolgenden Strategie entstehen können.
  3. Wir haben vorgeschlagen, die Handelsplattform MetaTrader 5 um einen Kurssimulator zu erweitern. Wir haben ein Konzept für diesen Simulator dargelegt.  

Frage

Frage: Warum wird für den Indikator der Durchschnittswert (High + Low)/2 genommen? Wir können auf diesem Preis nicht handeln. Und die Verwendung des Durchschnittswerts ist gefährlich, denn die durchschnittlichen (geglätteten) Random-Walk-Kurse werden einen Trend aufweisen. Zudem steigt mit zunehmender Mittelung (Glättung) das Ausmaß des Trends.

Antwort: Überprüfen wir das. Zur Überprüfung können wir die Preise ohne jegliche Mittelung nehmen, beispielsweise einfach die Eröffnungs- und Schließungspreise. Der Trend bleibt bestehen, ist aber nicht mehr so gut zu erkennen.

Überdenken wir die Auswirkungen der Mittelung des Trendindikators (EURUSD, monatlicher Timeframe). Der untere Indikator wird mit den Durchschnittswerten (High + Low)/2 berechnet (trendinghl.mq5). Der mittlere Indikator wird durch den Open-Preis berechnet (trendingopen.mq5). Der obere Indikator wird durch den Close-Preis berechnet (Trendingclose.mq5). Es ist zu erkennen, dass alle Indikatoren positiv sind und die Kurse einen Trend haben. Doch der Durchschnittswert des Indikators bei Open und Close ist nicht 7 wie bei (High + Low)/2, sondern etwa 2. Für die Genauigkeit, mit der Schätzungen in diesem Beitrag gemacht werden, ist der Unterschied nicht ausschlaggebend. Ich muss zugeben, dass die Mittelung den Trend des Kurses künstlich erhöht hat.

Zwingendere, genauere, zuverlässigere und forderndere Beweise (Messungen) des Trends des Kurses lassen sich in der Suche mit den Suchbegriffen Trend, Persistenz, Hurst-Exponent usw. einfach finden. .

Der Teil der Frage "Mit diesem Preis können wir nicht handeln" ist unrealistisches Fachwissen. Der Gegner erwartet (und sucht unterbewusst) einen Indikator, durch den er die Signale mit seinen Augen sehen und mit seinen Händen bewusst handeln kann. Ich muss Sie leider enttäuschen. Computer töten den manuellen Handel.

Wie in diesem Beitrag bewertet, gilt die Nichtzufälligkeit des Kurses für etwa 10 Prozent des Kapitals pro Jahr (mit einer gewissen Genauigkeit). Solche Werte des Kurses können nicht mit den Augen gesehen und mit den Händen erfasst werden. Ein automatisierter Expert Advisor wird benötigt. Der EA wird um wenige Prozent des Kapitals im Jahr kämpfen und in der nahen Zukunft um den zehnten bis hundertsten Teil eines Prozents. Deshalb brauchen wir einen Simulator, um die Bruchteile eines Prozents des Gewinns zu verfolgen und zu optimieren. 

Beim Testen auf realen Kursen ist es unmöglich, ein Bruchstück eines Prozents oder sogar ein ganzes Prozent Gewinn im Jahr zu erfassen.

Deshalb werden sehr hohe Anforderungen an das mathematische Modell des Simulators gestellt.

//+------------------------------------------------------------------+
//|                                                     Trending.mq5 |
//|                                      Copyright 2010, Grebenev V. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, Grebenev V."
#property description "Trending Indicator"
#property version   "1.00"
#property indicator_separate_window
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   3
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_SECTION
#property indicator_type3   DRAW_SECTION
#property indicator_color1  LightSeaGreen
#property indicator_color2  DarkGreen
#property indicator_color3  DarkGreen
#property indicator_label1  "Trending"

//--- input parameters N – number of bars, by which the trend is calculated
input int      N=30;

double ExtTRbuffer[];   // array for the indicator
double ExtTRbufferP[];  // array for the upper estimation of the trend
double ExtTRbufferM[];  // array for the lower estimation of the trend
double average[150000];  // array for the average values of the rates

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator digits
//   IndicatorSetInteger(INDICATOR_DIGITS,0);
//--- indicator short name
   IndicatorSetString(INDICATOR_SHORTNAME,"Trending");
//---- index buffer
   SetIndexBuffer(0,ExtTRbuffer);
   SetIndexBuffer(1,ExtTRbufferP);
   SetIndexBuffer(2,ExtTRbufferM);
//--- set index draw begin
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,1);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,1);
   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,1);
//---- Array Initialization
   ArrayInitialize(ExtTRbuffer,0);
   ArrayInitialize(ExtTRbufferP,0);
   ArrayInitialize(ExtTRbufferM,0);
   ArrayInitialize(average,0);
   return(0);
  }


//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   double pp=0,pm=0,mp=0,mm=0; // pp - number of «++» chains, pm  - number of «+-», mp – «-+», mm – «- -»

   / Fill the array of the average values of the rate with average values (high+low) /2
   for(int i=prev_calculated;i<rates_total;i++) average[i]=(high[i]+low[i])/2;

   for(int i=prev_calculated;i<rates_total;i++)
     {
      pp=0; pm=0; mp=0; mm=0;

      for(int j=0;j<N;j++)
        {
         if(i-j-2>=0) // check that the index of the array did not exceed the border 0
           {
            if((average[i-j-1]-average[i-j-2])>0 && (average[i-j]-average[i-j-1])>0) pp++;
            if((average[i-j-1]-average[i-j-2])>0 && (average[i-j]-average[i-j-1])<0) pm++;
            if((average[i-j-1]-average[i-j-2])<0 && (average[i-j]-average[i-j-1])>0) mp++;
            if((average[i-j-1]-average[i-j-2])<0 && (average[i-j]-average[i-j-1])<0) mm++;
            // chain containing "0" omitted
           }
        }
      // fill indicator arrays
      ExtTRbuffer[i]=pp+mm-pm-mp;
      ExtTRbufferP[i]=sqrt(N);
      ExtTRbufferM[i]=-sqrt(N);
     }
   return(rates_total);
  }

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

Beigefügte Dateien |
trendingclose.mq5 (3.69 KB)
trendinghl.mq5 (3.67 KB)
trendingopen.mq5 (3.69 KB)
Offenlegen von C#-Code in MQL5 mithilfe nicht gemanagter Exporte Offenlegen von C#-Code in MQL5 mithilfe nicht gemanagter Exporte
In diesem Beitrag stelle ich verschiedene Interaktionsmethoden zwischen MQL5-Code und gemanagtem C#-Code vor. Ich habe auch mehrere Beispiele dafür bereitgestellt, wie MQL5-Strukturen gegen C# angeordnet werden können und wie sich exportierte DLL-Funktionen in MQL5-Scripts aufrufen lassen. Ich bin überzeugt, dass die hier bereitgestellten Beispiele als Basis für zukünftige Forschungen zum Schreiben von DLLs in gemanagtem Code dienen können. Dieser Beitrag bereitet auch Wege für die Nutzung bereits in C# implementierter Bibliotheken in MetaTrader.
Die Umsetzung von Indikatoren als Klassen mit den Beispielen Zigzag und ATR Die Umsetzung von Indikatoren als Klassen mit den Beispielen Zigzag und ATR
Die Debatten über eine optimale Berechnung von Indikatoren sind endlos. Wo sollen wir die Indikatorwerte berechnen – im Indikator selbst oder doch die gesamte Logik in einen Expert Advisor, der auf sie zugreift, einbetten? Dieser Beitrag beschreibt eine der Möglichkeiten zum Verschieben des Quellcodes des benutzerdefinierten Indikators iCustom in den Code eines Expert Advisors oder Scripts mit der Optimierung der Berechnungen und der Modellierung des Werts prev_calculated.
Universelles Regressionsmodell für die Prognostizierung von Marktpreisen Universelles Regressionsmodell für die Prognostizierung von Marktpreisen
Der Marktpreis wird aus einer stabilen Balance zwischen Angebot und Nachfrage geformt, die ihrerseits von diversen wirtschaftlichen, politischen und psychologischen Faktoren abhängen. Unterschiede in der Natur und den Ursachen der Auswirkungen dieser Faktoren machen es schwierig, alle Komponenten direkt zu betrachten. Dieser Beitrag beschreibt einen Versuch, den Marktpreis basierend auf einem ausgearbeiteten Regressionsmodell zu prognostizieren.
Diagramme in HTML Diagramme in HTML
Es ist heutzutage schwierig, einen Computer zu finden, auf dem kein Web-Browser installiert ist. Browser werden seit langer Zeit weiterentwickelt und ständig verbessert. In diesem Beitrag wird eine einfache und sichere Art der Erstellung von Diagrammen auf Basis von Informationen aus dem MetaTrader 5 Client Terminal besprochen, die im Browser angezeigt werden.