Esta estrategia es una simple estrategia de cruce de promedios móviles. Se hace larga cuando la EMA rápida cruza por encima de la EMA lenta y se hace corta cuando la EMA rápida cruza por debajo de la EMA lenta. La estrategia incorpora stop loss, take profit y break-even para controlar eficazmente los riesgos.
La estrategia se basa en promedios móviles rápidos y lentos. La línea rápida es la EMA de 9 días y la línea lenta es la EMA de 21 días. Se hace larga cuando la línea rápida cruza por encima de la línea lenta desde abajo. Se hace corta cuando la línea rápida cruza por debajo de la línea lenta desde arriba. Las salidas se desencadenan por cruces inversos.
El stop loss se establece en función de un porcentaje de cierre. El take profit se establece en función de un porcentaje de cierre. El stop loss de equilibrio se mueve al precio de entrada cuando el precio alcanza el nivel de equilibrio.
Las ventajas de esta estrategia son:
Hay algunos riesgos:
Soluciones:
La estrategia se puede optimizar mediante:
En general, esta estrategia de oro de cruce de promedio móvil tiene una lógica clara y es fácil de implementar. Con stop loss, take profit y break-even, controla los riesgos. Con el ajuste adecuado de parámetros y la optimización para diferentes mercados, puede lograr un buen rendimiento.
/*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)