Estrategia de rechazo de promedio móvil basada en el filtro de índice direccional promedio

ADX MA WMA
Fecha de creación: 2024-05-17 10:35:58 Última modificación: 2024-05-17 10:35:58
Copiar: 1 Número de Visitas: 644
1
Seguir
1617
Seguidores

Estrategia de rechazo de promedio móvil basada en el filtro de índice direccional promedio

Descripción general

La estrategia utiliza múltiples medias móviles (MA) como señal de negociación principal y combina el índice de dirección promedio (ADX) como filtro. La idea principal de la estrategia es identificar oportunidades potenciales de multiples y vacíos mediante la comparación de la relación entre la MA rápida, la MA lenta y la MA promedio.

Principio de estrategia

  1. Calcula el MA rápido, el MA lento y el MA promedio.
  2. Identificar los niveles potenciales de pluralidad y vacío mediante la comparación de la relación entre el precio de cierre y el MA lento.
  3. Confirmar los niveles de más y de menos al comparar la relación entre el precio de cierre y el MA rápido.
  4. El indicador ADX se calcula manualmente para medir la intensidad de la tendencia.
  5. Cuando el MA rápido cruza hacia arriba el MA promedio, el ADX es mayor que el umbral establecido y se confirma el nivel de múltiples cabezas, se genera una señal de entrada de múltiples cabezas.
  6. Cuando el MA rápido atraviesa hacia abajo el MA promedio, el ADX es mayor que el umbral establecido y se confirma el nivel de la cabeza vacía, se genera una señal de entrada de cabeza vacía.
  7. Cuando el precio de cierre hacia abajo cruza el MA lento, se genera una señal de salida múltiple; cuando el precio de cierre hacia arriba cruza el MA lento, se genera una señal de salida en blanco.

Ventajas estratégicas

  1. El uso de múltiples MA permite una captura más completa de las tendencias del mercado y los cambios en la dinámica.
  2. Se pueden identificar oportunidades potenciales de negociación comparando la relación entre el MA rápido, el MA lento y el MA promedio.
  3. El uso del indicador ADX como filtro evita la generación de demasiadas falsas señales en mercados convulsionados y mejora la fiabilidad de las señales de negociación.
  4. La lógica de la estrategia es clara, fácil de entender e implementar.

Riesgo estratégico

  1. La estrategia puede generar más señales falsas en casos de tendencias poco claras o con fluctuaciones en el mercado, lo que lleva a operaciones frecuentes y pérdidas.
  2. La estrategia depende de indicadores rezagados como la MA y el ADX, y puede perderse algunas oportunidades de formación de tendencias tempranas.
  3. La configuración de los parámetros de la estrategia (como la longitud de la MA y el umbral de ADX) tiene un gran impacto en el rendimiento de la estrategia y debe optimizarse según los diferentes mercados y variedades.

Dirección de optimización de la estrategia

  1. Considerar la introducción de otros indicadores técnicos, como el RSI, el MACD, etc., para mejorar la fiabilidad y la diversidad de las señales de negociación.
  2. Para diferentes entornos de mercado, se pueden configurar diferentes combinaciones de parámetros para adaptarse a los cambios en el mercado.
  3. Introducción de medidas de gestión de riesgos, como el stop loss y la gestión de posiciones, para controlar las pérdidas potenciales.
  4. Combina el análisis fundamental, como datos económicos, cambios en las políticas, etc., para obtener una visión más completa del mercado.

Resumir

La estrategia de rechazo uniforme basada en filtros de índices de dirección media utiliza varios indicadores MA y ADX para identificar oportunidades de negociación potenciales y filtrar señales de negociación de baja calidad. La lógica de la estrategia es clara, fácil de entender y implementar, pero en la aplicación real se necesita prestar atención a los cambios en el entorno del mercado y optimizarla en combinación con otros indicadores técnicos y medidas de gestión de riesgos.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gavinc745

//@version=5
strategy("MA Rejection Strategy with ADX Filter", overlay=true)

// Input parameters
fastMALength = input.int(10, title="Fast MA Length", minval=1)
slowMALength = input.int(50, title="Slow MA Length", minval=1)
averageMALength = input.int(20, title="Average MA Length", minval=1)
adxLength = input.int(14, title="ADX Length", minval=1)
adxThreshold = input.int(20, title="ADX Threshold", minval=1)

// Calculate moving averages
fastMA = ta.wma(close, fastMALength)
slowMA = ta.wma(close, slowMALength)
averageMA = ta.wma(close, averageMALength)

// Calculate ADX manually
dmPlus = high - high[1]
dmMinus = low[1] - low
trueRange = ta.tr

dmPlusSmoothed = ta.wma(dmPlus > 0 and dmPlus > dmMinus ? dmPlus : 0, adxLength)
dmMinusSmoothed = ta.wma(dmMinus > 0 and dmMinus > dmPlus ? dmMinus : 0, adxLength)
trSmoothed = ta.wma(trueRange, adxLength)

diPlus = dmPlusSmoothed / trSmoothed * 100
diMinus = dmMinusSmoothed / trSmoothed * 100
adx = ta.wma(math.abs(diPlus - diMinus) / (diPlus + diMinus) * 100, adxLength)

// Identify potential levels
potentialLongLevel = low < slowMA and close > slowMA
potentialShortLevel = high > slowMA and close < slowMA

// Confirm levels
confirmedLongLevel = potentialLongLevel and close > fastMA
confirmedShortLevel = potentialShortLevel and close < fastMA

// Entry signals
longEntry = confirmedLongLevel and ta.crossover(fastMA, averageMA) and adx > adxThreshold
shortEntry = confirmedShortLevel and ta.crossunder(fastMA, averageMA) and adx > adxThreshold

// Exit signals
longExit = ta.crossunder(close, slowMA)
shortExit = ta.crossover(close, slowMA)

// Plot signals
plotshape(longEntry, title="Long Entry", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
plotshape(shortEntry, title="Short Entry", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)

// Plot moving averages and ADX
plot(fastMA, title="Fast MA", color=color.blue)
plot(slowMA, title="Slow MA", color=color.red)
plot(averageMA, title="Average MA", color=color.orange)
// plot(adx, title="ADX", color=color.purple)
// hline(adxThreshold, title="ADX Threshold", color=color.gray, linestyle=hline.style_dashed)

// Execute trades
if longEntry
    strategy.entry("Long", strategy.long)
else if longExit
    strategy.close("Long")

if shortEntry
    strategy.entry("Short", strategy.short)
else if shortExit
    strategy.close("Short")