Estrategia de negociación de ventas en corto cuando la banda de Bollinger cruza por debajo del precio con el RSI Callback

El autor:¿ Qué pasa?, Fecha: 2023-12-26 12:08:44
Las etiquetas:

img

Resumen general

Esta estrategia utiliza bandas de Bollinger para determinar si el precio ha entrado en el área de sobrecompra y combina el indicador RSI para identificar oportunidades de devolución.

Principios comerciales

La estrategia se basa en los siguientes principios:

  1. Cuando el precio de cierre cruza por encima de la banda superior de Bollinger, indica que el activo ha entrado en territorio sobrecomprado y es probable que se produzca una devolución de la compra.
  2. El indicador RSI determina efectivamente los niveles de sobrecompra/sobreventa.
  3. Ir corto cuando el precio de cierre cruza por debajo de la banda superior
  4. Posición cerrada cuando el RSI se retira de la zona de sobrecompra o se activa el stop loss

Análisis de ventajas

Ventajas de esta estrategia:

  1. Las bandas de Bollinger determinan con precisión los niveles de sobrecompra/sobreventa, mejorando la tasa de éxito de las operaciones
  2. El RSI filtra las señales falsas de ruptura, evitando pérdidas innecesarias
  3. Ratio alto de riesgo/recompensación obtenido mediante un control efectivo del riesgo

Análisis de riesgos

Los riesgos de esta estrategia:

  1. El precio puede seguir subiendo después de romper por encima de la banda superior, lo que lleva a nuevas pérdidas.
  2. El resultado de la falta de retroceso de la RSI en el momento oportuno es una amplificación de las pérdidas.
  3. La posición corta unidireccional no deja margen para negociación en consolidación

Los riesgos pueden minimizarse:

  1. Ajuste adecuado del stop loss para el stop out oportuno
  2. Adición de indicadores para confirmar la devolución de la RSI
  3. Uso de medias móviles para determinar la consolidación

Direcciones de optimización

Esta estrategia puede mejorarse:

  1. Optimización de los parámetros de Bollinger para más activos
  2. Ajuste fino de los parámetros del RSI para mejores señales
  3. Añadir más indicadores para identificar los puntos de reversión de tendencia
  4. Incorporación de la lógica del comercio largo
  5. Implementar un stop loss dinámico basado en la volatilidad

Conclusión

En resumen, esta es una típica estrategia de scalping corto rápido sobrecomprado. Se capitaliza en bandas de Bollinger para entradas comerciales y RSI para filtrar señales. El riesgo se gestiona a través de una colocación de stop loss prudente.


/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule


strategy("Bollinger Band Below Price with RSI",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=70,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

//Bollinger Bands Indicator
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

// RSI inputs and calculations
lengthRSI = 14
RSI = ta.rsi(close, lengthRSI)



// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01

// Determine trail stop loss prices
//longStopPrice = 0.0
shortStopPrice = 0.0

//longStopPrice := if strategy.position_size > 0
    //stopValue = close * (1 - longTrailPerc)
    //math.max(stopValue, longStopPrice[1])
//else
    //0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999


//Entry and Exit
strategy.entry(id="short", direction=strategy.short, when=ta.crossover(close, upper) and RSI < 70 and timePeriod and notInTrade)

if (ta.crossover(upper, close) and RSI > 70 and timePeriod)
    strategy.exit(id='close', limit = shortStopPrice)











Más.