Estrategia de trading combinada basada en bandas de Bollinger, media móvil y MACD


Fecha de creación: 2024-02-04 15:42:23 Última modificación: 2024-02-04 15:42:23
Copiar: 0 Número de Visitas: 815
1
Seguir
1617
Seguidores

Estrategia de trading combinada basada en bandas de Bollinger, media móvil y MACD

Descripción general de la estrategia

La estrategia combina los tres indicadores de las bandas de Brin, las medias móviles y el MACD para formar un sistema de negociación más completo. Al mismo tiempo que determina la tendencia del mercado, también puede aprovechar algunas oportunidades de reversión.

Nombre y principios de la estrategia

El nombre de esta estrategia es el de Triángulo de Anillo de Anillo de Seguimiento de Tendencias de Anillo de Anillo. El nombre destaca su uso de tres indicadores técnicos al mismo tiempo para determinar la dirección de la tendencia y el punto de entrada en el mercado de Anillo de Anillo.

La lógica básica de las transacciones es:

  1. Determina la dirección de la tendencia. Compara el eje cero de la media de la banda de Brin, la media móvil EMA y el MACD para determinar si el mercado se encuentra actualmente en una fase de más o menos cabeza.

  2. Buscar el momento de salida. Una vez que se determina la tendencia de los más altos o bajos, la estrategia determina la entrada en el mercado en función de si la media móvil EMA ha roto la órbita media de Brin y si la línea de la columna MACD es positiva o negativa hacia la línea de señal de ruptura.

  3. Establezca el punto de parada y el punto de parada. Una vez dentro de la cancha, se prefieren el punto de parada y el punto de parada fijos.

Análisis de las ventajas estratégicas

La mayor ventaja de esta estrategia es que utiliza tres tipos diferentes de indicadores técnicos para guiar la decisión al mismo tiempo: tendencia, línea media y MACD. Esto le permite juzgar con mayor precisión el movimiento del mercado y aprovechar algunas oportunidades de reversión.

En primer lugar, las líneas orbitales de la banda de Brin reflejan claramente la dirección de la tendencia principal en la etapa actual. La función de las líneas uniformes de la EMA es seguir el funcionamiento de la tendencia. Su comparación y combinación permiten juzgar con mayor precisión la situación actual de las cabezas múltiples y las cabezas vacías.

En segundo lugar, la banda de Brin es en sí misma de gran capacidad de inclusión. Cerca de la línea de media órbita también se reflejan ciertos puntos de presión de soporte, por lo que la ruptura de la línea EMA tiene un cierto valor de señal.

Además, la inclusión de MACD también muestra el consumo de energía de la atmósfera. Su tamaño en valores absolutos representa la emoción de las masas, alta o baja, y también puede indicar la posibilidad de una reversión.

Por último, la estrategia prevé condiciones de stop-loss que permiten controlar el riesgo-beneficio de las operaciones individuales, lo que garantiza la estabilidad general.

Análisis de riesgos estratégicos

A pesar de la combinación de varias herramientas analíticas, los principales riesgos son los siguientes:

  1. Los parámetros de la banda de Bryn están mal configurados y la línea de la órbita media no refleja claramente la tendencia principal.

  2. El sistema de línea media emite señales de múltiples cabezas, pero el MACD no se ha corregido claramente, y la fuerza de la cabeza vacía podría ampliarse.

  3. El rango de stop loss es demasiado amplio y puede aumentar las pérdidas individuales.

Las principales soluciones son:

  1. Ajustar los parámetros de la banda de Bryn para asegurar que la línea media refleje efectivamente la tendencia principal.

  2. La introducción de más indicadores técnicos para la determinación de la energía en el espacio.

  3. Evaluar el historial de operaciones y optimizar los parámetros de stop-loss.

Dirección de optimización de la estrategia

La estrategia puede ser mejorada en los siguientes aspectos:

  1. La introducción de más indicadores en el juicio de tendencias. Los juicios auxiliares como KDJ, ATR y otros, mejoran la precisión del juicio.

  2. Establezca un modo de deterioro más detallado en el nivel operativo, como el deterioro móvil, el aumento del porcentaje de deterioro después de romper un nuevo alto (<<).

  3. Evaluar el rendimiento de las diferentes variedades. Ajustar los parámetros para adaptarse a más características de la práctica.

  4. Los resultados de las pruebas y las evaluaciones de los diferentes marcos de tiempo y de los mercados fueron evaluados. Se ajustaron los parámetros correspondientes.

  5. Se añaden algoritmos de aprendizaje automático para optimizar automáticamente los parámetros y actualizar dinámicamente las reglas de la estrategia.

Resumir

Esta estrategia utiliza los tres principales indicadores técnicos de la banda de Brin, las medias móviles y el MACD al mismo tiempo. Se trata de una estrategia de tendencia clara, con cierta inclusión, que también puede aprovechar algunas oportunidades de reversión. Se espera obtener un rendimiento comercial más estable mediante la introducción de más herramientas auxiliares para juzgar y optimizar las estrategias de stop loss.

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

//@version=5
strategy("Combined Strategy", overlay=true, shorttitle="Comb Strat", default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Precio de beneficio y Stop Loss
takeProfitTicks = 87636
stopLossTicks = 53350

// Bollinger Bands + EMA
length_bb = input(150, title="BB Length")
src_bb = input(close, title="BB Source")
mult = input(2.0, title="BB StdDev")
basis = ta.sma(src_bb, length_bb)
dev = mult * ta.stdev(src_bb, length_bb)
upper = basis + dev
lower = basis - dev

len_ema = input(34, title="EMA Length")
src_ema = input(close, title="EMA Source")
out_ema = ta.ema(src_ema, len_ema)

typeMA = input("SMA", title="Method")
smoothingLength = input(5, title="Length")

var float smoothingLine = na
if (typeMA == "SMA")
    smoothingLine := ta.sma(out_ema, smoothingLength)
else if (typeMA == "EMA")
    smoothingLine := ta.ema(out_ema, smoothingLength)

// MACD
fast_length = input(title="Fast Length", defval=9)
slow_length = input(title="Slow Length", defval=17)
src_macd = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

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

// Condiciones de compra y venta
longCondition = (out_ema > basis) and (macd > signal) and (signal > 0)
shortCondition = (out_ema < basis) and (macd < signal) and (signal < 0)

// Variables de estado
var bool longExecuted = na
var bool shortExecuted = na

// Estrategia
if (longCondition and not longExecuted)
    strategy.entry("Long", strategy.long)
    longExecuted := true
    shortExecuted := na
if (shortCondition and not shortExecuted)
    strategy.entry("Short", strategy.short)
    shortExecuted := true
    longExecuted := na

// Take Profit y Stop Loss para Compras y Ventas Cortas
strategy.exit("Take Profit/Close Long", from_entry="Long", profit=takeProfitTicks, loss=stopLossTicks)
strategy.exit("Take Profit/Close Short", from_entry="Short", profit=takeProfitTicks, loss=stopLossTicks)

// Cierre de posiciones cuando la dirección cambia
if ((out_ema < basis) and (macd < signal))
    strategy.close("Long")
    longExecuted := na
if ((out_ema > basis) and (macd > signal))
    strategy.close("Short")
    shortExecuted := na

// Plots
plot(basis, "BB Basis", color=#FF6D00)
plot(upper, "BB Upper", color=color.new(#2962FF, 0.5))
plot(lower, "BB Lower", color=color.new(#2962FF, 0.5))

plot(smoothingLine, title="Smoothing Line", color=#f37f20, linewidth=2)

hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist[1] < hist ? color.green : color.red) : (hist[1] < hist ? color.red : color.green)))
plot(macd, title="MACD", color=color.blue)
plot(signal, title="Signal", color=color.orange)