Esta é uma estratégia de reversão baseada em cruzamento de média móvel simples. Ele usa médias móveis simples de 1 dia e 5 dias. Quando a SMA mais curta cruza acima da SMA mais longa, ela fica longa. Quando a SMA mais curta cruza abaixo da SMA mais longa, ela fica curta.
A estratégia calcula a SMA de 1 dia (sma1) e a SMA de 5 dias (sma5) do preço de fechamento. Quando o sma1 cruza o sma5, entra em uma posição longa. Quando o sma1 cruza abaixo do sma5, entra em uma posição curta. Após abrir uma posição longa, o stop loss é definido em 5 USD abaixo do preço de entrada e o take profit a 150 USD acima. Para posições curtas, o stop loss é de 5 USD acima da entrada e o take profit a 150 USD abaixo.
Esta estratégia simples de SMA dupla é fácil de entender e implementar para uma verificação rápida da estratégia. Mas tem uma tolerância ao risco e um potencial de lucro limitado. Mais otimizações são necessárias em parâmetros e filtros para adaptar mais condições de mercado. Como uma estratégia de quantidade inicial, contém blocos básicos para melhorias iteráveis.
/*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)