Kana Candle Breakout Strategie basierend auf gleitendem Durchschnitt und Unterstützungswiderstand

Schriftsteller:ChaoZhang, Datum: 2023-12-27 15:27:45
Tags:

img

Übersicht

Dies ist eine schnelle Breakout-Strategie, die auf japanischer Candlestick-Technischer Analyse basiert und mit gleitenden Durchschnittsindikatoren und Unterstützungswiderstandsindikatoren kombiniert wird, um Trend und Position zu bestimmen.

Strategie Logik

Die Strategie verwendet einen 20-Perioden einfachen gleitenden Durchschnitt (SMA) und einen 200-Perioden exponentiellen gleitenden Durchschnitt (EMA), um die Trendrichtung zu bestimmen. Wenn der Preis im Aufwärtstrend (SMA über EMA) ist und der aktuelle japanische Kerzenkörper über dem Offenen (weißer Körper) schließt, zeigt dies eine verstärkte Kaufkraft an. Wenn der Preis im Abwärtstrend (SMA unter EMA) ist und der aktuelle japanische Kerzenkörper unter dem Offenen (schwarzer Körper) schließt, zeigt dies einen verstärkten Verkaufsdruck an.

Mit der Bestätigung des Trends und der Dynamik wartet die Strategie auf einen schnellen Preisbruch und tritt in den Markt ein. Der sogenannte Breakout bedeutet, dass der Preis die erste Kanallinie der drei vorgegebenen ATR-Kanäle (berechnet auf Basis von 200-Tage-ATR und Koeffizienten) überschreitet und in die zweite Kanallinie eintritt. Dies ist ein Breakout-Signal mit hoher Wahrscheinlichkeit.

Nach dem Markteintritt sind die Gewinn- und Stop-Loss-Regeln sehr einfach. Solange der Preis die äußeren Grenzen des Kanals berührt (z. B. Gewinnlinie oder Stop-Loss-Linie), wird er sofort Gewinn oder Stop-Loss machen. Dies gewährleistet schnelle Gewinne der Strategie.

Analyse der Vorteile

Der größte Vorteil dieser Strategie ist die schnelle Gewinnnahme mit relativ geringem Risiko. Durch den schnellen Markteintritt nach dem Ausbruch werden mehrere Positionsanpassungen vermieden.

Im Vergleich zur langfristigen Beteiligung kann ein solcher effizienter Eröffnungs- und Schließmechanismus die Leerlaufrate der Strategie erheblich reduzieren und die Kapitaleffizienz weiter verbessern.

Risikoanalyse

Die Strategie stützt sich hauptsächlich auf gleitende Durchschnittsindikatoren, um die Trendrichtung zu bestimmen, mit dem Risiko eines Rückschlags und einer Konsolidierung.

Außerdem stützt sich die Strategie zu sehr auf technische Indikatoren, ohne die Analyse von fundamentalen und signifikanten Ereignissen zu kombinieren.

Um Risiken zu kontrollieren, können wir den Kanalbereich entsprechend erweitern, um die Öffnungsfrequenz zu reduzieren, oder ein Positionsmanagementmodul hinzufügen, um eine einzelne Position dynamisch anhand des Gesamtkapitals anzupassen.

Optimierung

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Das Modul für Positionsmanagement wird hinzugefügt, sodass eine einzelne Eröffnungsposition dynamisch anhand der Kontogröße angepasst wird, um den einzelnen Verlustanteil zu kontrollieren.

  2. Wenn technische Indikatoren Öffnungssignale auslösen, überprüfen Sie die Unternehmensgrundlagen und wichtigen Ereignisse, um Anomalien zu vermeiden.

  3. Kombination von Bestandspulmanagement. Festlegung von Regeln zur dynamischen Anpassung des Bestandspols. Auswahl des optimalen Bestandspols in verschiedenen Phasen zur Verbesserung der Stabilität.

  4. Verwenden Sie KI, um Trends und wichtige Preisniveaus vorherzusagen und dabei zu helfen, den Kanalbereich und den Eintrittszeitpunkt zu bestimmen.

Schlussfolgerung

Die Strategie zeichnet sich durch Einfachheit und Effizienz aus. Sie bestimmt den Haupttrend mit gleitenden Durchschnitten, die Dynamikrichtung mit japanischen Kerzen, tritt mit schnellen Ausbrüchen ein und geht mit schneller Gewinnnahme und Stop-Loss aus. Sie ermöglicht kurzfristige Gewinne, die für den Hochfrequenzhandel geeignet sind. Aber sie birgt auch das Risiko von Rückzug und Unsicherheit.


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

//@version=2
strategy("Kana with S/R Strategy", title = "KANA with S/R", overlay=true)

len = input(20, minval=1, title="Length")
multiplier1 = input(1, minval=1, title="multiplier1")
multiplier2 = input(2, minval=1, title="multiplier2")
multiplier3 = input(3, minval=1, title="multiplier3") 
srTimeFrame = input(240, minval=1, title="Support Resistance TimeFrame")
useSR = input(true, type = bool, title="Use Support/Resistance")
tpPercent = input(0.5, type=float, title = "Take Profit Percent")
useTP = input(false, type=bool, title = "Use Take Profit")
tp = (close * tpPercent / 100) / syminfo.mintick

src = input(close, title="Source")
mid = sma(src, len)
plot(mid, title="SMA", color=blue)

trend = ema(close, 200)
plot(trend, title="Trend", color=green)


upper1 = mid + atr(200) * multiplier1
upper2 = mid + atr(200) * multiplier2
upper3 = mid + atr(200) * multiplier3

lower1 = mid - atr(200) * multiplier1
lower2 = mid - atr(200) * multiplier2
lower3 = mid - atr(200) * multiplier3

plot(upper1, color = orange)
plot(upper3, color = red)

plot(lower1, color = orange)
plot(lower3, color = red)

haClose = request.security(heikinashi(syminfo.tickerid), timeframe.period, close)
haOpen = request.security(heikinashi(syminfo.tickerid), timeframe.period, open)

resistance = request.security(syminfo.tickerid,tostring(srTimeFrame), high)
support  = request.security(syminfo.tickerid,tostring(srTimeFrame), low)
rsPos = (close - support[srTimeFrame]) / (resistance[srTimeFrame] - support[srTimeFrame])

MACD = ema(close, 120) - ema(close, 260)
aMACD = ema(MACD, 90)
hisline = MACD - aMACD

longCondition = (mid > trend) and (haOpen[1] < haClose[1]) and (mid > mid[1]) and (close < upper1) and hisline > 0 and (useSR == true ? (rsPos > 100) : true)
shortCondition = (mid < trend) and (haOpen[1] > haClose[1]) and (mid < mid[1]) and (close > lower1) and hisline < 0 and (useSR == true ? (rsPos < 0) : true)

longExit = (close > upper3 ) or (close < lower2)
shortExit = (close < lower3) or (close > upper2)

if (longCondition)
    strategy.entry("Long", strategy.long)
    if (useTP)
        strategy.exit("Exit Long", "Long", profit = tp)
        
if (longExit)
    strategy.close("Long")
    
if (shortCondition)
    strategy.entry("Short", strategy.short)
    if (useTP)
        strategy.exit("Exit Short", "Short", profit = tp)
    
if (shortExit)
    strategy.close("Short")

Mehr