Estrategia de combinación de indicadores de cruce de promedio móvil e inversión

El autor:¿ Qué pasa?, Fecha: 2023-12-13 15:20:20
Las etiquetas:

img

Resumen general

Esta estrategia integra la media móvil, el índice de fuerza relativa y el índice de canal de materias primas, formando una estrategia de seguimiento de tendencias y combinación de indicadores relativamente completa.

Principio de la estrategia

  1. Utilice hl2 para calcular el precio medio.

  2. Calcule el indicador de CCI de 14 períodos para juzgar la tendencia principal. Cuando el CCI es mayor que 0, la tendencia es ascendente. Cuando es menor que 0, la tendencia es descendente.

  3. Calcular la línea rápida del indicador RSI de 14 períodos y la línea lenta del indicador RSI de 50 períodos. Cuando la línea rápida cruza por encima de la línea lenta, se genera una señal de compra. Cuando la línea rápida cruza por debajo de la línea lenta, se genera una señal de venta.

  4. Las señales comerciales reales se generan solo cuando el indicador CCI también coincide con la dirección de la señal del indicador RSI, es decir, comprar solo cuando el CCI es mayor que 0 y el RSI cruza la línea rápida por encima de la línea lenta, y vender solo cuando el CCI es menor que 0 y el RSI cruza la línea rápida por debajo de la línea lenta.

  5. Compare el precio con la media móvil de 14 períodos de hl2 para ayudar a juzgar la tendencia menor, para evitar roturas falsas. Una señal de compra se genera solo cuando el precio está por encima de la media móvil de 14 períodos de hl2 y el indicador RSI cruza hacia arriba. Una señal de venta se genera solo cuando el precio está por debajo de la media móvil de 14 períodos de hl2 y el indicador RSI cruza hacia abajo.

Análisis de ventajas

  1. Esta estrategia integra el juicio de tendencia y las señales de reversión para entrar a tiempo después del inicio de la tendencia, y utiliza indicadores de señales de reversión para determinar los puntos de salida, obteniendo así mejores rendimientos.

  2. El índice del canal de productos básicos determina con precisión las principales direcciones de tendencia, evitando elecciones incorrectas de direcciones de negociación.

  3. Los cruces de líneas rápidos y lentos del índice de fuerza relativa sirven como señales de habilitación confiables, evitando el problema de retraso de las medias móviles y pueden capturar oportunamente las reversiones de precios.

  4. Comparar los precios con las líneas medianas puede filtrar aún más las fallas que causan señales erróneas.

  5. En general, esta estrategia tiene una buena estabilidad y un buen rendimiento en tendencias fuertes.

Análisis de riesgos

  1. Esta estrategia es sensible a las variedades comerciales, lo que requiere la optimización de parámetros para variedades específicas.

  2. Los parámetros, tales como las medias móviles de 14 y 50 períodos, deben ajustarse según los diferentes mercados.

  3. El hecho de confiar únicamente en el CCI para determinar la dirección de la tendencia principal no es todavía lo suficientemente perfecto, con cierto retraso.

  4. La combinación de indicadores de señal de reversión es relativamente grande, lo que puede conducir a un cierto grado de sobre-optimización.

Direcciones de optimización

  1. Considere la posibilidad de añadir más indicadores para juzgar las principales tendencias, como el DMI, el ADX, etc., para que los juicios de tendencia sean más precisos.

  2. Por ejemplo, después de que aparezca una señal de reversión, si el precio vuelve a llamar por una cierta amplitud, se puede considerar la salida de stop loss para reducir las pérdidas.

  3. Optimizar los parámetros para que sean más adecuados para variedades comerciales específicas, por ejemplo, aumentar el parámetro de ciclo de la línea lenta o ajustar el método de cálculo del precio medio, etc.

  4. Construir una combinación de optimización de parámetros para seleccionar los parámetros óptimos para diferentes variedades, lo que puede mejorar en gran medida la aplicabilidad de las estrategias.

  5. Añadir indicadores de momento para evitar señales engañosas cuando el momento no es suficiente.

Conclusión

El marco general de esta estrategia es completo, integrando el juicio de tendencia e indicadores de reversión, que teóricamente pueden obtener un excelente rendimiento. Pero en la aplicación real, todavía necesita optimización de parámetros y modelos para las variedades comerciales para reducir el riesgo de sobreajuste. Si pasa estrictas pruebas estadísticas, tiene el potencial de convertirse en una estrategia estable que vale la pena recomendar.


/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SuchitRaju

//@version=4
strategy("MA RSI CCI")

price_up = if(close > open and close > sma(hl2,14))
    1
else
    0

price_down = if(open > close and close < sma(hl2,14))
    1
else
    0
// 

cci_indicator = cci(hl2, 14)
// plot(cci_indicator, color=color.blue)

rsi_slow = sma(rsi(close, 14), 50)
// plot(rsi_slow, color=color.red)

rsi_fast = rsi(close, 14)
// plot(rsi_fast, color=color.green)

isCrossover = if(rsi_fast > rsi_slow and cci_indicator > 0)
    1
else
    0
// plotshape(isCrossover, style = shape.arrowup, color = color.green, size = size.huge)

isCrossunder = if(rsi_fast < rsi_slow and cci_indicator < 0)
    1
else
    0
// plotshape(isCrossunder, style = shape.arrowup, color = color.red, size = size.huge)

// start = timestamp("GMT-5", 2016,9,1,0,0)
// end = timestamp("GMT-5", 2017,9,1,0,0)

// strategy.entry("Long", strategy.long, 1, when = isCrossover and price_up)
// strategy.entry("Short", strategy.short, 1, when = isCrossunder and price_down)
// strategy.close("Long", when = isCrossunder and price_down)
// strategy.close("Short", when = isCrossover and price_up)

strategy.entry("Long", strategy.long, 1, when = isCrossover)
strategy.entry("Short", strategy.short, 1, when = isCrossunder)
strategy.close("Long", when = isCrossunder)
strategy.close("Short", when = isCrossover)

Más.