Breakout-Strategie auf der Grundlage von Camarilla-Kanälen

Schriftsteller:ChaoZhang, Datum: 23.10.2023
Tags:

img

Übersicht

Diese Strategie verwendet hauptsächlich Camarilla-Kanäle und gleitende Durchschnitte, um Ausbruchspunkte auf dem Markt zu identifizieren und somit den Trend zu verfolgen.

Strategie Logik

  1. Berechnen Sie Unterstützungs- und Widerstandsniveaus mit Camarilla-Kanälen, einschließlich H4, L4 usw.

  2. Identifizieren Sie, ob der Preis diese Kanallinien durchbricht. Zum Beispiel zeigt ein Schließen oberhalb von H4 und Öffnen unterhalb von H4 ein Ausbruchsignal an.

  3. Zum Beispiel, wenn die EMA unter dem Schließen liegt, ist es ein bullischer Ausbruch.

  4. Eintritt in eine Long-Position mit Stop Loss und Gewinngewinn, wie z. B. feste Stop Loss-Punkte und Trailing Stop Loss.

  5. Die gleiche Logik gilt für Shortpositionen.

Die Logik ist unkompliziert und leicht zu verstehen.

Vorteile

Die Vorteile dieser Strategie:

  1. Camarilla-Kanäle lokalisieren potenzielle Stützpunkte und Widerstände genau.

  2. Der Filter für gleitende Durchschnitte hilft, wahre Ausbruchssignale zu validieren.

  3. Ein Trailing Stop Loss führt zu Gewinnen und vermeidet Reversal Stops.

  4. Die Signale sind klar und leicht zu befolgen.

  5. Für den automatisierten Handel sind keine häufigen Anpassungen erforderlich.

Risiken und Lösungen

Es gibt einige Risiken, die man beachten sollte:

  1. Camarilla-Kanäle können keine Wendepunkte effektiv erkennen.

    • Lösung: Hinzufügen von Oszillatoren, um eine Trendumkehr zu erkennen.
  2. Eine unsachgemäße Einstellung der Stop-Loss-Punkte kann zu einem vorzeitigen Ausstieg oder zu vergrößerten Verlusten führen.

    • Lösung: Optimieren und testen Sie verschiedene Stop-Loss-Level.
  3. Ausbruchsignale können sich als falsche Signale erweisen.

    • Lösung: Fügen Sie weitere Filter zur Bestätigung hinzu oder lockern Sie die Ausbruchskriterien.
  4. Es können viele falsche Ausbrüche in verschiedenen Märkten auftreten.

    • Lösung: Vermeiden Sie den Handel in unterschiedlichen Zeiträumen oder lockern Sie die Kriterien.

Vorschläge zur Verbesserung

Die Strategie kann in folgenden Aspekten weiter verbessert werden:

  1. Um die Breakout-Genauigkeit zu erhöhen, werden weitere Indikatoren als Filter hinzugefügt, z. B. KDJ, MACD usw.

  2. Optimierung von Ausgängen, wie dynamischer Trailing Stop Loss, Integration von ATR usw.

  3. Optimierung der Parameter für verschiedene Produkte zur Steigerung der Robustheit.

  4. Hinzufügen eines höheren Zeitrahmen-Trendfilters, um einen Gegentrendhandel zu vermeiden.

  5. Konzentrieren Sie sich auf große Ausbrüche.

  6. Entwickeln Sie eine automatische Optimierung der Parameter für die dynamische Abstimmung.

  7. Erweiterung auf Multi-Produkt-Arbitragestrategien.

Schlussfolgerung

Die Strategie hat eine klare und einfache Logik mit starker Praktikabilität. Sie identifiziert potenzielle Unterstützungen und Widerstände mit Camarilla und bestätigt die Breakout-Richtung mit gleitenden Durchschnitten. Die Exit-Methode ist auch vernünftig. Es gibt auch ein enormes Potenzial für Verbesserungen, wie das Hinzufügen von mehr Indikatoren, Multi-Produkt-Expansion usw. Insgesamt ist dies eine vielversprechende Strategie mit gutem Potenzial.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)

//Camarilla
pivot = (high + low + close ) / 3.0 
range = high - low
h5 = (high/low) * close 
h4 = close + (high - low) * 1.1 / 2.0
h3 = close + (high - low) * 1.1 / 4.0
h2 = close + (high - low) * 1.1 / 6.0
h1 = close + (high - low) * 1.1 / 12.0
l1 = close - (high - low) * 1.1 / 12.0
l2 = close - (high - low) * 1.1 / 6.0
l3 = close - (high - low) * 1.1 / 4.0
l4 = close - (high - low) * 1.1 / 2.0
h6 = h5 + 1.168 * (h5 - h4) 
l5 = close - (h5 - close)
l6 = close - (h6 - close)

// Daily line breaks
//sopen = request.security(syminfo.tickerid, "D", open [1])
//shigh = request.security(syminfo.tickerid, "D", high [1])
//slow = request.security(syminfo.tickerid, "D", low [1])
//sclose = request.security(syminfo.tickerid, "D", close [1])
//
// Color
//dcolor=sopen != sopen[1] ? na : black
//dcolor1=sopen != sopen[1] ? na : red
//dcolor2=sopen != sopen[1] ? na : green

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) 
dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) 
dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) 
dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) 
dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) 
dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) 
dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) 
dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) 
dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) 
dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) 
dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) 
dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) 
dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) 

//offs_daily = 0
//plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2)
//plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2)
//plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2)
//plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2)
//plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3)
//plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2)
//plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2)
//plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3)
//plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2)
//plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2)
//plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2)

longCondition = close >dtime_h4 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit Long","Long",  trail_points = 140,trail_offset = 1, loss =170) 
    //trail_points = 40, trail_offset = 3, loss =70 and


shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)
    


Mehr