Confirmar la estrategia de divergencia


Fecha de creación: 2024-01-15 15:19:56 Última modificación: 2024-01-15 15:19:56
Copiar: 1 Número de Visitas: 647
1
Seguir
1617
Seguidores

Confirmar la estrategia de divergencia

Descripción general

La estrategia de dispersión de confirmación utiliza la señal de dispersión doble del indicador RSI y el indicador Awesome Oscillator para determinar el momento de entrada más confiable. Cuando los precios forman un nuevo alto o un nuevo bajo, y el RSI y el indicador AO forman un alto o un bajo inverso, es la señal de dispersión.

Principio de estrategia

La estrategia se basa en la dispersión entre el aumento y el descenso de los precios y los valores de los indicadores RSI y AO para determinar el punto de compra y venta. El método específico para determinar el punto de venta es el siguiente:

La dispersión múltiple: los precios forman nuevos mínimos más recientes, mientras que el RSI y el AO forman nuevos máximos más recientes, es decir, los precios bajan y el RSI y el AO suben, lo que constituye una señal de dispersión múltiple.

Dispersión de cabeza vacía: los precios forman nuevos máximos más recientes, mientras que el RSI y el AO forman nuevos mínimos más recientes, es decir, los precios suben y el RSI y el AO bajan, lo que constituye una señal de dispersión de cabeza vacía.

La estrategia requiere que los dos indicadores cumplan con las condiciones de dispersión al mismo tiempo, para evitar la señal errónea de dispersión falsa de un solo indicador. Cuando se establece la señal de dispersión, se establece un stop loss en el tren de Brin o cerca del tren de Brin, con el punto de parada específico por encima del tren de Brin o por debajo del tren de Brin.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El filtro de doble indicador aumenta la fiabilidad de la señal, evitando la dispersión de señales falsas de un solo indicador.

  2. El uso de la dispersión de los indicadores para determinar puntos de venta y venta es menos probable que se retire.

  3. Las señales de dispersión tienen una buena continuidad y un gran margen de ganancias.

  4. Establezca paros cerca de soporte o resistencia clave para reducir la posibilidad de grandes pérdidas individuales.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Las condiciones de doble filtración se establecen simultáneamente en menos tiempo, y es posible que se pierda parte de la oportunidad de negociación.

  2. La dispersión no es una señal 100% confiable y en algunos casos puede ocasionar pérdidas.

  3. La configuración incorrecta de los parámetros de la cinta de brillo puede causar que el stop loss sea demasiado relajado o demasiado estrecho.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Ajuste de los parámetros de los períodos de dispersión de los juicios, optimización de los parámetros de las señales de dispersión.

  2. Prueba diferentes formas de parar, como el trailing stop o el stop dinámico.

  3. Se añaden filtros de otros indicadores, como volumen de transacciones, para mejorar aún más la fiabilidad de la señal.

  4. Considerar de manera integral factores como la tendencia, la resistencia de apoyo y la identificación de la calidad de la señal dispersa.

Resumir

La estrategia de confirmación de dispersión a través de la doble señal de dispersión de RSI y AO para determinar el momento de la entrada en el mercado, el mecanismo de doble filtración reduce efectivamente las señales falsas y aumenta la probabilidad de obtener ganancias. La estrategia también establece un stop loss en el punto clave para controlar el riesgo y tiene mejores características de ganancias de riesgo. Mediante la optimización de parámetros, el aumento de la filtración de señales, etc., se puede mejorar aún más la estabilidad de la estrategia y la eficacia de la negociación.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Confirmed Divergence Strategy", overlay=true)
source = close
length = input(30, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
// SETTING UP VARIABLES //

src = close

// RSI //
rsiprd = input(title="RSI period",defval=14)
rv = rsi(src,rsiprd)
ob = input(title="Overbought Level",  defval=70)
os = input(title="Oversold Level",  defval=30)
lengthAO1=input(title="Awesome Short MA", defval=5, minval=1) //5 periods
lengthAO2=input(title="Awesome Long MA", defval=34, minval=1) //34 periods


//Awesome//

AO = sma((high+low)/2, lengthAO1) - sma((high+low)/2, lengthAO2)

// look back periods //
x = input(title = "short lookback period",defval=5)
z = input(title = "long lookback period",defval=25)


// END SETUP //

////////////////////////
// BULLISH DIVERGENCE //
////////////////////////

// define lower low in price //

srcLL = src > lowest(src,x) and  lowest(src,x)<lowest(src,z)[x]

// define higher low in rsi //

rsiHL = rv>lowest(rv,x) and lowest(rv,x) > lowest(rv,z)[x] and lowest(rv,z)<os

// define higher low in AO //


aoHL = AO > lowest(AO,x) and lowest(AO,x) > lowest(AO,z)[x] and lowest(AO, x) < 0



BullishDiv = srcLL and rsiHL and aoHL


////////////////////////
// BEARISH DIVERGENCE //
////////////////////////

// define higher high in price //

srcHH = src < highest(src,x) and  highest(src,x)>highest(src,z)[x]

// define lower high in RSI //

rsiLH = rv<highest(rv,x) and highest(rv,x) < highest(rv,z)[x] and highest(rv,z)>ob

// define lower high in AO //
aoLH = AO<highest(AO,x) and highest(AO,x) < highest(AO,z)[x] and highest(AO, x) > 0

BearishDiv = srcHH and rsiLH and aoLH


basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev



if (BullishDiv)
    strategy.entry("DivLE", strategy.long, stop=lower, oca_name="BullishDiv",comment="DivLE")
else
    strategy.cancel(id="DivLE")
    
if (crossover(close, lower))
    strategy.close("DivSE")
    
if (crossunder(close, upper))
    strategy.close("DivLE")

if (BearishDiv)
    strategy.entry("DivSE", strategy.short, stop=upper, oca_name="BearishDiv",comment="DivSE")
else
    strategy.cancel(id="DivSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)