Dies ist eine Handelsstrategie, die auf gleitenden Durchschnitts-Crossover-Signalen basiert. Sie verwendet eine 45-tägige gleitende Durchschnittslinie als wichtigen technischen Indikator und erzeugt Kauf- und Verkaufssignale, wenn der Preis die gleitende Durchschnittslinie durchbricht.
Wenn der Preis über die 45-tägige gleitende Durchschnittslinie steigt und bricht, wird ein Kaufsignal generiert. Nach dem Halten der Position für 8 Tage wird ein Verkaufssignal generiert.
Die spezifischen Logikprinzipien sind:
Das ist die Kernlogik dieser Strategie.
Diese Strategie hat folgende Vorteile:
Diese Strategie birgt einige Risiken:
Lösungen:
Die wichtigsten Verbesserungsbereiche sind:
Optimieren der MA-Parameter, um die besten Kombinationen zu finden, z. B. 15-tägige, 30-tägige oder 60-tägige MA.
Optimieren Sie die Aufbewahrungsdauer, um die optimale Dauer zu bestimmen, z. B. 5 Tage, 10 Tage, 15 Tage.
Hinzufügen von Trailing Stops zur Verfolgung von Trends und zur Kontrolle von Risiken, z. B. Test- oder ATR-Stops.
Fügen Sie Filter mit anderen Indikatoren wie MACD, KDJ hinzu, um falsche Signale zu reduzieren.
Verfeinern Sie die Wiedereintrittsregeln, um Überhandelungen zu verhindern, z. B. Durchsetzen Sie Abkürzungsperioden.
Wirksamkeit der Prüfungen auf verschiedenen Märkten und Instrumenten.
Zusammenfassend ist diese MA-Crossover-Strategie ein einfaches und praktisches Trendfolgensystem. Sie nutzt die Trendverfolgungsfähigkeit von MA und kombiniert Preisbrechungen, um Handelssignale zu generieren. Die Vorteile sind, dass sie einfach zu implementieren sind, während die Nachteile gelegentliche Whipsaws sind. Die Strategie kann durch Parameteroptimierung und das Hinzufügen anderer Indikatoren als Filter weiter verbessert werden.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover Strategy", overlay=true) // Calculate the 45-day moving average ma_length = 45 ma = ta.sma(close, ma_length) // Track position entry and entry bar var bool in_long_position = na var int entry_bar = na var int exit_bar = na // Entry condition: Close price crosses above the 45-day moving average to enter the position if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1]) in_long_position := true entry_bar := bar_index // Exit condition: Close the position after holding for 8 trading days if (in_long_position and bar_index - entry_bar >= 8) in_long_position := false exit_bar := bar_index // Re-entry condition: Wait for price to cross over the 45-day moving average again if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8)) in_long_position := true entry_bar := bar_index // Execute long entry and exit if (in_long_position) strategy.entry("Long", strategy.long) if (not in_long_position) strategy.close("Long")