Estrategia de ruptura de impulso estocástico

El autor:¿ Qué pasa?, Fecha: 2023-10-24 16:35:24
Las etiquetas:

img

Resumen general

La estrategia Momentum Breakout utiliza principalmente el indicador del oscilador estocástico para determinar la dirección de la tendencia del mercado, combinado con el indicador ADX para juzgar la fuerza de la tendencia, para generar señales comerciales.

Estrategia lógica

La estrategia se basa en dos indicadores técnicos:

  1. Oscilador estocástico: se utiliza para determinar la dirección de la tendencia del mercado. El valor del oscilador estocástico oscila entre 0 y 100. Un valor entre 45 y 55 cuando el período es 14 significa que no hay una tendencia clara. Un estocástico por encima de 55 es una señal alcista y por debajo de 45 es una señal bajista.

  2. Indicador ADX: se utiliza para juzgar la fuerza de la tendencia. Un ADX inferior a 20 indica una tendencia débil.

La estrategia primero juzga si hay una clara tendencia alcista o bajista basada en el valor del oscilador estocástico. Cuando el estocástico es superior a 55, indica una tendencia alcista. Cuando está por debajo de 45, indica una tendencia bajista.

Luego comprueba si el ADX está por encima de 20 para confirmar una tendencia fuerte. Si el ADX está por encima de 20, significa que la tendencia es lo suficientemente fuerte para el comercio de tendencias. Si el ADX está por debajo de 20, la tendencia se considera no obvia y no se generarán señales comerciales.

Al combinar el oscilador estocástico y el ADX, se generan señales de negociación cuando se cumplen ambas de las siguientes condiciones:

  1. Estocástico por encima de 55, lo que indica una tendencia alcista.
  2. ADX por encima de 20, lo que confirma que la tendencia al alza es fuerte.

Las señales de venta se generan cuando se cumplen ambas condiciones:

  1. Estocástico por debajo de 45, señalando una tendencia bajista.
  2. ADX por encima de 20, lo que confirma que la tendencia a la baja es fuerte.

Con estas normas, la estrategia forma un sistema de seguimiento de tendencias a medio y largo plazo.

Ventajas

Las ventajas de esta estrategia incluyen:

  1. Captura de tendencias a medio y largo plazo: Al combinar el Estocástico y el ADX, puede determinar eficazmente la dirección y la fuerza de la tendencia del mercado, captando las tendencias principales.

  2. Control de la caída: Sólo el comercio cuando la tendencia es clara puede ayudar a controlar los golpes innecesarios.

  3. Ajuste de parámetros: Los períodos de Estocástico y ADX se pueden optimizar para diferentes mercados.

  4. Simplicidad: la lógica general es simple e intuitiva, y consiste en dos indicadores técnicos comunes.

  5. Universalidad: la estrategia puede aplicarse a diferentes mercados con ajuste de parámetros.

Los riesgos

Algunos riesgos de la estrategia:

  1. Puntos de ruptura perdidos: como indicadores de tendencia, el Estocástico y el ADX pueden perder puntos de reversión de tendencia potenciales y operaciones de ruptura tempranas.

  2. Riesgos de inversión de tendencia: pueden juzgar erróneamente que la tendencia continúa cerca del final de una tendencia, perdiendo oportunidades de salir a tiempo, lo que lleva a pérdidas amplificadas.

  3. Dificultad en la optimización de parámetros: los parámetros deben ajustarse para diferentes mercados, lo que plantea algunas dificultades.

  4. Whipsaws: puede generar múltiples señales inválidas en mercados de rango sin una tendencia clara.

  5. Divergencia: cuando la tendencia de precios entra en conflicto con la tendencia del oscilador estocástico, surge la divergencia, lo que puede conducir a operaciones perdedoras.

Los riesgos podrían mitigarse mediante:

  1. Añadir otros indicadores para identificar tendencias locales y posibles puntos de ruptura.

  2. Incorporar señales de reversión de tendencia para salir oportunamente cuando las tendencias se revierten sustancialmente.

  3. Usando el aprendizaje automático para optimizar los parámetros automáticamente.

  4. Aumentar el umbral de ADX para filtrar las señales de tendencia débiles en los mercados variados.

  5. Aplicar indicadores adicionales para confirmar las señales estocásticas y evitar operaciones de divergencia.

Direcciones de mejora

Algunas maneras de mejorar la estrategia:

  1. Optimizar parámetros estocásticos como los períodos K y D para localizar puntos de inflexión con precisión.

  2. Optimizar el período ADX para determinar los mejores parámetros para juzgar la fuerza de la tendencia.

  3. Añadir señales de reversión de tendencia, como el aumento del tamaño de la posición en las zonas estocásticas de sobrecompra/sobreventa con stop loss.

  4. Combinando otros indicadores como RSI y MACD para refinar el momento de entrada y salida.

  5. Usando el aprendizaje automático para encontrar las combinaciones óptimas de parámetros.

  6. Implementar estrategias de stop loss como mover el stop loss o revertir el stop loss para controlar la pérdida de una sola operación.

  7. Stop-loss de seguimiento: agregue stop-loss de seguimiento para bloquear las ganancias a medida que la tendencia se extiende.

  8. Gestión de fondos: Optimizar la gestión del riesgo ajustando el tamaño de las posiciones en función de la fortaleza de ADX.

Resumen de las actividades

En resumen, esta estrategia de Momentum Breakout es en general un sistema de seguimiento de tendencias, utilizando el Estocástico para determinar la dirección de la tendencia y el ADX para medir la fuerza, formando una estrategia de negociación a mediano y largo plazo. Las ventajas se encuentran en la captura de tendencias y el control de las caídas con una lógica simple e intuitiva. Las debilidades son las posibles operaciones de ruptura temprana perdidas y los riesgos de reversión de tendencias. Podemos optimizarlo a través de métodos como el ajuste de parámetros, la adición de señales, la implementación de stop loss para mejorar la recompensa / riesgo mientras controlamos los riesgos.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Created by Bitcoinduke
//Original Creator is Jake Bernstein 
// Link: https://school.stockcharts.com/doku.php?id=trading_strategies:stochastic_pop_drop
// Tested: XBTUSD 3h | BTCPERP FTX 3h
//@version=4
// strategy(shorttitle="Stochastic Pop and Drop", title="Pop and Drop", overlay=false, 
//      calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
//      default_qty_value=1000, currency=currency.USD, initial_capital=1000,
//      commission_type=strategy.commission.percent, commission_value=0.075)

upper_threshold_buy = input(55, minval=50, title="Buy Entry/Exit Line")
lower_threshold_sell = input(45, maxval=50, title="Sell Entry/Exit Line")

oscillator_length = input(14, minval=1, title="Stochastic Length - Default 14")
sma_length = input(2, minval=1, title="SMA Length - 3-day (3 by default) simple moving average of stoch")

stoch_oscillator = sma(stoch(close, high, low, oscillator_length), sma_length)

//Upper and Lower Entry Lines
upper_line = upper_threshold_buy
lower_line = lower_threshold_sell

stoch_color = stoch_oscillator >= upper_line ? green : stoch_oscillator <= lower_line ? red : purple

//Charts
plot(stoch_oscillator, title="Stochastic", style=histogram, linewidth=4, color=stoch_color)
upper_threshold = plot(upper_line, title="Upper Line", style=line, linewidth=4, color=green)
lower_threshold = plot(lower_line, title="Lower Line", style=line, linewidth=4, color=red)

// Strategy Logic
LongSignal = stoch_oscillator >= upper_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false
ShortSignal = stoch_oscillator <= lower_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false

strategy.entry("POP_Short", strategy.short, when=ShortSignal)
strategy.entry("POP_Long", strategy.long, when=LongSignal)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(5, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END



Más.