English Русский Español 日本語 Português
preview
Analyse überkaufter und überverkaufter Trends mit Ansätzen der Chaostheorie

Analyse überkaufter und überverkaufter Trends mit Ansätzen der Chaostheorie

MetaTrader 5Handelssysteme |
20 3
Yevgeniy Koshtenko
Yevgeniy Koshtenko

Wenn aus dem Chaos ein Muster wird

Stellen Sie sich vor, Sie gehen während eines Schneesturms durch den Wald. Schneeflocken wirken chaotisch, ihre Bewegung ist unvorhersehbar. Wenn Sie jedoch genauer hinsehen, werden Sie feststellen, dass sie sich entlang unsichtbarer Luftströme bewegen und bestimmten Mustern folgen. Wie diese Schneeflocken tanzen die Preise auf den Finanzmärkten ihren eigenen Tanz, der nur zufällig aussieht.

Die Chaostheorie lehrt uns eine erstaunliche Wahrheit: In Systemen, die völlig unvorhersehbar erscheinen, sind tiefe Muster und Strukturen verborgen. Der Meteorologe Edward Lorenz entdeckte dies, als er mit Wettermodellen arbeitete und versehentlich gerundete Daten in sein Programm eingab. Seine Entdeckung, die später als „Schmetterlingseffekt“ bezeichnet wurde, zeigte, dass selbst kleinste Veränderungen der Ausgangsbedingungen zu radikal anderen Ergebnissen führen können.

„Ein System mit einem seltsamen Attraktor kann völlig zufällig erscheinen, aber es gibt eine versteckte Ordnung darin", sagte Lorenz. Und so wie Wettersysteme ihre eigenen, unsichtbaren Muster haben, folgen auch die Finanzmärkte trotz ihrer scheinbaren Unvorhersehbarkeit bestimmten Gesetzmäßigkeiten.

Attraktoren: Unsichtbare Magneten des Marktes

Stell dir vor, du wirfst einen Ball in einen Raum. Egal, wie hart man ihn wirft oder in welche Richtung, er landet auf dem Boden. In diesem Fall ist der Boden ein Attraktor, ein Anziehungspunkt für den Ball.

Auf den Finanzmärkten funktionieren Attraktoren auf ähnliche Weise. Statt physischer Anziehungskraft sind hier wirtschaftliche Kräfte am Werk, die die Preise wieder auf ein bestimmtes Niveau bringen. Wenn eine Aktie zu teuer wird, setzen sich die Verkäufer durch; wenn sie zu billig wird, setzen sich die Käufer durch. Dadurch entsteht ein „Gummiband“-Effekt, der den Markt ständig in Richtung des Gleichgewichtspunktes zieht.

Aber im Gegensatz zu einem einfachen Ball haben Märkte etwas, das als „seltsame Attraktoren“ bezeichnet wird. Es handelt sich nicht nur um Punkte, sondern um komplexe Strukturen, die das System anstrebt, sich aber nie exakt wiederholt. Wie ein Bach, der in einen See fließt, fließt das Wasser immer in Richtung See, folgt aber nie genau seinem Weg.

Wie man das fraktale Muster des Marktes versteht

Benoît B. Mandelbrot analysierte in den 1960er Jahren, als er für IBM arbeitete, langfristige Schwankungen der Baumwollpreise. Er stellte etwas Überraschendes fest: Die Preisdiagramme sahen gleich aus, egal ob es sich um Tages-, Monats- oder Jahresdaten handelte. Diese Entdeckung führte zur Entwicklung der fraktalen Geometrie – der Untersuchung von Formen, die sich in verschiedenen Maßstäben wiederholen.

Schauen Sie sich ein Farnblatt an: Seine allgemeine Form wiederholt sich in jedem kleinen Fiederblättchen, und dann in noch kleineren Teilen. Märkte funktionieren auf ähnliche Weise. Die Muster, die Sie auf dem Minutenchart sehen, wiederholen sich oft auf den Stunden-, Tages- und sogar Monatscharts.

Diese Selbstähnlichkeit ist nicht zufällig. Sie spiegelt die Tatsache wider, dass Märkte nicht nur zufälliges Rauschen sind, sondern komplexe Systeme mit interner Struktur. Und das Verständnis dieser Struktur liefert uns einen Schlüssel zur Vorhersage künftiger Bewegungen.

Rückkehr zum Mittelwert: Der universelle Rhythmus der Natur

Es gibt ein Sprichwort in der Welt der Finanzen: „Bäume wachsen nicht in den Himmel." Die Geschichte zeigt uns, dass die Märkte nach Phasen extremen Wachstums oder Rückgangs dazu neigen, zu ihrem langfristigen Durchschnitt zurückzukehren.

Dieses Phänomen kann überall in der Natur beobachtet werden. Stellen Sie sich ein Pendel vor: Je weiter Sie es schwingen, desto mehr versucht es, in die Mitte zurückzukehren. Oder denken Sie an Ihre Körpertemperatur: Wenn Sie Fieber haben, arbeitet Ihr Körper daran, Ihre Temperatur wieder auf die normalen 36,6 °C zu senken.

Dieser Effekt ist auf den Märkten ständig zu beobachten. Aktien, die in einer Periode außergewöhnliche Renditen aufweisen, zeigen in der nächsten Periode oft nur mittelmäßige Ergebnisse. Unternehmen, die über einen langen Zeitraum hinweg schneller wachsen als der Markt, werden fast zwangsläufig langsamer. Wie der legendäre Investor Peter Lynch feststellte: „Die Rückkehr zum Mittelwert ist eine Schwerkraft, der sich auch große Unternehmen nicht entziehen können.“

Was den Sensory Neural Attractor jedoch revolutionär macht, ist seine Fähigkeit, nicht nur einen statischen Durchschnittswert zu ermitteln, sondern das dynamische Niveau, auf das sich der Markt gerade zubewegt. Das ist so, als könnte man genau vorhersagen, wo ein Pendel zum Stillstand kommt, wenn sich die Schwerkraft plötzlich ändert.

Empfindlichkeit gegenüber Anfangsbedingungen: Der Schmetterlingseffekt an der Wall Street

„Kann der Flügelschlag eines Schmetterlings in Brasilien einen Tornado in Texas verursachen?" Die berühmte Frage von Lorenz veranschaulicht ein Schlüsselprinzip der Chaostheorie: die Empfindlichkeit gegenüber Anfangsbedingungen.

Diese „Schmetterlingseffekte“ sind auf den Finanzmärkten immer wieder zu beobachten. Der Tweet eines CEO könnte die Aktien des Unternehmens zum Absturz bringen. Eine unerwartete Entscheidung der Federal Reserve könnte eine weltweite Korrektur auslösen. Selbst Gerüchte über Probleme bei einer kleinen Bank können zu einer Panik im gesamten Bankensektor führen, wie wir während der Krise 2008 gesehen haben.

Diese Empfindlichkeit macht eine genaue Langzeitprognose unmöglich. Wie Niels Bohr scherzte: „Vorhersagen sind sehr schwierig, vor allem die Zukunft betreffend." Wenn wir jedoch die Struktur des Systems verstehen und Attraktoren identifizieren, können wir probabilistische Vorhersagen machen, die uns einen Vorteil verschaffen.


Neuronaler Attraktor-Oszillator: Bändigung des Marktchaos

Von der Theorie zur Praxis: Erstellen eines Indikators

Ist Ihnen schon einmal aufgefallen, dass der Preis eines Vermögenswerts wie von einer unsichtbaren Kraft getrieben auf ein bestimmtes Niveau zurückkehrt? Wie kommt es zu einer scharfen Korrektur nach einer wilden Rallye oder zu einer plötzlichen Erholung nach einem lang anhaltenden Rückgang? Es ist, als ob etwas Unsichtbares den Preis zurückzieht und verhindert, dass er sich für immer in eine Richtung bewegt. Es ist diese unsichtbare Kraft, die wir mit unserem digitalen Netz einfangen wollen.

Während andere Händler weiterhin Indikatoren aus dem letzten Jahrhundert verwenden, werden wir uns auf eine tiefere Reise begeben – um einen Indikator zu entwickeln, der buchstäblich lernt, den verborgenen Rhythmus des Marktes zu erkennen. Unser Kompass auf dieser Reise wird ein neuronales Netz sein, und unsere Karte wird die Attraktorentheorie sein.

Architektur des neuronalen Netzes: Das Gehirn unseres Indikators

Erinnern Sie sich noch daran, wie in Filmen über Hacker die Hauptfigur in ein paar Minuten Filmzeit eine Superintelligenz erschafft? In der Praxis ist alles ein bisschen komplizierter, aber nicht so sehr, dass ein gewöhnlicher Händler-Programmierer es nicht tun könnte.

Unser neuronales Netz kann man sich wie einen erfahrenen Fährtenleser vorstellen, der die Spuren im Schnee – die historischen Kurse – analysiert und versucht vorherzusagen, wohin sich das Tier (der Markt) bewegt. Die Struktur dieses Trackers ist recht einfach: Eine Eingabeschicht, die Daten sammelt, eine versteckte Schicht, in der die „Magie“ der Mustererkennung stattfindet, und eine Ausgabeschicht, die die Vorhersage trifft.

So sieht die Initialisierung unseres Gehirnzentrums aus:

void InitializeNetwork() {
   // Initializing hidden layer
   ArrayResize(Network.hidden, HiddenNeurons);
   for(int i = 0; i < HiddenNeurons; i++) {
      ArrayResize(Network.hidden[i].weights, InputNeurons);
      // Initializing weights with random values in the range [-0.5, 0.5]
      for(int j = 0; j < InputNeurons; j++) {
         Network.hidden[i].weights[j] = (MathRand() / 32767.0) - 0.5;
      }
      Network.hidden[i].bias = (MathRand() / 32767.0) - 0.5;
   }
   
   // Initializing output neuron
   ArrayResize(Network.output.weights, HiddenNeurons);
   for(int i = 0; i < HiddenNeurons; i++) {
      Network.output.weights[i] = (MathRand() / 32767.0) - 0.5;
   }
   Network.output.bias = (MathRand() / 32767.0) - 0.5;
}

Achten Sie auf die Zeilen, in denen die Gewichte initialisiert werden. Das ist so, als würde man die Empfindlichkeit des Mikroskops vor einer Untersuchung einstellen. Wir beginnen mit zufälligen Werten, und der Lernprozess passt diese „Einstellknöpfe“ nach und nach an, um ein genaueres Bild zu erzeugen.

Ausbildung im Netz: Vom Neuling zum Meister

Stellen Sie sich vor, ein Kind lernt laufen. Erst stürzt er, dann macht er ein paar Schritte, stürzt wieder, verbessert aber nach und nach seine Fähigkeiten. Auf die gleiche Weise lernt unser Netz anhand historischer Daten zu „laufen“ und passt seine Schritte ständig an.

Der wichtigste Teil dieses Prozesses sind die Vorwärts- und Rückwärtsfahrten. Im Vorwärtsdurchlauf macht das Netz eine Vorhersage, während es im Rückwärtsdurchlauf seine Gewichte in Abhängigkeit vom Fehler anpasst.

double ForwardPass(double &inputs[]) {
   // Calculating outputs of the hidden layer
   for(int i = 0; i < HiddenNeurons; i++) {
      double sum = Network.hidden[i].bias;
      for(int j = 0; j < InputNeurons; j++) {
         sum += inputs[j] * Network.hidden[i].weights[j];
      }
      Network.hidden[i].output = Sigmoid(sum);
   }
   
   // Calculating neural network output
   double sum = Network.output.bias;
   for(int i = 0; i < HiddenNeurons; i++) {
      sum += Network.hidden[i].output * Network.output.weights[i];
   }
   Network.output.output = Sigmoid(sum);
   
   return Network.output.output;
}

Wenn wir in diese Funktion hineinschauen könnten, während sie läuft, würden wir etwas sehen, das den elektrischen Impulsen ähnelt, die durch die Neuronen des Gehirns fließen – Informationen, die durch ein Netzwerk von Verbindungen fließen, umgewandelt und verstärkt werden.

Aktivierungsfunktion: feuernde Neuronen

In der aktualisierten Version des Indikators haben wir das klassische Sigmoid durch den hyperbolischen Tangens (tanh) ersetzt. Diese Funktion hat den Bereich [-1, 1], was sie besonders geeignet macht für die Modellierung chaotischer Systeme, in denen sowohl positive als auch negative Wertesind wichtig.

double Tanh(double x) {
   return (MathExp(x) - MathExp(-x)) / (MathExp(x) + MathExp(-x));
}

Der hyperbolische Tangens hat eine steilere Neigung in der Mitte, wodurch das Netz schneller lernt und plötzliche Änderungen in den Daten genauer erfassen kann. Dies ist von entscheidender Bedeutung für chaotische Märkte, auf denen Übergänge zwischen verschiedenen Zuständen schnell auftreten können.

Normalisierung der Daten: Dieselbe Sprache sprechen

Bevor die Daten in ein neuronales Netz eingespeist werden, müssen sie normalisiert, d. h. auf einen gemeinsamen Maßstab gebracht werden. Es ist, als würde man einen Text in eine Sprache übersetzen, die für den Gesprächspartner verständlich ist. Wenn Sie Russisch sprechen und Ihr Gesprächspartner nur Englisch versteht, wird die Kommunikation scheitern.

double NormalizePrice(double price) {
   double min = ArrayMin(PriceHistory);
   double max = ArrayMax(PriceHistory);
   return (price - min) / (max - min);
}

Diese Funktion skaliert alle Preise auf den Bereich zwischen 0 und 1, was sich perfekt für die Eingabe unserer sigmoiden Aktivierungsfunktion eignet.

Berechnung des Oszillators: Der Moment der Wahrheit

Schließlich sind wir beim interessantesten Teil angelangt – der Berechnung des Oszillatorwertes. Wie berechnen wir sie? Im Wesentlichen vergleichen wir den aktuellen Kurs mit dem vorhergesagten Attraktor und geben die Abweichung in Prozent an.

// Calculate oscillator value as ratio of current price to attractor
if(AttractorBuffer[i] > 0) {
   OscillatorBuffer[i] = (CurrentPriceBuffer[i] / AttractorBuffer[i] - 1.0) * 100.0;
} else {
   OscillatorBuffer[i] = 0; // Division-by-zero protection
}

Diese einfache Formel gibt an, wie weit der aktuelle Preis von seinem „natürlichen“ Niveau abgewichen ist. Wenn der Oszillator +30% anzeigt, ist der Kurs „überhitzt“ und könnte bald zum Attraktor zurückkehren. Bei -30 % ist der Preis „unterkühlt“ und kann wieder ansteigen.


Anpassen des Indikators an die eigenen Bedürfnisse

Erinnern Sie sich an das alte Sprichwort: „Eine Größe passt allen“? Im Handel funktioniert das selten. Jeder Markt, jeder Zeitrahmen hat seinen eigenen Charakter, seine eigene „Stimmung“. Und unser Indikator muss sich an diese Merkmale anpassen.

input int    InputNeurons = 10;     // Number of input neurons (historical periods)
input int    HiddenNeurons = 20;    // Number of neurons in the hidden layer
input double LearningRate = 0.01;   // Learning rate
input int    TrainBars = 1000;      // Number of bars for training
input int    PredictionPeriod = 5;  // Prediction period (in bars)
input bool   Smoothing = false;     // Apply smoothing to the oscillator
input int    SmoothingPeriod = 3;   // Smoothing period

Diese Parameter sind wie Regler an einem teuren Audioverstärker. Möchten Sie einen empfindlicheren Indikator? Erhöhen Sie die Anzahl der Neuronen oder verringern Sie den Vorhersagezeitraum. Zu viel Rauschen? Schalten Sie die Glättung ein.

Vorhersagezeitraum: Ein Blick in die Zukunft

Der Parameter PredictionPeriod ist besonders interessant. Sie bestimmt, wie weit wir in die Zukunft blicken wollen. Wenn Sie als Scalper mit Minutencharts arbeiten, bedeutet ein Wert von 5 eine Prognose für die nächsten 5 Minuten. Wenn Sie ein positioneller Händler auf Tages-Charts sind, dann sind es 5 Tage.

Ich empfehle, mit dieser Einstellung zu experimentieren. Beginnen Sie mit kleinen Werten und erhöhen Sie diese schrittweise, indem Sie beobachten, wie sich das Verhalten des Indikators verändert. Wie in der echten Wissenschaft gibt es auch hier keine vorgefertigten Formeln, sondern nur Erfahrung und Experimente.

Lyapunov-Exponent: Messung der Zufälligkeit des Marktes

Die Schlüsselkomponente unseres aktualisierten Indikators ist der Lyapunov-Exponent, ein Maß für die Empfindlichkeit des Systems gegenüber Anfangsbedingungen. Dieser Indikator beschreibt mathematisch den berühmten „Schmetterlingseffekt“ – ein Phänomen, bei dem kleine Änderungen der Ausgangsbedingungen langfristig zu erheblichen Abweichungen führen.

double CalculateLyapunovExponent(const double &close[], int bars) {
   double epsilon = 0.0001; // Small perturbation
   double lyapunov = 0.0;
   int samples = MathMin(LyapunovPeriod, TrainBars/2);
   
   for(int i = 0; i < samples; i++) {
      int startIdx = MathRand() % (TrainBars - InputNeurons - PredictionPeriod);
      
      // Initial input data
      double inputs1[];
      ArrayResize(inputs1, InputNeurons);
      for(int j = 0; j < InputNeurons; j++) {
         inputs1[j] = NormalizePrice(close[bars - TrainBars + startIdx + j]);
      }
      
      // Slightly perturbed input data
      double inputs2[];
      ArrayResize(inputs2, InputNeurons);
      ArrayCopy(inputs2, inputs1);
      inputs2[MathRand() % InputNeurons] += epsilon;
      
      // Predictions for both data sets
      double pred1 = ForwardPass(inputs1);
      double pred2 = ForwardPass(inputs2);
      
      // Distance between predictions
      double distance = MathAbs(pred2 - pred1);
      
      // Lyapunov exponent
      if(distance > 0) {
         lyapunov += MathLog(distance / epsilon);
      }
   }
   
   // Average and normalize
   lyapunov = lyapunov / samples;
   
   // Limit the value for stability
   lyapunov = MathMax(-1.0, MathMin(1.0, lyapunov));
   
   return lyapunov;
}

Fraktales Rauschen: Hinzufügen einer natürlichen Struktur

Eines der innovativsten Elemente unseres Indikators ist die Einbeziehung von fraktalem Rauschen, das durch einen Midpoint Displacement-Algorithmus erzeugt wird. Die fraktale Geometrie, die erstmals von Benoit Mandelbrot auf die Finanzmärkte angewandt wurde, ermöglicht es uns, deren natürliche selbstähnliche Struktur zu modellieren.

void GenerateFractalNoise(int size) {
   ArrayResize(FractalNoiseBuffer, size);
   
   // Starting points
   FractalNoiseBuffer[0] = 0;
   FractalNoiseBuffer[size-1] = 0;
   
   // Recursive calculation of midpoints
   MidpointDisplacement(FractalNoiseBuffer, 0, size-1, 1.0, FractalDimension);
   
   // Normalization
   double min = ArrayMin(FractalNoiseBuffer, 0, size);
   double max = ArrayMax(FractalNoiseBuffer, 0, size);
   
   for(int i = 0; i < size; i++) {
      FractalNoiseBuffer[i] = 2.0 * (FractalNoiseBuffer[i] - min) / (max - min) - 1.0;
   }
}

Je höher der Parameter Fractal Dimension (FractalDimension) ist, desto zerklüfteter und chaotischer wird das Rauschen, was eine genauere Modellierung hochvolatiler Märkte ermöglicht.


Praktische Anwendung des Indikators

Da wir nun wissen, wie unser Indikator funktioniert, wollen wir seine praktische Anwendung besprechen. Wie jeder Oszillator kann auch der Neural Attractor Oscillator verwendet werden, um festzustellen, ob der Markt überkauft oder überverkauft ist.

Stellen Sie sich vor, Sie würden ein Pendel beobachten. Wenn es zu weit nach rechts schwenkt, wissen Sie, dass es sich bald nach links bewegen wird. Wenn es zu weit links ist, wird es sich bald nach rechts bewegen. Unser Indikator funktioniert auf die gleiche Weise, aber anstelle von mechanischen Kräften, die das Pendel in die Mitte zurückbringen, gibt es gleichgewichtige Marktkräfte.

Einfahrsignale unterliegen dem Chaos
  1. Kaufsignal: Wenn der Oszillator unter die untere Grenze des Attraktors fällt (die in Abhängigkeit vom Ljapunov-Exponenten dynamisch angepasst wird) und zu steigen beginnt, kann dies ein guter Zeitpunkt sein, um eine Kaufposition einzugehen. Es ist jedoch wichtig, den aktuellen Wert des Lyapunov-Exponenten zu berücksichtigen: je niedriger er ist, desto zuverlässiger ist das Signal.
  2. Verkaufssignal: Wenn der Oszillator über die obere Grenze des Attraktors ansteigt und zu fallen beginnt, kann dies ein guter Zeitpunkt sein, um eine Verkaufsposition einzugehen. Auch hier gilt, dass ein niedriger Lyapunov-Exponent die Zuverlässigkeit des Signals erhöht.
  3. Notfälle: Ein besonders wertvolles und sehr genaues Signal für die Divergenz zwischen den Spitzenwerten des Indikators und dem Kurs.

Denken Sie daran, dass in Zeiten großen Chaos (hoher Ljapunov-Exponent) selbst starke Signale weniger zuverlässig sind, und Sie sollten Ihre Positionsgröße reduzieren oder von einem Einstieg in den Markt ganz absehen.

Abweichungen im Rahmen der Chaostheorie

Der Chaos-Attraktor-Oszillator bietet eine neue Perspektive auf klassische Divergenzen. Wenn der Kurs ein neues Extrem bildet, der Oszillator aber nicht, kann dies nicht nur auf eine Abschwächung des Trends hinweisen, sondern auch auf eine Veränderung der Struktur des Attraktors – des Gleichgewichtspunkts, auf den der Markt zustrebt.

Besonders starke Signale entstehen, wenn die Divergenz mit einer Änderung des Lyapunov-Exponenten zusammenfällt. So kann beispielsweise ein Übergang von einem positiven zu einem negativen Wert auf die Bildung eines neuen stabilen Trends nach einer chaotischen Periode hinweisen.

Momentum-Optimierung des Netzes

In unserem aktualisierten Indikator haben wir eine Momentum-Optimierungsmethode angewandt, die den Lernprozess erheblich verbessert und die Wahrscheinlichkeit verringert, in lokalen Minima stecken zu bleiben:

// Updating the output layer weights with momentum
for(int j = 0; j < HiddenNeurons; j++) {
    double delta = LearningRate * Network.output.error * Network.hidden[j].output;
    Network.output.momentum[j] = momentum * Network.output.momentum[j] + (1.0 - momentum) * delta;
    Network.output.weights[j] += Network.output.momentum[j];
}

Die Momentum-Methode funktioniert wie die „Trägheit“ in der physikalischen Welt – wenn sich das Netz während der Optimierung lange Zeit in eine bestimmte Richtung bewegt hat, wird es sich auch dann weiter in diese Richtung bewegen, wenn es auf kleine Hindernisse (lokale Minima) stößt. Dies ist besonders nützlich für chaotische Systeme, bei denen die Landschaft der Fehlerfunktionen sehr komplex sein kann.


Künftige Verbesserungen

Obwohl unser Indikator bereits ein leistungsfähiges Instrument ist, gibt es mehrere Möglichkeiten, das Konzept des Chaos-Attraktors weiterzuentwickeln:

  1. Rekurrente neuronale Netze: Wenn wir unser neuronales Feedforward-Netz durch ein rekurrentes Netz (LSTM oder GRU) ersetzen, kann die Fähigkeit des Modells, langfristige Abhängigkeiten in chaotischen Systemen zu erfassen, verbessert werden.
  2. Multifraktale Analyse: Anwendung multifraktaler Analysemethoden zur Bestimmung der Struktur der Volatilität auf verschiedenen Zeitskalen.
  3. Analyse der Attraktortopologie: Anwendung von Methoden der dynamischen Topologie zur Identifizierung und Klassifizierung von seltsamen Attraktoren in der Preisdynamik.
  4. Quantenalgorithmen: In Zukunft könnte das Quantencomputing zur Modellierung komplexer chaotischer Systeme eingesetzt werden, was zu revolutionären Durchbrüchen bei der Vorhersage von Marktbewegungen führen könnte.

Und natürlich werden wir uns später mit der Erstellung eines Expertenberaters für dieses System befassen. So sieht ein Rohentwurf – die EA-Skizze – aus:

Im Allgemeinen funktioniert das System recht gut, nicht besonders gut, aber auch nicht schlecht.

Flexible Glättungsmethoden

In der aktualisierten Version des Indikators haben wir eine Auswahl verschiedener Glättungsmethoden hinzugefügt, die es den Händlern ermöglichen, die Reaktion des Indikators an die Marktbedingungen anzupassen:

void ApplySmoothing(int rates_total, int prev_calculated, int period, ENUM_MA_METHOD method) {
   int start = prev_calculated == 0 ? InputNeurons + period : prev_calculated - 1;
   
   double temp[];
   ArrayResize(temp, rates_total);
   ArrayCopy(temp, OscillatorBuffer);
   
   for(int i = start; i < rates_total; i++) {
      switch(method) {
         case MODE_SMA: // Simple moving average
            {
               double sum = 0;
               for(int j = 0; j < period; j++) {
                  sum += temp[i - j];
               }
               OscillatorBuffer[i] = sum / period;
            }
            break;
            
         case MODE_EMA: // Exponential moving average
            {
               double alpha = 2.0 / (period + 1.0);
               OscillatorBuffer[i] = temp[i] * alpha + OscillatorBuffer[i-1] * (1.0 - alpha);
            }
            break;
            
         // ... other methods ...
      }
   }
}

Für chaotische Märkte mit einem hohen Lyapunov-Exponenten ist es besser, den EMA zu verwenden, der schneller auf Veränderungen reagiert. Für besser vorhersehbare Märkte mit einem niedrigen Lyapunov-Exponenten kann der SMA zuverlässigere Signale mit weniger Fehlauslösungen liefern.


Schlussfolgerung

Wir haben nicht nur einen weiteren technischen Indikator geschaffen, sondern ein komplettes System zur Analyse des Marktchaos. Der Chaos-Attraktor-Oszillator kombiniert die neuesten Erkenntnisse der Chaostheorie, der fraktalen Geometrie und der neuronalen Netze und gibt Händlern ein Instrument an die Hand, mit dem sie durch komplexe und unvorhersehbare Marktbedingungen navigieren können.

Ein besonderer Wert dieses Indikators liegt in seiner Fähigkeit, nicht nur Handelssignale zu generieren, sondern auch die Zuverlässigkeit dieser Signale anhand des Lyapunov-Exponenten zu bewerten. Dies ermöglicht es dem Händler, seine Strategie an die aktuellen Marktbedingungen anzupassen – aggressiv zu sein, wenn das System vorhersehbar ist, und vorsichtig, wenn es chaotisch ist.

Im Zeitalter des algorithmischen Handels und der künstlichen Intelligenz ist derjenige im Vorteil, der die komplexe Natur des Marktes am besten modellieren kann. Der Chaos-Attraktor-Oszillator ist ein Schritt in diese Richtung, der es uns ermöglicht, Ordnung zu sehen, wo andere nur Zufälligkeit sehen.

Denken Sie daran, dass auch der fortschrittlichste Indikator keine Zauberformel für den Erfolg ist. Der Handel erfordert immer Disziplin, Risikomanagement und ein Verständnis des Marktumfelds. Wenn Sie sich jedoch mit einem Instrument ausstatten, das es Ihnen ermöglicht, die Natur des Marktchaos zu durchschauen, gewinnen Sie einen bedeutenden Vorteil auf dem Weg zu beständigen Gewinnen.

Viel Glück beim Handel und mögen die Chaos-Attraktoren mit Ihnen sein!

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

Beigefügte Dateien |
Letzte Kommentare | Zur Diskussion im Händlerforum (3)
stawros25
stawros25 | 20 Apr. 2025 in 16:07
Sehr interessanter Artikel und interessanter Indikator. Ich würde ihn gerne auf den Charts des realen Kontos parallel mit dem traditionellen Indikator des überkauften, überverkauften und divergenz RSI einsetzen und die Genauigkeit der angezeigten Signale dieser beiden Indikatoren vergleichen. Aber wie man so schön sagt: ach und weh! Wir alten Hasen auf dem Forex arbeiten in der Sprache MQL4, die seit langem beherrscht wird, zuverlässig und für einen einfachen durchschnittlichen statistischen Händler ohne höhere IT-Ausbildung verständlich ist. Und wir können es uns nicht leisten, sie durch etwas Neues wie MQL5 zu ersetzen. Bitte bitten Sie den Autor, diesen Indikator in MQL4 zu übersetzen. Tausende von praktizierenden Händlern werden dankbar sein, besonders wenn dieser Indikator unseren guten alten RSI in der Genauigkeit der Trendwechselvorhersagen übertreffen wird. Ich danke Ihnen im Voraus.
Yevgeniy Koshtenko
Yevgeniy Koshtenko | 22 Apr. 2025 in 02:55
stawros25 Indikator des überkauften, überverkauften und abweichenden RSI einsetzen und die Genauigkeit der Signale dieser beiden Indikatoren vergleichen. Aber wie man so schön sagt: ach und weh! Wir alten Forex-Hasen arbeiten in der MQL4-Sprache, die seit langem beherrscht wird, zuverlässig und für einen einfachen durchschnittlichen statistischen Händler ohne höhere IT-Ausbildung verständlich ist. Und wir können es uns nicht leisten, sie durch etwas Neues wie MQL5 zu ersetzen. Bitte bitten Sie den Autor, diesen Indikator in MQL4 zu übersetzen. Tausende von praktizierenden Händlern werden dankbar sein, besonders wenn dieser Indikator unseren guten alten RSI in der Genauigkeit der Trendwechselvorhersagen übertreffen wird. Ich danke Ihnen im Voraus.

Ich danke Ihnen vielmals. Ok, ich werde versuchen, ihn in 4 zu übersetzen)

Miguel Angel Vico Alba
Miguel Angel Vico Alba | 28 Jan. 2026 in 01:55
Hallo,

ich habe Ihren Artikel gelesen - die Idee und die Präsentation gefallen mir sehr. Ich wollte eine kleine technische Bemerkung machen, vielleicht ist sie im Zusammenhang mit dem Thema interessant.

Im Text wird der Lyapunov-Exponent im Zusammenhang mit dem Marktchaos erwähnt, aber im Code (CalculateLyapunovExponent()) wird eigentlich die Sensitivität des Modells berechnet: zwei fast identische Eingangssamples werden genommen, durch ForwardPass() geleitet, und dann wird MathLog(distance / epsilon) berechnet. Dies ergibt eine Metrik des Modells, nicht der Marktdynamik, was durchaus logisch ist, da der "Markt"-Lyapunov fast unmöglich direkt zu schätzen ist.

Wenn Sie sich eingehender mit der "Markt"-Seite der Frage befassen wollen, gibt es einen Ansatz über die Takens-Einbettung: Im Wesentlichen wird der Phasenraum aus dem Preis rekonstruiert, und dort kann man die Divergenz der Trajektorien approximieren. Dies ist lediglich eine interessante Alternative und kein Vorschlag, etwas zu ändern - der Artikel ist bereits erschienen und war gut.

Nochmals, ich fand ihn interessant zu lesen und danke für die Idee.

P.S.: Ich entschuldige mich, wenn die Übersetzung vom Spanischen ins Russische unklar war.
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.
Dreieckige und Sägezahnwellen: Analysetools für Händler Dreieckige und Sägezahnwellen: Analysetools für Händler
Die Wellenanalyse ist eine der Methoden der technischen Analyse. In diesem Artikel geht es um zwei weniger konventionelle Wellenmuster: Dreiecks- und Sägezahnwellen. Diese Formationen untermauern eine Reihe von technischen Indikatoren, die für die Analyse der Marktpreise entwickelt wurden.
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.
Von der Grundstufe bis zur Mittelstufe: Indikator (I) Von der Grundstufe bis zur Mittelstufe: Indikator (I)
In diesem Artikel werden wir unseren ersten voll funktionsfähigen Indikator erstellen. Das Ziel ist nicht, zu zeigen, wie man eine Anwendung erstellt, sondern Ihnen zu helfen, zu verstehen, wie Sie Ihre eigenen Ideen entwickeln können, und Ihnen die Möglichkeit zu geben, sie auf sichere, einfache und praktische Weise anzuwenden.