Estrategia de cronometraje de la media móvil ADX doble

El autor:¿ Qué pasa?, Fecha: 2023-12-06 15:48:29
Las etiquetas:

img

Resumen general

La estrategia de cronometraje de media móvil ADX doble identifica tendencias combinando medias móviles 2/20 y el indicador ADXR para generar señales comerciales al comienzo de las tendencias.

Estrategia lógica

La lógica básica de la estrategia de cronometraje de la media móvil ADX doble se basa en los siguientes componentes principales:

  1. 2/20 Promedio móvil exponencial (EMA)

    • Se utilizan 2 EMA con diferentes parámetros de 2 y 20 días.
    • Un cruce al alza del precio sobre la EMA de 2 días se considera una señal alcista.
    • Una cruzada a la baja del precio por debajo de la EMA de 20 días se considera una señal bajista.
  2. Indicador ADXR

    • El ADXR es una variante del indicador ADX.
    • Calcula una media móvil simple de ADX para suavizar las fluctuaciones.
    • El ADXR por debajo de un umbral implica una tendencia más débil.
    • El ADXR por encima de un umbral implica una tendencia más fuerte.
  3. Señales comerciales

    • Una señal alcista se genera cuando la EMA de 2 días Golden Cross AND ADXR es superior al umbral.
    • Se genera una señal bajista cuando la EMA de 20 días Dead Cross AND ADXR está por debajo del umbral.
    • La combinación con ADXR filtra algunas rupturas falsas y mejora las señales de tendencia reales.

La principal innovación de esta estrategia consiste en utilizar el indicador ADXR para identificar las tendencias en la fase inicial y combinarlo con las señales de las medias móviles tradicionales para mejorar la calidad y la estabilidad.

Ventajas

Las principales ventajas de la estrategia de calendarización de la media móvil ADX doble:

  1. Combinando dos MAs y ADXR, las señales son más precisas y confiables con señales falsas filtradas.
  2. Identificación de tendencias tempranas mediante el uso de ADXR para detectar la etapa inicial de las tendencias.
  3. Ajuste flexible de los parámetros ADXR para adaptarse a las condiciones cambiantes del mercado.
  4. Lógica simple y clara, fácil de entender, conveniente para ajustar los parámetros.
  5. Aplicable en diversos entornos de mercado con un desempeño histórico decente.

Los riesgos

También existen varios riesgos principales para esta estrategia:

  1. La configuración incorrecta del parámetro ADXR puede dar lugar a operaciones perdidas.

    • Ampliar el rango de parámetros ADXR o ajustar por productos.
  2. En condiciones especiales de mercado pueden producirse más señales falsas.

    • Considere combinarlo con otros indicadores para un mayor filtrado de la señal.
  3. Los parámetros fijos de la EMA no se adaptan a los cambios del mercado.

    • Versión de prueba optimizada con parámetros EMA adaptativos.
  4. La imposibilidad de identificar los rangos de negociación puede generar operaciones excesivas e insignificantes.

    • Añadir una lógica o indicadores adicionales para detectar mercados variados.

Direcciones de mejora

La estrategia puede optimizarse y reforzarse aún más en los siguientes aspectos:

  1. Optimización de los parámetros de la EMA para su adaptación automática a las condiciones del mercado.

  2. Ampliar el rango de parámetros ADXR para capturar señales comerciales más efectivas.

  3. Añadir indicadores adicionales de tendencia para señales combinadas para mejorar la calidad.

  4. Agregue estrategias de stop loss y tome estándares de ganancia para controlar los riesgos por operación.

  5. Optimizar la gestión del dinero para el tamaño dinámico de las posiciones basado en el estado de la cuenta.

Conclusión

La estrategia de tiempo ADX combina de manera innovadora las medias móviles dobles tradicionales y el indicador ADXR para mejorar la calidad de la señal y mejorar la estabilidad. Puede identificar efectivamente la etapa inicial de las tendencias con un rendimiento histórico decente.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-12-05 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The Average Directional Movement Index Rating (ADXR) measures the strength 
// of the Average Directional Movement Index (ADX). It's calculated by taking 
// the average of the current ADX and the ADX from one time period before 
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening 
// and weakening trends. However, because it represents an average of ADX, values 
// don't fluctuate as dramatically and some analysts believe the indicator helps 
// better display trends in volatile markets.
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

fADX(Len) =>
    up = ta.change(high)
    down = -ta.change(low)
    trur = ta.rma(ta.tr, Len)
    plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

ADXR(LengthADX,LengthADXR,Signal1,Signal2) =>
    pos = 0.0
    xADX = fADX(LengthADX)
    xADXR = (xADX + xADX[LengthADXR]) / 2
    pos := xADXR < Signal1 ? 1 : xADXR > Signal2 ? -1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & ADXR', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ ADXR  ═════●'
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input.float(13, step=0.01)
Signal2 = input.float(45, step=0.01)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosADXR = ADXR(LengthADX,LengthADXR,Signal1,Signal2)
iff_1 = posEMA20 == -1 and prePosADXR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosADXR == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)

Más.