Estrategia de negociación de media móvil doble de canal rectángulo de impulso

El autor:¿ Qué pasa?, fecha: 2024-02-27 14:54:07
Las etiquetas:

img

Resumen general

Esta estrategia se basa en los indicadores de impulso del canal rectángulo y la media móvil doble, que implementa un sistema de negociación de acciones relativamente completo. La estrategia utiliza primero EMA rápido y EMA lento para construir señales de negociación de media móvil doble. Luego, combinado con el indicador del canal rectángulo, verifica aún más las señales de negociación para lograr una entrada más precisa. Además, la estrategia también utiliza el indicador SAR para ayudar a juzgar la dirección de la tendencia.

Principio de la estrategia

  1. Calcular las medias móviles de la EMA rápida con un período de 5 días y la EMA lenta con un período de 50 días.

  2. Convertir EMA a TEMA (Triple Exponential Moving Average), utilizando el método de cálculo ponderado TEMA para mejorar la sensibilidad de la curva y capturar los cambios de precios más rápidamente.

  3. Cuando el TEMA rápido cruza por encima del TEMA lento, se genera una señal de compra; cuando el TEMA rápido cruza por debajo del TEMA lento, se genera una señal de venta.

  4. Calcular el ancho del canal de precios para formar áreas de canal. Las señales comerciales solo se consideran cuando los precios rompen el canal. Esto puede filtrar señales falsas y verificar el inicio real de una tendencia.

  5. El indicador SAR determina la dirección general de la tendencia, combinado con las señales de negociación de dos promedios móviles, puede evitar operaciones inversas innecesarias.

Ventajas de la estrategia

  1. La combinación de doble cruce de media móvil y avance de canal puede identificar eficazmente el comienzo de una tendencia, filtrar el ruido y hacer que las señales de compra y venta sean más precisas y confiables.

  2. La curva TEMA es más sensible que la curva EMA y puede capturar los cambios de precios más rápidamente.

  3. La combinación de múltiples indicadores puede formar un mecanismo de verificación entre indicadores para evitar las limitaciones de un único indicador y hacer que la estrategia sea más completa y sólida.

  4. Los parámetros de la estrategia son flexibles, los ciclos de EMA, los anchos de canal, etc. pueden ajustarse y optimizarse de acuerdo con las condiciones del mercado para una gran adaptabilidad.

Riesgos de la estrategia

  1. Existe una probabilidad de violentas fluctuaciones en los precios de las acciones a corto plazo, lo que puede desencadenar fácilmente un stop loss.

  2. Los eventos repentinos pueden causar diferencias de precios que no pueden negociarse a los precios esperados.

  3. Los cruces de medias móviles dobles no pueden evitar completamente las señales falsas, todavía hay una cierta tasa de error de juicio.

  4. La configuración incorrecta de los parámetros puede dar lugar a señales comerciales excesivamente frecuentes o con retraso.

Direcciones de optimización

  1. Se pueden combinar más indicadores como KD y MACD para la verificación para hacer que la estrategia sea más completa y confiable.

  2. Los ciclos dinámicos pueden ajustarse para ajustar los parámetros de la EMA y del canal de acuerdo con el grado de volatilidad del mercado, lo que hace que la estrategia sea más flexible.

  3. Se pueden establecer modelos de aprendizaje automático para entrenar una gran cantidad de datos históricos para optimizar automáticamente los ajustes de parámetros y reducir la intervención manual.

  4. El análisis del texto y el juicio del sentimiento de las noticias se pueden combinar para evitar el comercio innecesario cuando se publican noticias importantes.

Resumen de las actividades

Esta estrategia forma señales comerciales a través de un cruce de promedio móvil TEMA rápido y lento, y luego las verifica con el canal de precios y el indicador SAR, que pueden identificar efectivamente el comienzo de las tendencias de precios de las acciones y realizar operaciones de compra y venta en posiciones razonables. La combinación de múltiples indicadores para verificarse entre sí puede mejorar la confiabilidad de las señales y es una estrategia comercial de acciones relativamente robusta y eficiente. Al optimizar continuamente la configuración de parámetros, agregar nuevos indicadores de verificación, etc., el efecto de la estrategia puede mejorarse aún más.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA_System_SAR", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(5, minval=1, title="Fast TEMA Period")
slowEmaPeriod = input(50, minval=1, title="Slow TEMA Periods")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 09, 15)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 15, 30)        // backtest finish window
window()  => true

fastEma = ema(close, fastEmaPeriod)
slowEma = ema(close, slowEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3

// convert EMA into TEMA

ema4 = ema(close, fastEmaPeriod)
ema5 = ema(ema1, fastEmaPeriod)
ema6 = ema(ema2, fastEmaPeriod)

slowTEMA = 3 * (ema4 - ema5) + ema6

buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'fast TEMA', linewidth=2, color=white)
plot(slowTEMA, title = 'slow TEMA', linewidth=2, color=yellow)

strategy.entry("long",strategy.long, when = window() and buy)
strategy.entry("short", strategy.short, when = window() and sell)

Más.