Estrategia de trading cuantitativo con oscilador de momentum mejorado y divergencia estocástica

AC RSI SMA STOCH TP SL AO DIV
Fecha de creación: 2024-12-11 17:34:01 Última modificación: 2024-12-11 17:34:01
Copiar: 1 Número de Visitas: 360
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo con oscilador de momentum mejorado y divergencia estocástica

Descripción general

La estrategia es un sistema de trading cuantitativo que combina un indicador de oscilación acelerada (AC) y un indicador aleatorio (estocástico). Capta los cambios de la dinámica del mercado mediante la identificación de desviaciones entre los precios y los indicadores técnicos, lo que permite predecir posibles reveses de tendencias. La estrategia también integra una línea uniforme (SMA) y un indicador relativamente débil (RSI) para aumentar la fiabilidad de la señal, y establece paradas fijas para controlar el riesgo.

Principio de estrategia

La lógica central de la estrategia se basa en la sinergia de múltiples indicadores técnicos: primero se calcula el indicador de oscilación acelerada ((AC), que se obtiene a través de la diferencia entre el promedio de 5 y 34 ciclos del valor medio del precio, y luego se resta su promedio de N ciclos. Al mismo tiempo, se calculan los valores K y D de los indicadores aleatorios para confirmar la señal de desviación.

Ventajas estratégicas

  1. Sincronización de múltiples indicadores: la combinación de los tres indicadores AC, Stochastic y RSI permite filtrar eficazmente las señales falsas
  2. Control de riesgo automático: configuración de stop loss con un número de puntos fijos para controlar el riesgo de cada operación
  3. Indicadores visuales: señales de compra y venta claramente marcadas en el gráfico para ayudar a los operadores a identificar oportunidades rápidamente
  4. Alta flexibilidad: Parámetros de ajuste para diferentes entornos de mercado y ciclos de negociación
  5. Alerta en tiempo real: sistema de alerta en tiempo real integrado para garantizar que no se pierda la oportunidad de negociar

Riesgo estratégico

  1. Riesgo de brechas falsas: señales de desviación falsas en un mercado convulso
  2. Riesgo de deslizamiento: debido al uso de puntos fijos para detener el deterioro, es posible que se enfrente a un deslizamiento mayor en momentos de gran volatilidad en el mercado
  3. Sensibilidad de los parámetros: diferentes combinaciones de parámetros pueden generar grandes diferencias en el rendimiento de la estrategia.
  4. Dependencia del entorno del mercado: las estrategias pueden no ser efectivas en mercados sin tendencias
  5. Lagresión de la señal: debido al uso de cálculo en línea media, la señal puede estar algo rezagada

Dirección de optimización de la estrategia

  1. Detención de pérdidas dinámicas: se puede ajustar el punto de detención de pérdidas de forma dinámica en función de la volatilidad del mercado
  2. Introducción de indicadores de tráfico: mejora la fiabilidad de la señal mediante la confirmación de tráfico
  3. Filtración de entornos de mercado: agregar módulos de juicio de tendencias y adoptar diferentes estrategias de negociación en diferentes entornos de mercado
  4. Optimización de la selección de parámetros: optimización de las combinaciones de parámetros de cada indicador utilizando métodos de aprendizaje automático
  5. Aumentar el filtro de tiempo: considerar las características del tiempo del mercado y evitar el comercio en momentos desfavorables

Resumir

Se trata de una estrategia de comercio cuantitativa que combina múltiples indicadores técnicos para capturar los puntos de inflexión del mercado desviándose de la señal. La estrategia tiene la ventaja de tener una verificación cruzada de múltiples indicadores y un sistema de control de riesgos perfectos, pero también debe tener en cuenta problemas como los falsos avances y la optimización de parámetros.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
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/
// © JayQwae


//@version=5
strategy("Enhanced AC Divergence Strategy with Stochastic Divergence", overlay=true)

// Input settings
tp_pips = input.float(0.0020, "Take Profit (in price)", step=0.0001)
sl_pips = input.float(0.0040, "Stop Loss (in price)", step=0.0001)  // 40 pips
ac_length = input.int(5, "AC Length")
rsi_length = input.int(14, "RSI Length")
stoch_k = input.int(14, "Stochastic K Length")
stoch_d = input.int(3, "Stochastic D Smoothing")
stoch_ob = input.float(80, "Stochastic Overbought Level")
stoch_os = input.float(20, "Stochastic Oversold Level")

// Accelerator Oscillator Calculation
high_low_mid = (high + low) / 2
ao = ta.sma(high_low_mid, 5) - ta.sma(high_low_mid, 34)
ac = ao - ta.sma(ao, ac_length)

// RSI Calculation
rsi = ta.rsi(close, rsi_length)

// Stochastic Oscillator Calculation
k = ta.sma(ta.stoch(close, high, low, stoch_k), stoch_d)
d = ta.sma(k, stoch_d)

// Stochastic Divergence Detection
stoch_bull_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ta.lowest(k, 5) > ta.lowest(k[1], 5)
stoch_bear_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ta.highest(k, 5) < ta.highest(k[1], 5)

// Main Divergence Detection
bullish_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ac > ac[1] and stoch_bull_div
bearish_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ac < ac[1] and stoch_bear_div

// Plot divergences
plotshape(bullish_div, title="Bullish Divergence", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(bearish_div, title="Bearish Divergence", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Strategy rules
if (bullish_div)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + tp_pips, stop=close - sl_pips)

if (bearish_div)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - tp_pips, stop=close + sl_pips)

// Alerts
if (bullish_div)
    alert("Bullish Divergence detected! Potential Buy Opportunity", alert.freq_once_per_bar)

if (bearish_div)
    alert("Bearish Divergence detected! Potential Sell Opportunity", alert.freq_once_per_bar)