
Die Strategie erzeugt ein Kaufsignal, wenn die schnelle Linie die langsame Linie durchquert, indem sie zwei verschiedene Parameter berechnet. Die Strategie erzeugt gleichzeitig ein Verkaufsignal, wenn der Preis unter diese Stop-Price fällt. Die Strategie kann die Markttrends effektiv verfolgen und nach dem Gewinn rechtzeitig ein Stop-Loss erzeugen.
Die Strategie kombiniert Trend-Tracking und Stop-Loss-Management und bietet die Möglichkeit, sowohl die Richtung der mittleren Länge zu verfolgen als auch die Einzelschäden durch Stop-Loss zu kontrollieren.
Die Moving Average-Parameter können entsprechend optimiert werden, oder der ATR-Multiplikator kann angepasst werden, um den Stop-Loss auszugleichen. Es kann auch mit anderen Indikatoren als Filterbedingungen kombiniert werden, um die Einstiegszeit zu verbessern.
Die Strategie kombiniert erfolgreich Trend-Tracking und ATR-Dynamische Stop-Loss, die durch Parameteroptimierung an verschiedene Aktienmerkmale angepasst werden können. Die Strategie bildet eine klare Kauf- und Stop-Loss-Grenze, die die Handelslogik einfach und klar macht. Insgesamt ist die binäre Moving Average-Tracking-Stop-Loss-Strategie stabil, einfach und leicht zu optimieren und eignet sich als Basisstrategie für den Aktienhandel.
/*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)