Seguimiento de la estrategia de tendencia basada en indicadores de doble EMA y CA

El autor:¿ Qué pasa?, fecha: 2024-01-15 12:02:54
Las etiquetas:

img

Resumen general

Esta estrategia está diseñada sobre la base de indicadores de oscilador de aceleración dual EMA y AC. El indicador dual EMA se utiliza para determinar la dirección de la tendencia del precio, mientras que el indicador AC se utiliza para confirmar la señal de tendencia para el efecto de filtrado.

Estrategia lógica

La estrategia consta de dos módulos:

  1. Modulo EMA doble

    • Construye un indicador de EMA dual utilizando EMA de 2 días y EMA de 20 días. Una señal de compra se genera cuando el precio cruza por encima de la EMA de 2 días. Una señal de venta se genera cuando el precio cruza por debajo de la EMA de 20 días.

    • Este módulo determina las direcciones de tendencia a corto y mediano plazo para seguir la tendencia básica.

  2. Módulo de CA

    • Utilice los valores positivos y negativos del oscilador de aceleración CA para confirmar las señales de tendencia.

    • Este módulo filtra las señales falsas y mejora la fiabilidad.

En resumen, esta estrategia integra un doble EMA para detectar las principales tendencias y un indicador AC para filtrar las falsas rupturas, formando una tendencia sistemática siguiendo la metodología.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. La doble EMA rastrea las tendencias a mediano y largo plazo mientras que la CA filtra el ruido a corto plazo, un gran efecto combinado.

  2. Excelente efecto de filtración para evitar vender después de obtener ganancias largas o comprar después de obtener ganancias cortas.

  3. Ajuste de parámetros flexible y adaptable a diferentes productos y entornos de mercado.

  4. Lógica estratégica clara, fácil de entender, optimizar y mejorar.

  5. Tendencia decente después del potencial de ganancia para los productos de tendencia.

Análisis de riesgos

Hay algunos riesgos en esta estrategia:

  1. La configuración incorrecta de dos parámetros de la EMA puede hacer que se pierdan tendencias más cortas o generar operaciones redundantes.

  2. Un ajuste incorrecto de los parámetros de CA puede filtrar señales válidas pero más débiles o no filtrar suficiente ruido.

  3. Incapaz de adaptarse a los mercados que cambian rápidamente, como los bruscos choques de estilo acantilado.

  4. La rentabilidad insuficiente en mercados variados, debe utilizarse como estrategia de seguimiento de tendencias.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Prueba más combinaciones de parámetros para encontrar parámetros óptimos que se ajusten a las diferentes características del producto.

  2. Añadir módulo de stop loss para salir en pérdidas de gran tamaño.

  3. Filtra las señales con más indicadores.

  4. Desarrollar estrategias de combinación a largo y corto plazo para rastrear tendencias a mediano y largo plazo, utilizando operaciones a corto plazo para reducir o agregar posiciones a lo largo de la tendencia.

Conclusión

La idea de combinar la doble EMA para tendencia y la AC para filtro de ruido vale la pena aprender. Esta estrategia tiene señales de calidad y confiabilidad, adecuadas para el seguimiento de productos de tendencia. Con el ajuste adecuado de parámetros, se pueden lograr grandes ganancias al montar tendencias utilizando esta estrategia.


/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/01/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The Accelerator Oscillator has been developed by Bill Williams 
// as the development of the Awesome Oscillator. It represents the 
// difference between the Awesome Oscillator and the 5-period moving 
// average, and as such it shows the speed of change of the Awesome 
// Oscillator, which can be useful to find trend reversals before the 
// Awesome Oscillator does.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

AC(nLengthSlow,nLengthFast) =>
    pos = 0.0
    xSMA1_hl2 = ta.sma(hl2, nLengthFast)
    xSMA2_hl2 = ta.sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = ta.sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    cClr = nRes > nRes[1] ? color.blue : color.red
    iff_1 = nRes > 0 ? 1 : nz(pos[1], 0)
    pos := nRes < 0 ? -1 : iff_1           
    pos

strategy(title='Combo 2/20 EMA & Accelerator Oscillator (AC)', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Accelerator Oscillator  ═════●'
nLengthSlow = input(33,  title="Length Slow", group=I2)
nLengthFast = input(6, title="Length Fast", group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)

StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAC = AC(nLengthSlow,nLengthFast)
iff_1 = posEMA20 == -1 and prePosAC == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAC == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
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)

Más.