MA Crossover-Handelsstrategie auf der Grundlage von kurz- und langfristigen gleitenden Durchschnitts-Crossovers

Schriftsteller:ChaoZhang, Datum: 2024-02-22 15:36:49
Tags:

img

Übersicht

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.

Strategie Logik

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.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Einfache und universelle, leicht verständliche, für Anfänger geeignete Regelungen für die Überschneidung von gleitenden Durchschnitten

  2. Identifizierung von Signalen nur während der morgendlichen Sitzung, wenn Qualitätssignale reichlich vorhanden sind, was falsche Signale in anderen Zeitrahmen ausfiltert

  3. Hat Stop-Loss-Bedingungen, die rechtzeitigen Stop-Loss ermöglichen, teilweise Gewinne sichern und das Verlustrisiko reduzieren

  4. Viele anpassbare Parameter, die je nach Marktbedingungen und persönlichem Handelsstil angepasst werden können

  5. Leicht erweiterbar, um mit anderen Indikatoren zur Entwicklung komplexerer Strategien kombiniert zu werden

Risikoanalyse

Die Strategie birgt außerdem einige Risiken, die hauptsächlich aus folgenden Aspekten resultieren:

  1. Bewegliche Durchschnitte selbst haben größere Verzögerungsmerkmale, können kurzfristige Preisumkehrpunkte verpassen

  2. stützt sich ausschließlich auf einfache Indikatoren, die in bestimmten Marktumgebungen (Trendshocks, Range-bound usw.) fehleranfällig sind

  3. Eine falsche Stop-Loss-Positionierung kann zu unnötigen Verlusten führen

  4. Falsche Parameter-Einstellungen (bewegliche Durchschnittsperioden, Halteperioden usw.) können ebenfalls die Strategieleistung beeinträchtigen.

Entsprechende Lösungen

  1. Einbeziehung anderer führender Indikatoren zur Verbesserung der Empfindlichkeit gegenüber kurzfristigen Veränderungen

  2. Hinzufügen von Filterbedingungen, um nicht von falschen Signalen während von Schocks und Bereichsgrenzmärkten betroffen zu sein

  3. Optimierung der Stop-Loss-Logik und dynamische Anpassung des Stop-Loss-Bereichs anhand der Marktvolatilität

  4. Optimierung mit mehreren Parametern zur Suche nach optimalen Parametereinstellungen

Optimierungsrichtlinien

Die Strategie bietet außerdem ein großes Optimierungspotenzial, vor allem in folgenden Aspekten:

  1. Hinzufügen anderer Filterbedingungen zur Vermeidung falscher Signale bei Schocks und Bereichsgebundenen Markten

  2. Einbeziehung von Impulsindikatoren zur Identifizierung stärkerer Breakout-Signale

  3. Optimieren Sie die Parameter des gleitenden Durchschnittszeitraums, um die beste Parameterkombination zu finden

  4. Automatische Optimierung des Stop-Loss-Bereichs basierend auf der Marktvolatilität

  5. Versuch, die gesamte Strategie automatisch auf Basis von Techniken des maschinellen Lernens zu optimieren

  6. Versuch, mit anderen Strategien zu kombinieren, um komplexere Multi-Strategie-Systeme zu entwerfen

Schlussfolgerung

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)


Mehr