Estrategia de negociación combinada de impulso y supertendencia

El autor:¿ Qué pasa?, Fecha: 2023-12-27 16:37:58
Las etiquetas:

img

1. Resumen de la estrategia

La estrategia se llama Momentum y SuperTrend Combination Trading Strategy. La idea principal de esta estrategia es combinar el indicador Momentum con el indicador SuperTrend para aprovechar ambos indicadores para entradas y salidas más precisas.

Específicamente, el indicador de Momentum se utiliza para juzgar la aceleración o desaceleración de los movimientos de precios y los cambios en las tendencias.

2. Principio de estrategia detallada

  1. Parte del indicador de impulso

    Calcular el valor del momento de N días del precio y calcular el momento de 1 día del valor del momento. Cuando el momento de N días > 0 y el momento de 1 día > 0, es una señal larga; cuando el momento de N días < 0 y el momento de 1 día < 0, es una señal corta.

  2. Parte del indicador SuperTrend

    Calcular el valor ATR del precio, y dibujar la línea del canal ascendente y la línea del canal descendente basado en ATR. Cuando el precio rompe el canal ascendente desde abajo, es una señal larga, y cuando el precio rompe el canal descendente desde arriba, es una señal corta.

  3. Lógico de entrada

    Tomar la operación AND de la señal larga del indicador de momento y la señal larga de la SuperTendencia para generar la señal de entrada larga final cuando ambas ocurren al mismo tiempo; Tomar la operación AND de la señal corta del indicador de momento y la señal corta de la SuperTendencia para generar la señal de entrada corta final cuando ambas ocurren al mismo tiempo.

3. Análisis de las ventajas

  1. Utilice indicadores de impulso para determinar la aceleración o la desaceleración de los movimientos de precios para capturar los puntos de inversión de tendencia.

  2. Utilice los indicadores de SuperTendencia para determinar los canales de ruptura de precios para capturar los puntos de ruptura.

  3. La verificación mutua de dos tipos de indicadores puede reducir las señales falsas y mejorar la exactitud de las entradas.

  4. La combinación de la lógica de salida de los dos indicadores permite el seguimiento de la tendencia de salida para evitar una salida prematura.

4. Análisis de riesgos

  1. La configuración incorrecta de los parámetros del indicador de impulso de N días puede perder los puntos de inversión de tendencia.

  2. La configuración incorrecta de los parámetros de SuperTrend puede dar lugar a dibujos de canales inexactos y señales falsas.

  3. La verificación mutua de los dos indicadores puede perder algunas oportunidades.

  4. La combinación de parámetros debe ajustarse para encontrar el par de parámetros óptimo para maximizar el potencial de la estrategia.

Soluciones correspondientes:

  1. Utilice el análisis de avanzada para encontrar los parámetros óptimos.

  2. Añadir módulo de optimización de parámetros para la optimización de parámetros en tiempo real.

  3. Ajuste la lógica de combinación de los dos indicadores y considere de manera exhaustiva.

5. Direcciones de optimización

  1. Añadir módulo de optimización de parámetros adaptativos para el ajuste en tiempo real de acuerdo con las condiciones del mercado

  2. Añadir un modelo de aprendizaje automático para ayudar a juzgar la precisión de las señales de indicadores

  3. Ampliar más indicadores para formar un conjunto de indicadores y utilizar el mecanismo de votación para generar señales de entrada

  4. Utilice modelos de aprendizaje profundo en lugar de indicadores tradicionales para juicios basados en datos sobre el momento de entrada y salida

6. Resumen

Esta estrategia combina las fortalezas de los indicadores de Momentum y SuperTrend a través de la doble verificación para mejorar la precisión de las Entradas, y utiliza indicadores para juzgar el momento de las Salidas. En comparación con el uso único de indicadores, puede reducir las señales falsas y lograr tasas de ganancia más altas. A través de la optimización de parámetros, el aprendizaje automático y otras tecnologías de extensión, todavía hay espacio para mejorar aún más la efectividad de la estrategia y merece una investigación y aplicación en profundidad.


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

//@version=4
strategy("Momentum + SuperTrend Strategy", overlay=true)

// Momentum Strategy
length = input(12)
price = close
momentum(seria, length) =>
    mom = seria - seria[length]
    mom
mom0 = momentum(price, length)
mom1 = momentum(mom0, 1)
momLongCondition = mom0 > 0 and mom1 > 0
momShortCondition = mom0 < 0 and mom1 < 0

// SuperTrend Strategy
Periods = input(10)
Multiplier = input(3.0)
changeATR = input(true)
src = input(hl2)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1

// Combined Entry Conditions
longCondition = momLongCondition and buySignal
shortCondition = momShortCondition and sellSignal

// Strategy Entries
if (longCondition)
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
    strategy.cancel("MomLE")

if (shortCondition)
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
    strategy.cancel("MomSE")

// Plot SuperTrend on the chart
upPlot = plot(trend == 1 ? up : na, title="SuperTrend Up", color=color.green, linewidth=2)
dnPlot = plot(trend == -1 ? dn : na, title="SuperTrend Down", color=color.red, linewidth=2)

// Highlight the SuperTrend region
fill(upPlot, dnPlot, color = trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="SuperTrend Highlight")

// Plot SuperTrend Buy/Sell signals on the chart
plotshape(series=buySignal, title="SuperTrend Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="SuperTrend Sell Signal", color=color.red, style=shape.triangledown, size=size.small)
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © naveen1119

Más.