Esta estratégia usa indicadores RSI duplos para identificar condições de sobrecompra e sobrevenda, combinados com breakouts de Bollinger Band para gerar sinais de negociação.
A estratégia emprega dois RSI com diferentes prazos para julgar o status de sobrecompra/supervenda de curto e longo prazo. Os sinais de negociação só são gerados quando ambos os RSI atingem os valores de limiar simultaneamente. Isso evita sinais falsos de um único RSI.
As bandas de Bollinger também são usadas para identificar breakouts de preços. Somente quando as condições do RSI são atendidas e o preço quebra a banda superior/inferior da banda de Boll, um sinal comercial será gerado. A confirmação do breakout ajuda a evitar sinais em mercados não-trending.
Por fim, MAs rápidos e lentos são verificados para a direção da tendência.
O uso combinado de múltiplos indicadores ajuda a filtrar sinais falsos, negociando apenas tendências óbvias.
O principal risco é não identificar prontamente as reversões de tendência. Reversões acentuadas em forma de V podem levar a perdas significativas sem stop loss oportuno. O ajuste de parâmetros também pode afetar o desempenho.
Adicione estratégias de stop loss para sair rapidamente em reversões.
Incorporar outros filtros como o volume para evitar falhas.
Otimize os parâmetros para encontrar a melhor combinação.
Adicionar modelos de aprendizagem de máquina para identificar melhor os regimes de mercado.
Melhorar a gestão dos riscos, incluindo o dimensionamento das posições e o controlo das perdas.
Esta estratégia combina RSI duplo e Bollinger Bands para lucrar com tendências de curto prazo. Embora simples e direto, existem limitações como sinais de reversão atrasados.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 04:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD) // === GENERAL INPUTS === // RSI 1 RSIlength = input(10,title="RSI") RSIoverSold = input(65,title="OSold") RSIoverBought = input(35,title="OBought") price = close vrsi = rsi(price, RSIlength) // RSI 2 RSIlength2 = input(6,title="RSI2") RSIoverSold2 = input(65,title="OSold2") RSIoverBought2 = input(35,title="OBought2") price2 = close vrsi2 = rsi(price2, RSIlength2) //Bollinger Bands source = close Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50) basis = sma(source, Bollinger) dev = Desv * stdev(source, Bollinger) upper = basis + dev lower = basis - dev plot(basis, color=red, title="BB ma") p1 = plot(upper, color=blue, title="BBajo") p2 = plot(lower, color=blue, title="BAlto") fill(p1, p2) //Media movil short = input(3, minval=1, title="Media corta") long = input(10, minval=1, title="Media larga") src = close plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida") plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => vrsi < 30 and vrsi2 < 27 and cross(lower, price) exitLong() => short < long strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price) strategy.entry(id = "Short", long = false, when = enterShort()) // Definición señales de compra buy_signals = vrsi < 30 and vrsi2 < 27 and cross(lower, price) // Definición señales de venta sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price) // Dibuja las señales de compra venta en franjas de color b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na bgcolor(b_color) // Dibuja las señales de compra venta coloreando las velas barcolor(buy_signals ? white : sell_signals ? white : na) plot(vrsi, color=white, linewidth=1) plot(vrsi, color=white, linewidth=2) // Crea alarmas usables desde el desplegable para poder enviar mails a haas alertcondition(buy_signals, title='Buy-Signal', message='compra') alertcondition(sell_signals, title='Sell-Signal', message='vende')