Estrategia de ciclo de Els basada en suavizado de señales


Fecha de creación: 2024-02-19 10:42:34 Última modificación: 2024-02-19 10:42:34
Copiar: 2 Número de Visitas: 627
1
Seguir
1617
Seguidores

Estrategia de ciclo de Els basada en suavizado de señales

Descripción general

Esta estrategia diseña una estrategia de comercio en el ciclo de Ehlers para suavizar las señales de comercio mediante el cálculo de señales de precios tratadas con suavidad, combinadas con la teoría de indicadores de ciclo propuesta por Ehlers. Esta estrategia puede filtrar eficazmente el ruido del mercado y generar señales de comercio más confiables.

Principio de estrategia

  1. La señal de precio original src es suavizada en segundo grado, obteniendo una señal suave.

  2. El ciclo se calcula a partir de la señal de suavización. El método de cálculo es: cycle := (1 - .5 alpha) (1 - .5 alpha) (smooth - 2 smooth[1] + smooth[2]) + 2 (1 - alpha) cycle[1] - (1 - alpha) (1 - alpha) * cycle[2]

Donde α es el parámetro de suavizado。

  1. El indicador de ciclo se suaviza en un índice de una etapa y se obtiene una señal de negociación final. La forma de cálculo es: signal := alpha2 cycle + (1 - alpha2) nz(signal[1])

Donde α2 es el parámetro de suavizado de un grado.

  1. Cuando la señal pasa por la señal[1] hacer más; cuando signal debajo de la señal[1] cuando hay tiempo libre.

Análisis de las ventajas estratégicas

  1. La suavización de la segunda fase de la señal de precio puede filtrar eficazmente el ruido de alta frecuencia, lo que hace que la señal de negociación sea más confiable.

  2. Aplicando la teoría de los indicadores de los ciclos de Els, se puede determinar con mayor precisión el punto de conversión de las tendencias del mercado.

  3. El índice de primera etapa se filtra suavemente para eliminar parte del ruido de los indicadores circulares y generar una señal de negociación más confiable.

  4. Todo el proceso de estrategia es racional, científico, el espacio para la optimización de parámetros es grande, el rendimiento del disco es excelente.

Análisis de riesgos

  1. Al igual que otras estrategias de indicadores técnicos, esta estrategia también es más sensible al riesgo sistemático del mercado. En caso de un evento de gran escudo negro, puede generar grandes pérdidas.

  2. Debido a que el proceso de cálculo es más complejo, la configuración incorrecta de los parámetros puede causar un retraso en el cálculo, lo que afecta el rendimiento del disco. Se requiere una prueba cuidadosa para asegurar que la configuración de los parámetros sea científica.

  3. La suavización también puede provocar un retraso en las señales de negociación, y puede no ser capaz de capturar los puntos de inflexión del mercado a tiempo, lo que le permite perder oportunidades.

Dirección de optimización de la estrategia

  1. Se pueden probar diferentes tipos de algoritmos de suavizado, como la suavización de un grado, la suavización de la línea media, etc., para encontrar la solución de suavización óptima.

  2. Se puede introducir un mecanismo de ajuste de parámetros adaptativos, que ajustan los parámetros de forma dinámica según las condiciones del mercado, para mejorar la robustez de la estrategia.

  3. Se pueden diseñar estrategias de stop loss y stop-loss para reducir el riesgo de pérdidas individuales y, al mismo tiempo, bloquear los beneficios.

  4. Se pueden incorporar modelos de aprendizaje automático de autres para implementar combinaciones de modelos que utilizan otros modelos para filtrar señales de transacción.

Resumir

Esta estrategia diseña una estrategia de comercio de ciclo de Ells para suavizar las señales de negociación mediante la suavización de las señales de precio y el cálculo de los indicadores del ciclo de Ells. Esta estrategia puede filtrar eficazmente el ruido y generar una señal de negociación más confiable.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ehlers Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
src = input(hl2, title = "Source") 
alpha = input(.07, title = "Alpha")
lag = input(9, title = "Lag")
smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6

cycle = na
if na(cycle[7])
    cycle := (src - 2 * src[1] + src[2]) / 4
else
    cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2]

alpha2 = 1 / (lag + 1)
signal = na
signal := alpha2 * cycle + (1 - alpha2) * nz(signal[1])
oppositeTrade = input(true)
barsSinceEntry = 0
barsSinceEntry := nz(barsSinceEntry[1]) + 1
if strategy.position_size == 0
    barsSinceEntry := 0
if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1]))
    strategy.entry("Long", strategy.long)
    barsSinceEntry := 0
if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1]))
    strategy.entry("Short", strategy.short)
    barsSinceEntry := 0
if strategy.openprofit < 0 and barsSinceEntry > 8
    strategy.close_all()
    barsSinceEntry := 0
    
    
plot(0, title="ZeroLine", color=gray) 
plotSrc = signal
cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue)
triggerPlot = plot(plotSrc[1], title = "Trigger", color = green)
fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)