Esta es una estrategia de reversión basada en el cruce de promedios móviles simples. Utiliza promedios móviles simples de 1 día y 5 días. Cuando la SMA más corta cruza por encima de la SMA más larga, va largo. Cuando la SMA más corta cruza por debajo de la SMA más larga, va corto. Es una estrategia típica de seguimiento de tendencia.
La estrategia calcula el SMA de 1 día (sma1) y el SMA de 5 días (sma5) del precio de cierre. Cuando sma1 cruza sma5, entra en una posición larga. Cuando sma1 cruza debajo de sma5, entra en una posición corta. Después de abrir una posición larga, el stop loss se establece en 5 USD por debajo del precio de entrada y se obtiene ganancia a 150 USD por encima. Para posiciones cortas, el stop loss es de 5 USD por encima de la entrada y se obtiene ganancia a 150 USD por debajo.
Esta simple estrategia de doble SMA es fácil de entender e implementar para una verificación rápida de la estrategia. Pero tiene una tolerancia al riesgo y un potencial de ganancia limitado. Se necesitan más optimizaciones en los parámetros y filtros para adaptarse a más condiciones de mercado.
/*backtest start: 2023-02-19 00:00:00 end: 2024-02-19 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Valeria 181 Bot Strategy Mejorado 2.21", overlay=true, margin_long=100, margin_short=100) var float lastLongOrderPrice = na var float lastShortOrderPrice = na longCondition = ta.crossover(ta.sma(close, 1), ta.sma(close, 5)) if (longCondition) strategy.entry("Long Entry", strategy.long) // Enter long shortCondition = ta.crossunder(ta.sma(close, 1), ta.sma(close, 5)) if (shortCondition) strategy.entry("Short Entry", strategy.short) // Enter short if (longCondition) lastLongOrderPrice := close if (shortCondition) lastShortOrderPrice := close // Calculate stop loss and take profit based on the last executed order's price stopLossLong = lastLongOrderPrice - 5 // 10 USDT lower than the last long order price takeProfitLong = lastLongOrderPrice + 151 // 100 USDT higher than the last long order price stopLossShort = lastShortOrderPrice + 5 // 10 USDT higher than the last short order price takeProfitShort = lastShortOrderPrice - 150 // 100 USDT lower than the last short order price // Apply stop loss and take profit to long positions strategy.exit("Long Exit", from_entry="Long Entry", stop=stopLossLong, limit=takeProfitLong) // Apply stop loss and take profit to short positions strategy.exit("Short Exit", from_entry="Short Entry", stop=stopLossShort, limit=takeProfitShort)