Supertrend doble con estrategia de negociación combinada MACD

El autor:¿ Qué pasa?, Fecha: 2023-09-26 17:45:03
Las etiquetas:

Resumen general

La estrategia de negociación de combinación de doble SuperTrend con MACD incorpora dos indicadores de seguimiento de tendencias (SuperTrend 1 y SuperTrend 2) con un oscilador de impulso (MACD) para proporcionar un enfoque sistemático de la negociación sin toma de decisiones discrecionales.

Las principales ventajas de esta estrategia:

  • Validación doble de la SuperTendencia: el uso de dos indicadores de la SuperTendencia con períodos y factores ATR diferentes para confirmar la dirección de la tendencia minimiza las señales falsas.

  • Confirmación del momento - El histograma MACD actúa como un filtro de momento para validar entradas y salidas.

  • Objetivo Reglas de entrada y salida - La estrategia genera señales claras de compra y venta basadas en la combinación de tendencia e impulso.

  • Gestión automática de operaciones - Configuraciones integradas para comisión, deslizamiento y capital inicial automatizan el proceso de ejecución de operaciones.

  • Personalizabilidad: todos los parámetros se pueden personalizar fácilmente para satisfacer las necesidades comerciales específicas y las condiciones cambiantes del mercado.

Cómo funciona

La estrategia se basa en un conjunto de reglas definidas, centrándose principalmente en la dirección de la tendencia confirmada por el Dual SuperTrend y el impulso indicado por el histograma MACD.

Reglas de entrada

  • Entrada larga: tanto el SuperTrends alcista como el histograma MACD por encima de cero.

  • Entrada corta: Tanto el histograma de las SuperTendencias bajistas como el MACD están por debajo de cero.

Reglas de salida

  • Salida larga: o la SuperTendencia se vuelve bajista o el histograma MACD cae por debajo de cero.

  • Salida corta: o bien SuperTrend se vuelve alcista o el histograma MACD se eleva por encima de cero.

Gestión del comercio

  • Tasa de comisión fija y ajustes de deslizamiento.

  • Gestión de riesgos automotrices para evitar la sobreexposición.

Dirección de negociación

La estrategia permite operar tanto en mercados alcistas como bajistas. Los usuarios pueden elegir la dirección (larga, corta o ambas) que se alinee con su visión del mercado.

Utilización

  • Es mejor aplicarlo en los períodos de tiempo en que la tendencia es evidente.

  • Los usuarios pueden personalizar los parámetros de SuperTrend y MACD.

Configuración predeterminada

  • SuperTrend 1 período de ATR: 10

  • Super Tendencia 1 Factor: 3.0

  • SuperTrend 2 ATR Período: 20

  • SuperTrend 2 Factor: 5,0

  • El MACD tiene una longitud rápida de 12

  • El MACD de la longitud lenta: 26

  • El nivel de la señal MACD: 9

  • Comisión: 0,1%

  • Deslizamiento: 1 punto

  • Dirección: Ambos

Los parámetros predeterminados ofrecen un enfoque equilibrado, pero se pueden personalizar.

Ventajas

Las principales ventajas de esta estrategia:

  1. La validación de tendencias dobles minimiza las señales falsas

El uso de dos indicadores de SuperTendencia reduce significativamente las señales falsas en comparación con las estrategias de un solo indicador.

  1. El filtro de impulso MACD mejora la precisión

El histograma MACD filtra las señales comerciales menos ideales, mejorando la precisión de entrada.

  1. Control efectivo de la utilización

La combinación de indicadores de tendencia duales permite salidas rápidas cuando la tendencia cambia, lo que ayuda a controlar las reducciones.

  1. Alto grado de automatización, sin necesidad de discreción

Las reglas de entrada y salida bien definidas eliminan las interpretaciones subjetivas y los errores humanos.

  1. Altamente personalizable para una aplicabilidad más amplia

Los parámetros ajustables hacen que esta estrategia sea robusta para diferentes instrumentos y preferencias comerciales.

Riesgos y optimización

Los riesgos potenciales incluyen:

  1. Dificultad en las transiciones dinámicas de tendencia

Las inversiones de tendencia frecuentes pueden suponer un reto para la configuración del indicador de tendencia dual.

  1. Control limitado del aprovechamiento en situaciones de fuerte tendencia

El stop loss puede retrasarse en movimientos de tendencia fuertes, lo que conduce a mayores bajadas.

  1. Incapacidad para reaccionar a eventos repentinos

No puede adaptarse rápidamente a los eventos del cisne negro, aumentando los riesgos de retirada.

Oportunidades de optimización:

  1. Parámetros de afinación fina para diferentes instrumentos.

  2. Agregue mecanismos de stop loss como trailing stops para controlar aún más las reducciones.

  3. Incorporar otros indicadores para identificar eventos repentinos y reducir los retiros.

Conclusión

En resumen, la estrategia de combinación Dual SuperTrend y MACD combina los puntos fuertes de la tendencia de seguimiento y el análisis de impulso. Con reglas claras y un alto grado de automatización, puede filtrar eficazmente el ruido y proporcionar una gran utilidad práctica. Pero el control de descenso y la optimización de parámetros deben abordarse. En general, este es uno de los mejores ejemplos de una estrategia de negociación de tendencias sistemática.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 30m
basePeriod: 15m
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/
// © PresentTrading

//@version=5
// Define the strategy settings
// strategy("Dual-Supertrend with MACD - Strategy [presentTrading]", overlay=true, precision=3, default_qty_type=strategy.cash, 
//  commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
//   currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Trading Direction Dropdown
tradeDirection = input.string("both", "Trading Direction", options=["long", "short", "both"])

// MACD Inputs
fast_length = input(12, "Fast Length")
slow_length = input(26, "Slow Length")
signal_length = input(9, "Signal Smoothing")
sma_source = input.string("EMA", "Oscillator MA Type", options=["SMA", "EMA"])
sma_signal = input.string("EMA", "Signal Line MA Type", options=["SMA", "EMA"])


// MACD Calculation
fast_ma = sma_source == "SMA" ? ta.sma(close, fast_length) : ta.ema(close, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(close, slow_length) : ta.ema(close, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Input Parameters for Supertrend 1
atrPeriod1 = input(10, "ATR Length for Supertrend 1")
factor1 = input.float(3.0, "Factor for Supertrend 1", step=0.01)

// Supertrend Calculation for 1
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)

// Input Parameters for Supertrend 2
atrPeriod2 = input(20, "ATR Length for Supertrend 2")
factor2 = input.float(5.0, "Factor for Supertrend 2", step=0.01)

// Supertrend Calculation for 2
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)

// Combined Conditions
isBullish = direction1 < 0 and direction2 < 0 and hist > 0
isBearish = direction1 > 0 and direction2 > 0 and hist < 0
exitLong = direction1 > 0 or direction2 > 0 or hist < 0
exitShort = direction1 < 0 or direction2 < 0 or hist > 0

// Strategy Entry and Exit based on Trading Direction
if (tradeDirection == "both" or tradeDirection == "long")
    strategy.entry("Buy", strategy.long, when=isBullish)
    strategy.close("Buy", when=exitLong)

if (tradeDirection == "both" or tradeDirection == "short")
    strategy.entry("Sell", strategy.short, when=isBearish)
    strategy.close("Sell", when=exitShort)

bodyMiddle1 = plot((open + close) / 2, display=display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend1 = plot(direction1 < 0? na : supertrend1, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle1, upTrend1, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle1, downTrend1, color.new(color.red, 90), fillgaps=false)

bodyMiddle2 = plot((open + close) / 2, display=display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend2 = plot(direction2 < 0? na : supertrend2, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle2, upTrend2, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle2, downTrend2, color.new(color.red, 90), fillgaps=false)

Más.