Strategie zur Beobachtung des doppelten gleitenden Durchschnitts Stop Loss

Schriftsteller:ChaoZhang, Datum: 2024-02-05 13:45:51
Tags:

img

Übersicht

Grundsätze

  1. Fast Moving Average (EMA): 12-tägiger exponentieller gleitender Durchschnitt, der schnell auf Kursänderungen reagiert.
  2. Slow Moving Average (SMA): 45-tägiger einfacher gleitender Durchschnitt, der mittelfristige bis langfristige Trends zeigt.
  3. Kaufsignale werden erzeugt, wenn der schnelle MA den langsamen MA überquert.
  4. Der 15-Tage-Durchschnittliche Wahre Bereich (ATR) wird als Benchmark für den Stop-Loss berechnet.
  5. Die Anlage wird von der Anlage für die Berechnung der Anlageverluste und der Anlage für die Berechnung der Anlageverluste und der Anlage für die Berechnung der Anlageverluste verwendet.
  6. Verkaufssignale werden erzeugt, wenn der Preis unter den Stop-Loss-Preis fällt.

Diese Strategie kombiniert die Vorteile von Trendfollowing und Stop-Loss-Management. Sie kann mittelfristige bis langfristige Trends verfolgen und Einzelhandelsverluste durch Stop-Loss kontrollieren.

Analyse der Vorteile

  1. MA-Combos erkennen effektiv Trends und erhöhen die Signalzuverlässigkeit.
  2. Dynamische Verzögerung von Verlusten, um Schäden am Fonds zu vermeiden.
  3. Der ATR-basierte Stop-Loss macht den Stop-Preis vernünftig und verhindert eine Überempfindlichkeit.
  4. Die Strategie ist einfach und die Parameter flexibel.

Risikoanalyse

  1. MAs haben Verzögerungen, die kurzfristige Chancen verpassen können.
  2. Übermäßige lose Stop-Loss untergräbt die Rentabilität.
  3. Übermäßige enge Stop-Loss erhöhen die Handelsfrequenz und die Provisionsgebühren.
  4. Eine sich ändernde Volatilität kann die Stabilität des ATR-Parameters beeinflussen.

Die Parameter können optimiert werden, um die Stop-Loss-Amplitude auszugleichen.

Optimierungsrichtlinien

  1. Testen Sie mehr Parameterkombinationen, um die optimalen MAs zu finden.
  2. Anpassung des ATR-Multiplikators an die spezifischen Bestandsmerkmale.
  3. Fügen Sie Filterbedingungen wie Volumenindikatoren hinzu, um unnötige Trades zu vermeiden.

Schlussfolgerung


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//created by XPloRR 24-02-2018

strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100)

testStartYear = input(2005, "Start Year")
testStartMonth = input(1, "Start Month")
testStartDay = input(1, "Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2050, "Stop Year")
testStopMonth = input(12, "Stop Month")
testStopDay = input(31, "Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriodBackground = input(title="Background", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

emaPeriod = input(12, "Exponential MA")
smaPeriod = input(45, "Simple MA")
stopPeriod = input(12, "Stop EMA")
delta = input(6, "Trailing Stop #ATR")

testPeriod() => true

emaval=ema(close,emaPeriod)
smaval=sma(close,smaPeriod)
stopval=ema(close,stopPeriod)
atr=sma((high-low),15)

plot(emaval, color=blue,linewidth=1)
plot(smaval, color=orange,linewidth=1)
plot(stopval, color=lime,linewidth=1)

long=crossover(emaval,smaval) 
short=crossunder(emaval,smaval)

//buy-sell signal
stop=0
inlong=0
if testPeriod()
    if (long and (not inlong[1]))
        strategy.entry("buy",strategy.long)
        inlong:=1
        stop:=emaval-delta*atr
    else
        stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1]))
        inlong:=nz(inlong[1])
        if ((stopval<stop) and (inlong[1]))
            strategy.close("buy")
            inlong:=0
            stop:=0
else
    inlong:=0
    stop:=0
plot(stop,color=green,linewidth=1)


Mehr