Die Ressourcen sind geladen. Beförderung...

Doppel gleitender Durchschnittstrend nach Handelssystem mit Optimierungsstrategie des Risiko-Rendite-Verhältnisses

Schriftsteller:ChaoZhang, Datum: 2024-11-28 17:20:13
Tags:EMARRR

img

Im Bereich des quantitativen Handels waren Trendfollowing-Strategien schon immer eine der beliebtesten Handelsmethoden.

Strategieübersicht

Diese Strategie verwendet 20-Tage- und 200-Tage-exponentielle gleitende Durchschnitte (EMA) als primäre Indikatoren, kombiniert mit einem Risiko-Rendite-Verhältnis von 3: 1 für Handelsentscheidungen. Kaufsignale werden generiert, wenn der Preis über die 20-Tage-EMA bricht und die 20-Tage-EMA über die 200-Tage-EMA liegt. Jeder Handel hat feste Stop-Loss (-0,5%) und Take-Profit (1,5%) -Niveaus, um ein kontrolliertes Risiko zu gewährleisten.

Strategieprinzipien

Die Kernlogik umfasst mehrere Schlüsselelemente:

  1. Verwendet 20-Tage- und 200-Tage-EMA, um Markttrends zu beurteilen, wobei der 200-Tage-EMA den langfristigen Trend und der 20-Tage-EMA die kurzfristigen Bewegungen widerspiegelt
  2. Ein Kaufsignal wird erzeugt, wenn der Preis über die 20-tägige EMA bricht und die 20-tägige EMA über die 200-tägige EMA liegt, was auf einen Aufwärtstrend hinweist.
  3. Verwendet ein Risiko-Rendite-Verhältnis von 3: 1, wobei das Take-Profit-Niveau (1,5%) das Dreifache des Stop-Loss-Niveaus (0,5%) beträgt
  4. Verwenden von Variablen, um den Handelsstatus zu verfolgen und doppelte Einträge zu vermeiden
  5. Setzt den Handelsstatus zurück, wenn der Preis unter die 20-tägige EMA fällt, und bereitet sich auf den nächsten Handel vor

Strategische Vorteile

  1. Doppel gleitendes Durchschnittssystem filtert effektiv Marktlärm und verbessert die Signalzuverlässigkeit
  2. Festes Risiko-Rendite-Verhältnis fördert langfristig profitables Handeln
  3. Klare Ein- und Ausstiegsregeln verringern subjektive Urteile
  4. Hoher Automatisierungsgrad, einfache Implementierung und Backtest
  5. Umfassender Risikokontrollmechanismus mit klaren Stop-Loss-Niveaus für jeden Handel

Strategische Risiken

  1. Kann häufige falsche Signale in verschiedenen Märkten erzeugen
  2. Festgelegte Stop-Loss- und Take-Profit-Niveaus entsprechen möglicherweise nicht allen Marktbedingungen
  3. Nicht berücksichtigte Handelskosten können Auswirkungen auf die tatsächliche Rendite haben
  4. Die Stop-Loss-Platzierung kann dem Eintritt in hochvolatile Märkte zu nahe sein
  5. Nicht berücksichtigte Marktliquiditätsfaktoren

Optimierungsrichtlinien

  1. Einführung von Volumenindikatoren zur Verbesserung der Trendgenauigkeit
  2. Dynamische Anpassung der Stop-Loss- und Take-Profit-Levels anhand der Marktvolatilität
  3. Hinzufügen von Trendstärkenfiltern zur Verringerung falscher Signale
  4. Einbeziehung von Marktstimmungsindikatoren
  5. Optimierung des Positionsmanagementsystems für ein besseres Geldmanagement

Zusammenfassung

Dies ist ein gut strukturierter Trend, der einer Strategie mit klarer Logik folgt. Durch die Kombination eines dualen gleitenden Durchschnittssystems mit festen Risiko-Rendite-Verhältnissen erzielt die Strategie eine gute Rendite, während die Risikokontrolle beibehalten wird. Obwohl es Bereiche zur Optimierung gibt, ist es insgesamt ein Handelssystem, das weitere Forschung und Verbesserung verdient.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Compra con Ratio 3:1", overlay=true)

// Parámetros de la temporalidad diaria y las EMAs
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)

// Condiciones para la entrada en largo
cierre_por_encima_ema20 = close > ema20
ema20_mayor_ema200 = ema20 > ema200

// Variable para registrar si ya se realizó una compra
var bool compra_realizada = false

// Condición para registrar una compra: primera vez que cierra por encima de EMA 20 con EMA 20 > EMA 200
if (cierre_por_encima_ema20 and ema20_mayor_ema200 and not compra_realizada)
    // Abrir una operación de compra
    strategy.entry("Compra", strategy.long)
    compra_realizada := true  // Registrar que se realizó una compra

    // Definir los niveles de stop loss y take profit basados en el ratio 3:1
    stop_loss = strategy.position_avg_price * 0.995  // -0.50% (rendimiento)
    take_profit = strategy.position_avg_price * 1.015  // +1.50% (3:1 ratio)
    
    // Establecer el stop loss y take profit
    strategy.exit("Take Profit / Stop Loss", from_entry="Compra", stop=stop_loss, limit=take_profit)

// Condición para resetear la compra: cuando el precio cierra por debajo de la EMA de 20
if (close < ema20)
    compra_realizada := false  // Permitir una nueva operación

// Ploteo de las EMAs
plot(ema20, title="EMA 20", color=color.blue, linewidth=2)
plot(ema200, title="EMA 200", color=color.red, linewidth=2)

// Colorear el fondo cuando el precio está por encima de ambas EMAs
bgcolor(cierre_por_encima_ema20 and ema20_mayor_ema200 ? color.new(color.green, 80) : na)


Verwandt

Mehr