Esta estrategia combina dos indicadores: la reversión de la media móvil y el oscilador de tendencia de los precios para generar señales comerciales y detectar la tendencia de rebote después de las reversiones del ciclo.
Esta estrategia utiliza principalmente los siguientes dos indicadores técnicos para el juicio de las señales comerciales:
Reversión de la media móvil
Calcula la tendencia alcista o bajista del precio en los últimos dos días combinada con el valor de la línea rápida K para determinar si ocurre una señal de reversión. Cuando el precio sigue subiendo en los últimos dos días y el valor de la línea rápida K es menor que el valor de la línea lenta K, se genera una señal de compra. Cuando el precio sigue cayendo en los últimos dos días y el valor de la línea rápida K es mayor que el valor de la línea lenta K, se genera una señal de venta.
Ocilador de tendencia de precios
El Detrend Price Oscillator traza una línea media móvil horizontal e identifica ciclos de precios basados en la relación entre el precio y la línea. Filtra tendencias más largas que el período de cálculo, revelando así fluctuaciones ocultas a corto plazo. Cuando el precio está por encima de la línea media móvil, es una señal de compra. Cuando el precio está por debajo de la línea, es una señal de venta.
Esta estrategia combina las señales de los dos indicadores. Es decir, cuando aparece una señal de reversión de la media móvil y el oscilador de tendencia de precios también da una señal de reversión de confirmación, se genera una orden de negociación. Esto puede filtrar algunas señales de reversión inválidas y atrapar la tendencia de rebote después de las reversiones.
La mayor ventaja de esta estrategia es que hace buen uso de las fortalezas de los dos indicadores para la confirmación complementaria, lo que puede filtrar eficazmente las señales no válidas y aumentar la fiabilidad de la señal.
El indicador de reversión de la media móvil en sí tiende a generar señales falsas. Confiar únicamente en él para los juicios tiende a perseguir los tops y golpear los fondos. La introducción del oscilador de desviación de tendencia de precios para la combinación puede evitar operaciones de reversión en zonas de oscilación no ideales.
Los parámetros del oscilador de tendencia de precios también determinan que solo identifica fluctuaciones a corto plazo, lo que coincide muy bien con el juicio de la reversión de la media móvil y puede identificar un momento de reversión razonable.
Los principales riesgos de esta estrategia incluyen:
Si el impulso de rebote es insuficiente, es probable que vuelva a llamar y toque el stop loss nuevamente, sin obtener ganancias.
Si los parámetros del oscilador de tendencia de precios se establecen demasiado altos, se identificarán tendencias a medio y largo plazo; si son demasiado bajos, aumentará el riesgo de error de evaluación.
Los eventos de noticias importantes pueden alterar los juicios de tendencia existentes, lo que resulta en el fracaso de las señales de reversión.
La estrategia se puede optimizar aún más en los siguientes aspectos:
Establecer razonablemente el stop loss o el time stop loss para controlar una sola pérdida.
Añadir confirmación de volumen, como emitir señales solo cuando se rompe el volumen promedio, para evitar avances ineficaces debido a un impulso insuficiente.
Optimizar dinámicamente los parámetros de acuerdo con las condiciones del mercado, relajar los parámetros adecuadamente durante tendencias obvias y endurecer los parámetros durante las consolidaciones.
Utilice métodos de aprendizaje automático como el bosque aleatorio para evaluar y seleccionar combinaciones de parámetros para lograr una optimización inteligente dinámica.
Esta estrategia combina las fortalezas de dos indicadores razonablemente para atrapar la tendencia de rebote en los puntos de reversión. Aunque persisten problemas como quedar atrapados y la optimización de parámetros, la idea general es clara y lógica.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 30/12/2019 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // The Detrend Price Osc indicator is similar to a moving average, // in that it filters out trends in prices to more easily identify // cycles. The indicator is an attempt to define cycles in a trend // by drawing a moving average as a horizontal straight line and // placing prices along the line according to their relation to a // moving average. It provides a means of identifying underlying // cycles not apparent when the moving average is viewed within a // price chart. Cycles of a longer duration than the Length (number // of bars used to calculate the Detrend Price Osc) are effectively // filtered or removed by the oscillator. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos DPO(Length) => pos = 0.0 xPrice = close xsma = sma(xPrice, Length) nRes = xPrice - xsma pos := iff(nRes > 0, 1, iff(nRes < 0, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Detrended Price Oscillator", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthDPO = input(14, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posDPO = DPO(LengthDPO) pos = iff(posReversal123 == 1 and posDPO == 1 , 1, iff(posReversal123 == -1 and posDPO == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) 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 )