Diese Strategie ist eine einfache gleitende Durchschnitts-Crossover-Handelsstrategie, die auf kurzfristigen und langfristigen gleitenden Durchschnitts-Crossovers basiert. Sie verwendet 34-Perioden- und 89-Perioden-gleitende Durchschnitte, um ihre Crossovers während der Morgensitzung als Kauf- und Verkaufssignale zu beobachten. Wenn der kurzfristige gleitende Durchschnitt von unten über den langfristigen gleitenden Durchschnitt kreuzt, wird ein Kaufsignal generiert. Wenn er von oben nach unten kreuzt, wird ein Verkaufssignal generiert.
Die Kernlogik dieser Strategie basiert auf dem Crossover zwischen kurzfristigen und langfristigen gleitenden Durchschnitten als Handelssignale. Insbesondere definiert die Strategie 34-Perioden- und 89-Perioden-Kurzfristige und langfristige einfache gleitende Durchschnitte (SMAs). Sie beobachtet nur die Crossovers zwischen diesen beiden SMAs während der Morgensitzung (08:00 - 10:00). Wenn der kurzfristige SMA über den langfristigen SMA von unten kreuzt, gilt der Markt als aufwärtstrendend, wodurch ein Kaufsignal erzeugt wird. Wenn der kurzfristige SMA unter den langfristigen SMA von oben kreuzt, gilt der Markt als abwärtstrendendend, wodurch ein Verkaufssignal erzeugt wird.
Nach Erhalt eines Kauf- oder Verkaufssignals tritt die Strategie in eine Position ein und setzt eine Bedingung für den Ausstieg aus der Position, nämlich nach einer bestimmten Anzahl von Kerzen (Standard ist 3 Kerzen) nach dem Eintritt Gewinn zu erzielen.
Es sollte beachtet werden, dass die Strategie nur Crossover-Signale während der Morgensitzung identifiziert. Dies liegt daran, dass dieser Zeitrahmen höhere Handelsvolumina hat und Trendänderungssignale zuverlässiger sind. Andere Zeitrahmen haben größere Preisschwankungen und sind leichter, falsche Signale zu generieren.
Die Strategie weist folgende Vorteile auf:
Einfache und universelle, leicht verständliche, für Anfänger geeignete Regelungen für die Überschneidung von gleitenden Durchschnitten
Identifizierung von Signalen nur während der morgendlichen Sitzung, wenn Qualitätssignale reichlich vorhanden sind, was falsche Signale in anderen Zeitrahmen ausfiltert
Hat Stop-Loss-Bedingungen, die rechtzeitigen Stop-Loss ermöglichen, teilweise Gewinne sichern und das Verlustrisiko reduzieren
Viele anpassbare Parameter, die je nach Marktbedingungen und persönlichem Handelsstil angepasst werden können
Leicht erweiterbar, um mit anderen Indikatoren zur Entwicklung komplexerer Strategien kombiniert zu werden
Die Strategie birgt außerdem einige Risiken, die hauptsächlich aus folgenden Aspekten resultieren:
Bewegliche Durchschnitte selbst haben größere Verzögerungsmerkmale, können kurzfristige Preisumkehrpunkte verpassen
stützt sich ausschließlich auf einfache Indikatoren, die in bestimmten Marktumgebungen (Trendshocks, Range-bound usw.) fehleranfällig sind
Eine falsche Stop-Loss-Positionierung kann zu unnötigen Verlusten führen
Falsche Parameter-Einstellungen (bewegliche Durchschnittsperioden, Halteperioden usw.) können ebenfalls die Strategieleistung beeinträchtigen.
Entsprechende Lösungen
Einbeziehung anderer führender Indikatoren zur Verbesserung der Empfindlichkeit gegenüber kurzfristigen Veränderungen
Hinzufügen von Filterbedingungen, um nicht von falschen Signalen während von Schocks und Bereichsgrenzmärkten betroffen zu sein
Optimierung der Stop-Loss-Logik und dynamische Anpassung des Stop-Loss-Bereichs anhand der Marktvolatilität
Optimierung mit mehreren Parametern zur Suche nach optimalen Parametereinstellungen
Die Strategie bietet außerdem ein großes Optimierungspotenzial, vor allem in folgenden Aspekten:
Hinzufügen anderer Filterbedingungen zur Vermeidung falscher Signale bei Schocks und Bereichsgebundenen Markten
Einbeziehung von Impulsindikatoren zur Identifizierung stärkerer Breakout-Signale
Optimieren Sie die Parameter des gleitenden Durchschnittszeitraums, um die beste Parameterkombination zu finden
Automatische Optimierung des Stop-Loss-Bereichs basierend auf der Marktvolatilität
Versuch, die gesamte Strategie automatisch auf Basis von Techniken des maschinellen Lernens zu optimieren
Versuch, mit anderen Strategien zu kombinieren, um komplexere Multi-Strategie-Systeme zu entwerfen
Im Allgemeinen ist diese Strategie relativ einfach und praktisch, geeignet für Anfänger zu lernen. Es verkörpert das typische Muster der gleitenden Durchschnitts-Crossover-Strategien und verwendet Stops, um Risiken zu kontrollieren. Allerdings können weitere Optimierungen vorgenommen werden, um die Leistung für mehr Marktbedingungen zu verbessern. Anleger können diesen grundlegenden Rahmen nutzen, um fortschrittlichere quantitative Handelsstrategien zu entwerfen.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("34 89 SMA Crossover Strategy", overlay=true) // Define the length for the SMAs short_length = input(34, title="Short SMA Length") long_length = input(89, title="Long SMA Length") exit_candles = input(3, title="Exit after how many candles?") exit_at_open = input(true, title="Exit at Open?") // Define morning session morning_session = input("0800-1000", "Morning Session") // Calculate SMAs short_sma = ta.sma(close, short_length) long_sma = ta.sma(close, long_length) // Function to check if current time is within specified session in_session(session) => session_start = na(time(timeframe.period, "0800-1000")) ? na : true session_start // Condition for buy signal (short SMA crosses over long SMA) within specified trading hours buy_signal = ta.crossover(short_sma, long_sma) // Condition for sell signal (short SMA crosses under long SMA) within specified trading hours sell_signal = ta.crossunder(short_sma, long_sma) // Function to exit the trade after specified number of candles var int trade_entry_bar = na var int trade_exit_bar = na if (buy_signal or sell_signal) trade_entry_bar := bar_index if (not na(trade_entry_bar)) trade_exit_bar := trade_entry_bar + exit_candles // Exit condition exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar)) // Execute trades if (buy_signal) strategy.entry("Buy", strategy.long) if (sell_signal) strategy.entry("Sell", strategy.short) if (exit_condition) strategy.close("Buy") strategy.close("Sell") // Plot SMAs on the chart plot(short_sma, color=color.blue, linewidth=1) plot(long_sma, color=color.red, linewidth=1)