Estrategia cuantitativa del DPD-RSI-BB

El autor:¿ Qué pasa?, Fecha: 2023-11-22 16:17:52
Las etiquetas:

img

Resumen general

La estrategia cuantitativa DPD-RSI-BB combina tres indicadores: DPD, RSI y Bandas de Bollinger para el comercio de acciones.

Estrategia lógica

La estrategia consta de los siguientes componentes principales:

  1. Indicador DPD para determinar la tendencia

    Construye la línea DEMA utilizando promedios dobles de EMA y calcula el porcentaje de diferencia de precio frente a DEMA como indicador de determinación de tendencia.

  2. Indicador RSI para juzgar las condiciones de sobrecompra y sobreventa

    Se calcula el valor del RSI durante un cierto período. El RSI por encima del límite superior se juzga como una zona de sobrecompra y el RSI por debajo del límite inferior se juzga como una zona de sobreventa.

  3. Bandas de Bollinger para identificar soporte y resistencia

    Se calcula la banda media, la banda superior y la banda inferior durante un cierto período.

  4. El juicio general

    Cuando el porcentaje de diferencia de precio del DPD es inferior al umbral, el RSI es inferior al límite inferior de la zona de sobreventa y el precio es inferior a la banda superior de Bollinger, se genera una señal alcista.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. El juicio global basado en múltiples indicadores evita señales falsas de un único indicador.

  2. El uso del indicador RSI para juzgar las condiciones de sobrecompra y sobreventa permite establecer puntos de stop loss y take profit de antemano.

  3. El indicador DPD puede determinar mejor las tendencias de los precios, mientras que las bandas de Bollinger pueden identificar los niveles de soporte y resistencia.

  4. Los parámetros flexibles permiten la optimización de las diferentes existencias.

Riesgos y optimización

La estrategia también tiene algunos riesgos:

  1. La combinación de múltiples indicadores hace que la estrategia sea bastante compleja con dificultad para ajustar los parámetros.

  2. Los indicadores como DPD y RSI tienen ciertos retrasos, que pueden perder el mejor momento de entrada.

  3. Los parámetros deben optimizarse para adaptarse a los diferentes ciclos y características de las existencias.

Se pueden optimizar los siguientes aspectos:

  1. Ajustar los parámetros del indicador para optimizar los puntos de entrada y salida.

  2. Añadir mecanismos de stop loss para controlar estrictamente la pérdida por operación.

  3. Prueba con diferentes existencias y parámetros del ciclo para evaluar el rendimiento de la estrategia.

Conclusión

La estrategia DPD-RSI-BB combina múltiples indicadores para juicios para evitar señales falsas de un solo indicador. A través de la optimización de parámetros, puede convertirse en una estrategia de negociación de acciones relativamente fuerte.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("DPD+RSI+BB ",overlay=true)
price=close




//############### DPD  #################


buyper =input(-1,step=0.1)
sellper=input(0,step=0.1)
demalen = input(50,title="Dema Length")
e1= ema(close,demalen)
e2=ema(e1,demalen)
demaprice  =   2 * e1 - e2
demadifper =  ((price-demaprice)/price)*100


//############## DPD #####################

//############# RSI ####################


lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 60 )

vrsi = rsi(price, lengthrsi)

//########## RSI #######################

//############### BB #################

lengthbb = input(50, minval=1)
multlow = input(1.5, minval=0.001, maxval=50,step=0.1)
multup = input(1.5,minval=0.001,maxval=50,step=0.1)

basisup = sma(close, lengthbb)
basislow = sma(close, lengthbb)

devup = multup * stdev(close, lengthbb)

devlow = multlow*stdev(close,lengthbb)

upperbb = basisup + devup
lowerbb = basislow - devlow

p1 = plot(upperbb, color=blue)
p2 = plot(lowerbb, color=blue)
fill(p1, p2)



//########### BB ###################




yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  (demadifper<buyper) and crossover(vrsi,overSold) and  (price < upperbb) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if (   price>upperbb and vrsi>overBought and demadifper>sellper   and  year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Más.