Die Strategie ist eine einfache Moving-Average-Kreuzungsstrategie. Sie macht mehr, wenn sie eine langsame EMA auf einer schnellen EMA durchquert, und macht weniger, wenn sie eine langsame EMA unter einer schnellen EMA durchquert. Die Strategie kombiniert Stop, Stop und Moving Stop, um das Risiko effektiv zu kontrollieren.
Die Strategie basiert auf schnellen und langsamen Moving Averages. Die schnelle Linie ist die 9-Tage-EMA, die langsame Linie ist die 21-Tage-EMA.
Der Stop-Loss wird auf einen bestimmten Prozentsatz des Close gesetzt, der Stop-Loss auf einen bestimmten Prozentsatz des Close. Der Move-Stop wird auf einen bestimmten Prozentsatz des Close gesetzt, und wenn der Preis dieses Niveau erreicht, wird der Stop-Loss zum Eröffnungspreis verschoben.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Die Lösung:
Diese Strategie kann optimiert werden durch:
Die Moving Average Cross Gold Strategie ist überwiegend logisch klar und einfach umzusetzen. Die Kombination von Stop, Stop-Stop und Moving-Stop ermöglicht eine Risikokontrolle. Die Strategie kann durch eine vernünftige Parameter-Einstellung und eine optimierte Anpassung an verschiedene Märkte verbessert werden.
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("XAUUSD Strategy with SL, TP, and BE", shorttitle="EA", overlay=true)
// Define strategy parameters
fastLength = input(9, title="Fast EMA Length")
slowLength = input(21, title="Slow EMA Length")
stopLossPercent = input(1, title="Stop Loss (%)", minval=0, maxval=5) / 100
takeProfitPercent = input(2, title="Take Profit (%)", minval=0, maxval=5) / 100
breakEvenPercent = input(1, title="Break Even (%)", minval=0, maxval=5) / 100
// Calculate EMAs
fastEMA = ema(close, fastLength)
slowEMA = ema(close, slowLength)
// Plot EMAs on the chart
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
// Strategy logic
enterLong = crossover(fastEMA, slowEMA)
exitLong = crossunder(fastEMA, slowEMA)
enterShort = crossunder(fastEMA, slowEMA)
exitShort = crossover(fastEMA, slowEMA)
// Calculate stop loss, take profit, and break-even levels
longStopLoss = close * (1 - stopLossPercent)
longTakeProfit = close * (1 + takeProfitPercent)
shortStopLoss = close * (1 + stopLossPercent)
shortTakeProfit = close * (1 - takeProfitPercent)
longBreakEven = close * (1 + breakEvenPercent)
shortBreakEven = close * (1 - breakEvenPercent)
// Execute strategy with stop loss, take profit, and break-even
strategy.entry("Long", strategy.long, when = enterLong)
strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", profit = longTakeProfit, loss = longStopLoss)
strategy.entry("Short", strategy.short, when = enterShort)
strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", profit = shortTakeProfit, loss = shortStopLoss)
// Move stop loss to break even when price reaches break-even level
strategy.exit("Break Even Long", from_entry="Long", loss = longBreakEven)
strategy.exit("Break Even Short", from_entry="Short", loss = shortBreakEven)