Quantitative Analyse von Trends: Sammeln von Statistiken in Python
Was ist die quantitative Trendanalyse auf dem Devisenmarkt?
Die quantitative Trendanalyse ist ein Ansatz, der chaotische Marktbewegungen in ein geordnetes System von Zahlen und Mustern umwandelt. In einer Welt, in der sich die meisten Händler auf ihre Intuition und die visuelle Beurteilung von Charts verlassen, bietet die mathematische Analyse von Trendbewegungen einen unbestreitbaren Vorteil. Anstelle von subjektiven Empfindungen erhalten Sie präzise Daten: die durchschnittliche Trenddauer in Tagen, ihren typischen Wert in Punkten und charakteristische Muster der Entwicklung und Beendigung.
Es ist diese Objektivität, die die quantitative Analyse zum Eckpfeiler des professionellen Handels macht. William Eckhardt, ein berühmter Händler, stellte zu Recht fest, dass der Handel kein Gebiet der Psychologie, sondern ein Gebiet der Statistik ist. Wenn Sie wissen, dass Aufwärtstrends beim EURUSD-Paar statistisch gesehen länger dauern als Abwärtstrends, oder dass 70 % der Trends beim GBPUSD enden, bevor 200 Punkte erreicht sind, ist dies nicht nur eine Information, sondern eine konkrete Handlungsanleitung.
Warum Trendstatistiken wichtig sind
Stellen Sie sich vor, Sie fahren ein Auto im Nebel. Ohne Präzisionswerkzeuge kann man sich nur auf das verlassen, was man vor sich sieht. Bei der quantitativen Analyse im Handel handelt es sich um ein Instrumentarium, das die Dinge sichtbar macht, die normalerweise verborgen bleiben. Wenn ein Händler die durchschnittlichen Eigenschaften der Bewegungen kennt, kann er seine Gewinnziele genauer festlegen, das Risiko effizienter verwalten und den optimalen Zeitpunkt für das Halten von Positionen bestimmen.
Der größte Vorteil des quantitativen Ansatzes ist jedoch die Möglichkeit, Hypothesen zu testen. Anstatt unbegründete Behauptungen aufzustellen wie „der Trend ist dein Freund“ oder „der Markt kehrt immer zum Durchschnitt zurück“, können Sie diese Postulate für ein bestimmtes Währungspaar über einen bestimmten Zeitraum mathematisch beweisen oder widerlegen.
Architektur des Analysetools
Unser Tool zur quantitativen Trendanalyse ist in Python implementiert und nutzt die MetaTrader 5-Bibliothek, um Daten direkt vom Markt zu erhalten. So können Sie mit aktuellen Informationen arbeiten und Recherchen zu verschiedenen Zeitrahmen und Währungspaaren durchführen. Betrachten wir nun die wichtigsten Bestandteile des Programms:
Initialisierung und Datenabruf.
import MetaTrader5 as mt5 import pandas as pd import numpy as np import matplotlib matplotlib.use('Agg') # Non-interactive mode for saving charts import matplotlib.pyplot as plt from datetime import datetime, timedelta import pytz import os def initialize_mt5(): """Initializing connection to MetaTrader5""" if not mt5.initialize(): print("Initialization error MT5") mt5.shutdown() return False return True def get_eurusd_data(timeframe=mt5.TIMEFRAME_D1, bars_count=1000): """Downloading EURUSD historical data""" # Set time zone to UTC timezone = pytz.timezone("UTC") utc_now = datetime.now(timezone) # Get data eurusd_data = mt5.copy_rates_from_pos("EURUSD", timeframe, 0, bars_count) if eurusd_data is None or len(eurusd_data) == 0: print("Error retrieving EURUSD data") return None # Convert into pandas DataFrame df = pd.DataFrame(eurusd_data) # Convert time from timestamp to datetime df['time'] = pd.to_datetime(df['time'], unit='s') # Set time as index df.set_index('time', inplace=True) return df
Dieser Codeblock initialisiert die Verbindung mit dem MetaTrader 5-Terminal und lädt historische Daten herunter. Wir verwenden die Pandas-Bibliothek, um bequem mit Zeitreihen zu arbeiten, die es uns ermöglichen, Daten leicht zu manipulieren und verschiedene Berechnungen durchzuführen.
Ein wichtiger Aspekt ist die Wahl des richtigen Zeitrahmens. Tages-Charts (TIMEFRAME_D1) eignen sich für langfristige Strategien, Stunden-Charts (TIMEFRAME_H4 oder TIMEFRAME_H1) für mittelfristige Strategien und Minuten-Charts (TIMEFRAME_M30 oder TIMEFRAME_M15) für kurzfristige Strategien. Jeder Zeitrahmen ergibt ein anderes Bild der Trends, und diese Vielfalt an Daten kann für die Entwicklung mehrstufiger Strategien genutzt werden.
Erkennen von Trends
Das Herzstück unseres Analyseinstruments ist der Algorithmus zur Trenderkennung. Es erfüllt mehrere wichtige Aufgaben: Es findet lokale Höchst- und Tiefstwerte, bestimmt die Abfolge dieser Extreme und erzeugt daraus Trends. Jeder Trend wird durch seine Art (Aufwärtstrend oder Abwärtstrend), das Anfangs- und Enddatum, die Preise zu diesen Zeitpunkten, die Dauer und das Ausmaß charakterisiert.
def identify_trends(df, window_size=5): """ Identification of local highs and lows to identify trends window_size: the size of a window for searching for local extremes """ # Copy DataFrame so as not to change the original df_trends = df.copy() # Search for local highs and lows df_trends['local_max'] = df_trends['high'].rolling(window=window_size, center=True).apply( lambda x: x[window_size//2] == max(x), raw=True ).fillna(0).astype(bool) df_trends['local_min'] = df_trends['low'].rolling(window=window_size, center=True).apply( lambda x: x[window_size//2] == min(x), raw=True ).fillna(0).astype(bool) # Make structures for storing information about trends trends = [] current_trend = {'start_idx': 0, 'start_price': 0, 'end_idx': 0, 'end_price': 0, 'type': None} local_max_idx = df_trends[df_trends['local_max']].index.tolist() local_min_idx = df_trends[df_trends['local_min']].index.tolist() # Combine and sort highs and lows by index all_extremes = [(idx, 'max', df_trends.loc[idx, 'high']) for idx in local_max_idx] + \ [(idx, 'min', df_trends.loc[idx, 'low']) for idx in local_min_idx] all_extremes.sort(key=lambda x: x[0]) # Filter recurring local extremes filtered_extremes = [] for i, extreme in enumerate(all_extremes): if i == 0: filtered_extremes.append(extreme) continue last_extreme = filtered_extremes[-1] if last_extreme[1] != extreme[1]: # Different types (highs and lows) filtered_extremes.append(extreme) # Create trends based on sequence of extremes for i in range(1, len(filtered_extremes)): prev_extreme = filtered_extremes[i-1] curr_extreme = filtered_extremes[i] trend = { 'start_date': prev_extreme[0], 'start_price': prev_extreme[2], 'end_date': curr_extreme[0], 'end_price': curr_extreme[2], 'duration': (curr_extreme[0] - prev_extreme[0]).days, 'points': abs(curr_extreme[2] - prev_extreme[2]) * 10000, # Convert to points 'type': 'Uptrend' if curr_extreme[1] == 'max' else 'Downtrend' } # Add percentage change trend['percentage'] = (abs(trend['end_price'] - trend['start_price']) / trend['start_price']) * 100 trends.append(trend) return pd.DataFrame(trends)
Besondere Aufmerksamkeit sollte dem Parameter window_size gewidmet werden. Er bestimmt die Größe des Fensters für die Suche nach lokalen Extremen und wirkt sich direkt auf die Menge und die Merkmale der ermittelten Trends aus. Bei einem kleinen Wert findet das Programm viele kurzfristige Trends, bei einem hohem Wert – weniger, langfristige Bewegungen. So können Sie die Analyse an bestimmte Handelsstrategien und Zeithorizonte anpassen.
Effizienz der Methode der beweglichen Fenster
Die in unserem Algorithmus verwendete Schiebefenster-Methode hat mehrere Vorteile gegenüber anderen Ansätzen zur Trenderkennung. Erstens ist es intuitiv: Ein lokales Hoch ist ein Punkt, an dem der Preis höher ist als an benachbarten Punkten innerhalb eines bestimmten Fensters. Zweitens ist es rechnerisch effizient, sodass Sie große Datenmengen schnell verarbeiten können. Drittens können Sie durch Änderung der Fenstergröße die Empfindlichkeit des Algorithmus leicht anpassen.
Diese Methode hat jedoch auch ihre Grenzen. So können beispielsweise einige wichtige Preismuster übersehen werden, die nicht in das Konzept der lokalen Extreme passen. Um diese Einschränkungen zu beseitigen, ist geplant, in zukünftigen Versionen des Programms zusätzliche Methoden zur Trenderkennung zu implementieren, wie z.B. die Wavelet-Analyse oder die Segmentierung von Zeitreihen.
Statistische Analyse und Visualisierung
Sobald die Trends ermittelt sind, beginnt die eigentliche Magie der quantitativen Analyse – die statistische Verarbeitung der abgerufenen Daten. Das Programm berechnet Durchschnittswerte für Dauer und Ausmaß von Trends, analysiert deren Verteilung und visualisiert die Ergebnisse in Form von verschiedenen Charts:
def analyze_trends(trend_df, output_dir): """Trend analysis and statistics printing with saving of results""" if trend_df.empty: print("No data available for trend analysis") return # Create file to save statistics stats_file = os.path.join(output_dir, 'trend_statistics.txt') with open(stats_file, 'w', encoding='utf-8') as f: # Basic statistics on all trends header = "=" * 50 + "\nOverall trend statistics:\n" + "=" * 50 print(header) f.write(header + "\n") stats_text = f”Total number of trends: {len(trend_df)}\n" stats_text += f"Mean trend duration: {trend_df['duration'].mean():.2f} days\n" stats_text += f"Mean trend value: {trend_df['points'].mean():.2f} points\n" stats_text += f"Mean trend value: {trend_df['percentage'].mean():.2f}%\n" print(stats_text) f.write(stats_text) # Statistics on trend types up_trends = trend_df[trend_df['type'] == 'Uptrend'] down_trends = trend_df[trend_df['type'] == 'Downtrend'] up_stats = "Statistics on upward trends:\n" up_stats += f"Quantity: {len(up_trends)}\n" if not up_trends.empty: up_stats += f"Mean duration: {up_trends['duration'].mean():.2f} days\n" up_stats += f"Mean value: {up_trends['points'].mean():.2f} points\n" up_stats += f"Mean value: {up_trends['percentage'].mean():.2f}%\n" up_stats += f"Maximum value: {up_trends['points'].max():.2f} points\n" up_stats += f"Minimum value: {up_trends['points'].min():.2f} points\n" print(up_stats) f.write(up_stats) # Statistics on downtrends and other categories of trends...
Vielfältige Visualisierungen für tiefgehende Analysen
Die Visualisierung der Ergebnisse ist eine Schlüsselphase der Analyse. Charts machen statistische Daten sichtbar und ermöglichen es Ihnen, schnell Muster zu erkennen. Unser Tool implementiert mehrere Arten von Visualisierungen:
def save_distribution_plots(trend_df, output_dir): """Creating and saving additional distribution charts""" # 1. Chart of trend distribution by magnitude plt.figure(figsize=(12, 8)) up_trends = trend_df[trend_df['type'] == 'Uptrend'] down_trends = trend_df[trend_df['type'] == 'Downtrend'] plt.hist([up_trends['points'], down_trends['points']], bins=10, alpha=0.7, color=['green', 'red'], label=['Uptrends', 'Downtrends']) plt.title('Distribution of trend values (in points)') plt.xlabel('Trend value (points)') plt.ylabel('Number of trends') plt.grid(True, alpha=0.3) plt.legend() plt.tight_layout() plt.savefig(os.path.join(output_dir, 'trend_magnitude_distribution.png')) plt.close() # 2. Chart of trend distribution by duration plt.figure(figsize=(12, 8)) plt.hist([up_trends['duration'], down_trends['duration']], bins=10, alpha=0.7, color=['green', 'red'], label=['Uptrends', 'Downtrends']) plt.title('Distribution of trend duration (in days)') plt.xlabel('Trend duration (days)') plt.ylabel('Number of trends') plt.grid(True, alpha=0.3) plt.legend() plt.tight_layout() plt.savefig(os.path.join(output_dir, 'trend_duration_distribution.png')) plt.close() # 3. Chart of the ratio of duration and magnitude of trends plt.figure(figsize=(12, 8)) plt.scatter(up_trends['duration'], up_trends['points'], color='green', alpha=0.7, label='Uptrends') plt.scatter(down_trends['duration'], down_trends['points'], color='red', alpha=0.7, label='Downtrends') plt.title('Ratio of duration and magnitude of trends') plt.xlabel('Trend duration (days)') plt.ylabel('Trend magnitude (points)') plt.grid(True, alpha=0.3) plt.legend() plt.tight_layout() plt.savefig(os.path.join(output_dir, 'trend_correlation.png')) plt.close()
Jedes dieser Charts bietet einen einzigartigen Einblick in die Merkmale von Trends. Das Histogramm der Trendstärke zeigt, wie die Trends nach Größe in Punkten verteilt sind. So können Sie feststellen, welche Gewinnziele für ein bestimmtes Währungspaar realistisch sind.
Das Histogramm der Trenddauer zeigt, wie viele Tage Trends in der Regel andauern. Diese Informationen sind entscheidend für die Bestimmung des optimalen Zeitpunkts zum Halten von Positionen. Anhand des Korrelationsdiagramms von Dauer und Ausmaß können Sie erkennen, ob es einen Zusammenhang zwischen der Dauer eines Trends und seiner Stärke gibt.
Anzeige von Trends in einem Preis-Chart
Zusätzlich zu den statistischen Charts erstellt das Programm auch eine Visualisierung der identifizierten Trends direkt auf dem Kurschart. So können Sie klar erkennen, was genau das Programm als Trend ansieht, und die Qualität des Algorithmus bewerten:
def plot_trends(df, trend_df, output_dir): """Visualization of trends on a chart with saving""" plt.figure(figsize=(15, 10)) # Main price chart plt.subplot(2, 1, 1) plt.plot(df.index, df['close'], label='EURUSD Close', color='blue', alpha=0.7) plt.title('EURUSD Trend Analysis') plt.grid(True, alpha=0.3) plt.legend() # Mark local highs and lows for _, trend in trend_df.iterrows(): start_color = 'green' if trend['type'] == 'Uptrend' else 'red' end_color = 'red' if trend['type'] == 'Downtrend' else 'green' # Starting point of trend plt.scatter(trend['start_date'], trend['start_price'], color=start_color, s=50) # Endpoint of trend plt.scatter(trend['end_date'], trend['end_price'], color=end_color, s=50) # Trend line plt.plot([trend['start_date'], trend['end_date']], [trend['start_price'], trend['end_price']], color='orange', alpha=0.5, linestyle='--') # The second distribution chart # ...
Erweiterte statistische Trendanalyse
Eine einfache Analyse von Durchschnittswerten und Verteilungen ist nur der Anfang. Um ein wirklich tiefes Verständnis der Merkmale von Trends zu erlangen, müssen anspruchsvollere statistische Methoden eingesetzt werden. Für zukünftige Versionen des Programms ist die Implementierung von Trend-Saisonalitäts-Analysen, Markov-Modellen für Trendprognosen und Korrelationsanalysen zwischen Währungspaaren geplant.
Viele Währungspaare weisen saisonale Muster im Trendverhalten auf. So zeigen einige Studien, dass in den Sommermonaten die Volatilität und damit auch das Ausmaß der Trends beim EURUSD abnimmt. Die Analyse der Saisonalität wird es uns ermöglichen, solche Muster zu erkennen und die Handelsstrategien an die jeweilige Saison anzupassen.
Markov-Ketten sind ein mathematisches Werkzeug, das zur Modellierung von Trendfolgen verwendet werden kann. Wenn der derzeitige Trend ein Abwärtstrend ist, wie hoch ist die Wahrscheinlichkeit, dass der nächste Trend ein Aufwärtstrend sein wird? Hängt das Ausmaß des nächsten Trends vom Ausmaß des vorherigen Trends ab? Markov-Modelle helfen bei der Beantwortung dieser Fragen und bei der Erstellung probabilistischer Prognosen der Marktentwicklung.
Unterschiedliche Währungspaare zeigen oft eine Korrelation in den Trendbewegungen. Wenn beispielsweise beim EURUSD ein starker Aufwärtstrend einsetzt, wird häufig eine ähnliche Bewegung beim GBPUSD beobachtet. Die Analyse der Kreuzkorrelation von Trends zwischen Währungspaaren kann wertvolle Informationen für die Entwicklung von Mehrwährungsstrategien liefern.
Anwendung der Analyseergebnisse im Handel
Die gesammelten Statistiken sind nicht nur eine Reihe interessanter Zahlen, sondern eine direkte Handlungsanleitung für einen Händler. Wenn die Analyse beispielsweise zeigt, dass beim EURUSD Aufwärtstrends im Durchschnitt 280 Punkte und Abwärtstrends 220 Punkte betragen, hat dies erhebliche Auswirkungen auf die Festlegung von Gewinnzielen und Stop-Losses.
Optimierung der Indikatorparameter
Viele gängige Indikatoren für die technische Analyse, wie gleitende Durchschnitte oder Oszillatoren, erfordern die Angabe einer Periode zur Berechnung. Diese Zeiträume werden oft willkürlich gewählt (14, 20, 50 usw.), ohne die Besonderheiten eines bestimmten Währungspaares zu berücksichtigen. Mit der quantitativen Trendanalyse können Sie Indikatorperioden auf der Grundlage der tatsächlichen Merkmale des Marktes auswählen.
Wenn die Analyse beispielsweise zeigt, dass die durchschnittliche Dauer des Trends bei EURUSD 15 Tage beträgt, dann wäre die Verwendung eines gleitenden Durchschnitts mit 15 Perioden sinnvoller als die Verwendung des gleitenden Durchschnitts mit 20 Perioden. Bei einem schnell gleitenden Durchschnitt beträgt der optimale Zeitraum 8-10 Tage, bei einem langsam gleitenden Durchschnitt 16-20 Tage. Die 14-tägige ADX-Periode ermöglicht es uns, aktuelle Trends effektiv zu verfolgen, und die Einstellung des Parabolic SAR mit den Parametern step=0,02 und maximum=0,2 entspricht den Eigenschaften der identifizierten Trends. Eine solche Feinabstimmung der Indikatoren auf der Grundlage objektiver Daten erhöht ihre Leistung erheblich.
Entwicklung von Ein- und Ausstiegsstrategien auf der Grundlage von Statistiken
Mit Hilfe der Trendverteilungsstatistik kann ein System für den Ein- und Ausstieg aus einem Markt entwickelt werden. Wenn Sie die typische Dauer von Trends kennen, können Sie eine Strategie entwickeln, die eine Position nach einer bestimmten Anzahl von Tagen automatisch schließt, auch wenn der Zielgewinn nicht erreicht wird. So kann verhindert werden, dass sich ein potenzieller Gewinn aufgrund einer Trendumkehr in einen Verlust verwandelt.
Die effektivste Strategie kann darin bestehen, Positionen auf verschiedenen Gewinnstufen teilweise zu schließen. Der erste Teil der Position wird geschlossen, wenn ein relativ kleiner, aber sehr wahrscheinlicher Gewinn erzielt wird, der zweite Teil, wenn der durchschnittliche Trendwert für ein bestimmtes Währungspaar erreicht wird, und der verbleibende Teil wird mit einem Trailing-Stop für die potenzielle Aufnahme eines großen Trends gehalten.
Adaptive Handelssysteme
Ein besonders wertvolles Ergebnis der quantitativen Analyse ist die Fähigkeit, adaptive Handelssysteme zu schaffen, die ihre Parameter je nach der aktuellen Marktlage anpassen. Wenn die Analyse zum Beispiel zeigt, dass in Zeiten hoher Volatilität der durchschnittliche Trendwert um 40 % steigt, kann das System die Gewinnziele automatisch anpassen, wenn solche Bedingungen erkannt werden.
Ein weiteres Beispiel für eine adaptive Strategie ist die Änderung der Parameter in Abhängigkeit von der Art des Trends. Wenn die Statistiken zeigen, dass Aufwärtstrends im Durchschnitt länger dauern und größer sind als Abwärtstrends, kann das System unterschiedliche Ein- und Ausstiegsregeln für verschiedene Arten von Trends anwenden.
Die Ergebnisse der Trendanalyse für EURUSD
Methodik und Daten
Die vorgestellte quantitative Analyse der Trends des Währungspaares EURUSD wird auf Basis eines stündlichen Zeitrahmens (H1) unter Verwendung historischer Daten für den Zeitraum von Februar 2018 bis Mai 2025 durchgeführt. Für die Studie wurden 45.000 Balken aus Preisen analysiert. Dies entspricht mehr als 7 Jahren Handelsgeschichte. Als Parameter für die Trenderkennung wurde ein Fenster mit 100 Balken verwendet, das es uns ermöglichte, mittel- und langfristige Trendbewegungen zu erkennen und Marktrauschen und kurzfristige Kursschwankungen herauszufiltern.
Allgemeine Trendstatistiken
Während des betrachteten Zeitraums ermittelte der Algorithmus 471 Trendbewegungen, die fast gleichmäßig entlang der Richtung verteilt waren: 236 Aufwärtstrends und 235 Abwärtstrends. Dieses Gleichgewicht deutet darauf hin, dass EURUSD keine langfristige Tendenz aufweist, und bestätigt die strukturelle Neutralität des Paares.

Die durchschnittliche Dauer des Trends betrug 5,11 Tage, was bei einem stündlichen Zeitrahmen einer kontinuierlichen Bewegung von etwa 120 Stunden entspricht. Dies ist eine wichtige Kennzahl für mittelfristige Händler, da sie den optimalen Zeitpunkt zum Halten einer Position bestimmt.
Der Durchschnitt des Trends beträgt 167,37 Punkten (1,51 % des Kurses) stellt eine bedeutende Bewegung dar, die Ihnen bei richtiger Kapitalverwaltung einen erheblichen Gewinn ermöglicht. Bemerkenswert ist, dass die Abwärtstrends im Durchschnitt etwas stärker ausfielen als die Aufwärtstrends (170,09 gegenüber 164,67 Punkten), was auf eine gewisse Asymmetrie in der Marktpsychologie hindeuten könnte, bei der sich Panikverkäufe intensiver entwickeln als Aufwärtsbewegungen.
Trendverteilung nach Größenordnung
Eine Analyse der Trendverteilung nach Größenordnung ergab, dass die meisten Bewegungen (51,59 %) im Bereich von 100-200 Punkten liegen. Dies ist eine entscheidende Information für die Festlegung von Gewinnzielen: In diesem Bereich liegt die „goldene Mitte“ zwischen der Wahrscheinlichkeit, das Ziel zu erreichen, und der Höhe des potenziellen Gewinns.
Trends zwischen 50 und 100 Punkten machen 19,11 % des Gesamtvolumens aus, und Bewegungen über 200 Punkte machen 25,47 % aus. Extrem starke Trends (über 500 Punkte) sind besonders selten und machen nur 1,27 % aller festgestellten Bewegungen aus.

Eine geringe Anzahl von Trends von weniger als 50 Punkten (3,82 %) erklärt sich durch eine signifikante Größe des Identifikationsfensters (100 Balken), das kurzfristige Kursschwankungen herausfiltert.
Trendverteilung nach der Dauer
Mehr als die Hälfte aller festgestellten Trends (56,69 %) haben eine Dauer von bis zu 5 Tagen. Weitere 28,87 % der Trends dauern zwischen 5 und 10 Tagen. Die überwiegende Mehrheit – 85,56 % der Trendbewegungen – wird also innerhalb von 10 Tagen abgeschlossen. Langfristige Trends mit einer Dauer von mehr als 10 Tagen sind sehr viel seltener (8,92 % für den Bereich von 10-20 Tagen und nur 0,64 % für den Bereich von 20-30 Tagen).

Diese Daten haben eine unmittelbare praktische Anwendung: Wenn man eine Position länger als 10 Tage hält, sinkt die Wahrscheinlichkeit, eine vollständige Trendbewegung zu erfassen, erheblich, da die meisten Trends zu diesem Zeitpunkt bereits zu Ende gehen. Der optimale Zeitraum für das Halten einer Position beträgt 3-7 Tage.
Analyse der stärksten Trends
Die 5 stärksten Trends zeigen herausragende Marktbewegungen, die deutlich über die durchschnittlichen Merkmale hinausgehen:
- Ein Aufwärtstrend im November 2022, der 12 Tage andauert und 751,20 Punkte (7,72%) umfasst.
- Ein Abwärtstrend von Juni-Juli 2022, der 21 Tage andauert und 653,60 Punkte (6,16%) umfasst.
- Ein Abwärtstrend von April-Mai 2018, der 22 Tage andauert und 591,10 Punkte (4,76%) umfasst.
- Ein Aufwärtstrend von Februar-März 2025, der 10 Tage andauert und 587,10 Punkte (5,67%) umfasst.
- Ein Aufwärtstrend von Mai-Juni 2020, der 10 Tage andauert und 513,30 Punkte (4,72%) umfasst.
Es ist zu beachten, dass alle fünf der stärksten Trends eine überdurchschnittliche Dauer haben (von 10 bis 22 Tagen) und in Zeiten bedeutender wirtschaftlicher Ereignisse auftreten: die COVID-19-Pandemie (2020), die Inflationskrise (2022) und der Trump'sche Zollkrieg (2025).
Von den fünf stärksten Trends sind drei Aufwärtstrends und zwei Abwärtstrends, was auf die Möglichkeit extremer Bewegungen in beide Richtungen hinweist.
Praktische Schlussfolgerungen für den Handel
Auf der Grundlage der Analyse können wir eine Reihe von praktischen Empfehlungen für den Handel mit EURUSD formulieren:
- Bei der Entwicklung einer Handelsstrategie ist es sinnvoll, sich auf den durchschnittlichen Trendwert von 150-180 Punkten als Gewinnziel zu konzentrieren. Ehrgeizigere Ziele (über 200 Punkte) sind in etwa 25 % der Fälle erreichbar.
- Die optimale Zeit, um eine Position zu halten, beträgt 3-7 Tage. Dagegen ist es sinnvoll, einen Trailing-Stop zu verwenden, um potenziell längere und stärkere Bewegungen aufzufangen.
- Bei der Festlegung von Indikatoren für die technische Analyse des EURUSD-Stundencharts wird empfohlen, die durchschnittliche Trenddauer zu berücksichtigen. Für gleitende Durchschnitte liegen die optimalen Zeiträume bei 100-120 Stunden (entsprechend der durchschnittlichen Trenddauer).
- Angesichts der nahezu identischen Merkmale von Aufwärts- und Abwärtstrends können symmetrische Strategien verwendet werden, um in beide Richtungen zu handeln.
- Besonderes Augenmerk sollte auf Zeiten erhöhter Volatilität und bedeutender wirtschaftlicher Ereignisse gelegt werden, da diese die stärksten Trendbewegungen bewirken.
Trendverteilung und das Problem der Gitterstrategien
Die Analyse ergab ein charakteristisches Merkmal der Trendverteilung beim EURUSD – einen ausgeprägten „dicken Rand“ auf der rechten Seite der Verteilung. Obwohl die meisten Trends (etwa 70-75 %) einen Wert von bis zu 200 Punkten haben, besteht eine bedeutende statistische Masse aus seltenen, aber extrem starken Bewegungen, die 500-750 Punkte erreichen.

Diese Verteilungsstruktur hat grundlegende Auswirkungen auf den algorithmischen Handel, insbesondere auf Grid-Strategien. Die mathematische Analyse zeigt, dass Grid-Strategien, die auf der Durchschnittsbildung von Positionen gegen den Trend beruhen, gerade wegen des Vorhandenseins dieses „schweren Schwanzes“ der Verteilung kritisch anfällig sind.
Das Prinzip der Grid-Strategie besteht darin, zusätzliche Positionen zu eröffnen, wenn sich der Kurs gegen die Ausgangsposition bewegt. Das mathematische Problem ist jedoch folgendes: Bei einer festen Kontogröße und einer begrenzten Anzahl möglicher zusätzlicher Positionen hat jede Grid-Strategie eine endliche „Grid-Tiefe“. Die stärksten Trends, die wir identifiziert haben (500+ Punkte), werden mit hoher Wahrscheinlichkeit diese Tiefe überschreiten, was zu katastrophalen Verlusten führen wird.
Der Schlüsselfaktor ist die Risikoasymmetrie. Die konsequente kurzfristige Rentabilität der Netzstrategien schafft eine Illusion von Zuverlässigkeit. Eine einzige extreme Bewegung kann jedoch alle angesammelten Gewinne zerstören und zu einem vollständigen Kapitalverlust führen. Mathematisch wird dies durch die Formel der erwarteten Rendite beschrieben, wobei das erwartete Ergebnis E(R) gleich der Summe der Produkte der Wahrscheinlichkeiten der Ereignisse und ihrer Ergebnisse ist.
Bei Grid-Strategien auf EURUSD werden in 75 % der Fälle (Trends bis 200 Punkte) positive Renditen von 5-10 % des Kapitals beobachtet, in 24 % der Fälle (Trends von 200-500 Punkten) nahezu Nullrenditen oder negative Renditen von 10-30 %, und in 1 % der Fälle (Trends über 500 Punkte) katastrophale Verluste von 50-100 % des Kapitals. Bei einer solchen Verteilung der Ergebnisse wird die mathematische Erwartung selbst bei einer hohen Wahrscheinlichkeit eines lokalen Gewinns aufgrund seltener, aber verheerender Ereignisse langfristig negativ.
Pyramidenbildung entlang des Trends: mathematische Rechtfertigung der Wirksamkeit
Vor dem Hintergrund der festgestellten Probleme von Rasterstrategien zeigt die quantitative Analyse die mathematische Gültigkeit des gegenteiligen Ansatzes – der Pyramidenbildung entlang des Trends. Diese Strategie besteht im sequentiellen Aufbau der Position in Richtung eines sich entwickelnden Trends.
Der mathematische Vorteil des Pyramidierens beruht darauf, dass genau der „schwere Rand“ der Verteilung ausgenutzt wird, was für Gitterstrategien nachteilig ist. Der Schlüsselfaktor ist die positive Korrelation zwischen Dauer und Ausmaß des Trends. Die Analyse ergab, dass die langfristigen Trends höchstwahrscheinlich größer sind. Das heißt, je länger sich ein Trend entwickelt, desto höher ist die mathematische Wahrscheinlichkeit, dass er sich auf ein signifikantes Niveau weiterentwickelt.
Beim Pyramiding wird jede nachfolgende Position im Verhältnis zum ursprünglichen Einstiegspunkt mit Gewinn eröffnet. Dadurch entsteht der Effekt des Zinseszinseffekts, bei dem die Rentabilität nicht linear, sondern exponentiell wächst. Seltene, aber extrem starke Trends können beim Pyramidisieren überproportional hohe Gewinne erzielen. So kann beispielsweise ein 700-Punkte-Trend mit drei Pyramidenpunkten eine Rendite erzielen, die Dutzenden von erfolgreichen Operationen mit herkömmlichen Trends entspricht.
Die mathematische Formel für die erwarteten Renditen beim Pyramidisieren ändert auch ihre Struktur: Je stärker der Trend, desto mehr Punkte für das Pyramidisieren und desto höher die endgültige Rendite; das Risiko für jede nachfolgende Position kann sich verringern, indem der Stop-Loss mit der Entwicklung des Trends bis zum Break-Even verschoben wird; und bei strikter Einhaltung der Regeln des Money-Managements ist der maximale Verlust auf einen vorher festgelegten Prozentsatz der Einlage begrenzt.
Für die praktische Umsetzung des Pyramidings im algorithmischen Handel sind die optimalen Punkte für die Hinzufügung von Positionen die Bewegungen von 80-100 Punkten für das erste Hinzufügen, 150-170 Punkte für das zweite Hinzufügen und 200-250 Punkte für die dritte Hinzufügung. Die Begrenzung des Gesamtrisikos über die gesamte Bandbreite der Positionen auf 2-3% des Kapitals ermöglicht es Ihnen, Drawdowns auch während einer Reihe erfolgloser Trades effektiv zu managen und gleichzeitig das Potenzial zu erhalten, seltene, aber extrem profitable Preisextreme zu erfassen.
Eine quantitative Analyse der EURUSD-Trendverteilung zeigt also, dass die Pyramidisierung von Positionen entlang des Trends eine mathematisch solide Strategie mit einer positiven Langzeiterwartung ist, im Gegensatz zu Grid-Ansätzen, die kritisch anfällig für den „Heavy Tail“ der Trendverteilung sind.
Schlussfolgerung
Eine quantitative Analyse der EURUSD-Trends auf Stundenbasis ergab konsistente Muster im Verhalten dieses Währungspaares. Die mittelfristige Natur der meisten Trends, mit einer Dauer von etwa 5 Tagen und einem Wert von 150-180 Punkten, bietet beträchtliche Handelsmöglichkeiten.
Die erzielten Ergebnisse bilden eine objektive Grundlage für die Entwicklung von Handelsstrategien, die an die realen Merkmale des EURUSD-Marktes angepasst sind. Anhand dieser Daten können Händler realistische Gewinnziele festlegen, die Haltedauer von Positionen optimieren und die Parameter der technischen Indikatoren entsprechend der erkannten Muster anpassen.
Die weitere Entwicklung dieser Forschung kann die Analyse der Saisonalität von Trends, den Einfluss wirtschaftlicher Ereignisse auf die Merkmale von Trendbewegungen und die Entwicklung adaptiver Handelssysteme umfassen, die ihre Parameter in Abhängigkeit vom aktuellen Marktkontext anpassen.
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/18035
Warnung: Alle Rechte sind von MetaQuotes Ltd. vorbehalten. Kopieren oder Vervielfältigen untersagt.
Dieser Artikel wurde von einem Nutzer der Website verfasst und gibt dessen persönliche Meinung wieder. MetaQuotes Ltd übernimmt keine Verantwortung für die Richtigkeit der dargestellten Informationen oder für Folgen, die sich aus der Anwendung der beschriebenen Lösungen, Strategien oder Empfehlungen ergeben.
Von der Grundstufe bis zur Mittelstufe: Indikator (III)
Marktsimulation (Teil 14): Sockets (VIII)
Marktsimulation: (Teil 11): Sockets (V)
Von der Grundstufe bis zur Mittelstufe: Indikator (II)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Sehr interessante Arbeit! Meiner Meinung nach ist der Handel jedoch sowohl Statistik als auch Psychologie - schon allein deshalb, weil die Finanzmärkte verhaltensorientierte Wirtschaftssysteme sind. Und heute ist das sogar noch akuter - die Märkte reagieren sofort auf das, was z. B. Trump oder Musk gesagt haben.