
Überblick
Der Zweck dieser Strategie ist es, potenzielle Trendwendepunkte durch die Kreuzung eines 20-Zyklus-Indikator beweglichen Durchschnitts (EMA) und eines 20-Zyklus-Simplem beweglichen Durchschnitts (SMA) zu identifizieren. Entscheiden Sie, ob Sie eine Über- oder Unterbrechungsmöglichkeit haben, je nach der Richtung der Kreuzung.
Strategieprinzip
- Wenn der 20-Zyklus-EMA von unten durch den 20-Zyklus-SMA geht und der Schlusskurs über dem 20-Zyklus-EMA liegt, wird mehr getan.
- Wenn der 20-Zyklus-EMA von oben nach unten durch den 20-Zyklus-SMA geht und der Schlusskurs unterhalb des 20-Zyklus-EMA liegt, wird eine Leerstellung durchgeführt.
- Bei einer Überschreitung wird der 20-Zyklus-SMA unter der 20-Zyklus-EMA platziert.
- Bei Forex-Börsen wird der 20-Zyklus-SMA bei einer 20-Zyklus-EMA ausgeschaltet.
Die Strategie verwendet die Crossover- und Crossunder-Funktionen von ta, um die Kreuzung von Gleichlinien zu ermitteln.
Analyse der Stärken
Die Strategie kombiniert die Trend-Tracking-Funktion eines beweglichen Durchschnitts mit der Erzeugung von Signalen aus dem Durchschnittskreuz und bietet folgende Vorteile:
- Der Moving Average filtert die Geräusche des Marktes und identifiziert mittlere und langfristige Trends.
- Durch die einfache Bedienung von Schnittlinien ist es möglich, die Wendepunkte des Marktes zu bestimmen.
- Die Parameter-Einstellungen für 20 Zyklen sind für die meisten Aktien und Zeiträume gültig und müssen nicht häufig angepasst werden.
- Die Nutzung der Relation zwischen dem Schlusskurs und der EMA verhindert teilweise falsche Signale.
- Die Regeln sind klar, einfach, leicht zu verstehen und umzusetzen und für Investoren mit niedrigerem Qualifikationsniveau geeignet.
Risikoanalyse
Die Strategie birgt auch folgende Risiken:
- Der Moving Average ist nachlässig und kann kurzfristige und heftige Trendwende verpassen.
- Durchschnittliche Kreuzungen können zu Geräuschsignalen führen, die die Strategie-Stabilität beeinträchtigen.
- Die Parameter-Einstellung mit einer festen 20-Zyklus-Parameter-Einstellung ist möglicherweise für einige Aktien nicht sehr geeignet und erfordert eine Anpassung.
- Es gibt keine Stop-Loss-Mechanismen, die zu einem größeren Einzelschaden führen können.
Gegenmaßnahmen:
- Die Reaktionsgeschwindigkeit wird durch eine angemessene Verkürzung des Durchschnittszyklus beschleunigt.
- Weitere Filterbedingungen werden hinzugefügt, um falsche Signale zu vermeiden.
- Testen und Optimieren von Parametern und Aktienkategorien.
- Die Einführung von Stop-Loss-Methoden zur Risikokontrolle
Optimierungsrichtung
Die Strategie kann auch in folgenden Bereichen optimiert werden:
- Hinzufügen von anderen Indikatoren, um eine komplexe Strategie zu entwickeln, wie z. B. die Hinzufügung von Handelsvolumen, RSI und anderen Indikatoren.
- Testoptimierung für die Durchschnittszyklus- und Transaktionsvarianten, Einstellung von Adaptionsparametern.
- Erstellen von dynamischen Ausstiegsmechanismen, wie z. B. Trend-Tracking-Stopps, Zeit-Stopps usw.
- Die Anbindung an die algorithmischen Handelsfunktionen ermöglicht automatische Transaktionen.
- Die Entwicklung von Anwendungen, die sich auf die automatische Anpassung und Optimierung von Strategien beziehen, wird mit Hilfe von Machine Learning-Algorithmen erleichtert.
Zusammenfassen
Die Strategie ist insgesamt relativ einfach und praktisch, und die Identifizierung potenzieller Trendwendepunkte durch die Anwendung der Linear-Cross-Theorie ist eine gängige und effektive Strategieidee. Es gibt jedoch Raum für Verbesserungen, die die Strategie unmonitorable, präzise und zuverlässig und automatisierbar machen können, indem andere technische Indikatoren, dynamische Parameter-Einstellungen, Stop-Loss-Methoden und algorithmische Handelsmethoden hinzugefügt werden.
Strategiequellcode
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-SMA Crossover Strategy", overlay=true)
// Define the length of the moving averages
emaLength = 20
smaLength = 20
// Calculate moving averages
emaValue = ta.ema(close, emaLength)
smaValue = ta.sma(close, smaLength)
// Buy condition
buyCondition = ta.crossover(emaValue, smaValue) and close > emaValue
// Short sell condition
sellCondition = ta.crossunder(emaValue, smaValue) and close < emaValue
// Exit conditions for both Buy and Short sell
exitBuyCondition = ta.crossunder(emaValue, smaValue)
exitSellCondition = ta.crossover(emaValue, smaValue)
// Strategy logic
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
if (exitBuyCondition)
strategy.close("Buy")
if (exitSellCondition)
strategy.close("Sell")
// Plot the moving averages
plot(emaValue, color=color.blue, title="20 EMA")
plot(smaValue, color=color.red, title="20 SMA")