Sistema de seguimiento de tendencias de ruptura de medias móviles Advantage


Fecha de creación: 2023-11-15 11:00:25 Última modificación: 2023-11-15 11:00:25
Copiar: 0 Número de Visitas: 536
1
Seguir
1617
Seguidores

Sistema de seguimiento de tendencias de ruptura de medias móviles Advantage

Descripción general

Esta estrategia es un sistema de seguimiento de tendencias clásico. Utiliza el forko de oro de las medias móviles para determinar la dirección de la tendencia y entrar en juego cuando se rompe el canal de Dongxian. La configuración de los parámetros del canal de Dongxian a 50 días filtra eficazmente el ruido del mercado a corto plazo.

Principio de estrategia

La estrategia se basa principalmente en los siguientes puntos:

  1. El indicador de tendencia se construye con promedios móviles de 40 y 120 días. Cuando la línea rápida atraviesa la línea lenta desde abajo, es una señal de horquilla, lo que indica que se entra en una tendencia alcista; cuando la línea rápida atraviesa la línea lenta desde arriba, es una señal de horquilla, lo que indica que se entra en una tendencia bajista.

  2. El parámetro del canal de Dongxian está establecido en 50 días, filtrando las fluctuaciones a corto plazo del mercado. Solo haga más cuando el precio rompa la vía ascendente y haga vacío cuando rompa la vía descendente, para evitar ser atrapado.

  3. El punto de parada se establece como el ATR 4 veces por debajo del precio. El ATR es una medida eficaz de la volatilidad y el riesgo del mercado, y el stop loss se establece como un determinado múltiplo que permite controlar las pérdidas de una sola transacción.

  4. Las medias móviles indicativas están más en consonancia con la tendencia actual de los precios, mientras que las medias móviles simples son demasiado suaves.

  5. El plazo de 50 días en el canal se utiliza en combinación con la línea media de 40 y 120 días, lo que permite filtrar con eficacia la brecha falsa.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La combinación de promedios móviles puede determinar eficazmente la dirección de la tendencia del mercado. La línea media de 40 días puede capturar tendencias a corto plazo, y la línea media de 120 días puede determinar tendencias a medio plazo.

  2. El canal de Dongxian filtra el ruido y evita la persecución de los altos y bajos. Sólo los precios pueden entrar a través del canal de ruptura y evitar de manera efectiva las zonas de agitación en el centro del mercado de operaciones.

  3. Los puntos de parada se establecen de manera razonable para controlar las pérdidas de una sola operación y evitar el estallido de la posición. El control de las pérdidas individuales puede garantizar la sostenibilidad de las ganancias.

  4. Los promedios móviles de índice se ajustan mejor a la tendencia de los cambios de precios, y el tiempo de tenencia del sistema puede ser más largo, de acuerdo con la idea de negociación de tendencias.

  5. La selección de los parámetros de la media móvil tiene en cuenta la sensibilidad de la captura de tendencias y la estabilidad del ruido filtrado.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Riesgo de mantener una posición a largo plazo: Esta estrategia es una estrategia de seguimiento de tendencias y se enfrentará a grandes pérdidas si se produce un ajuste horizontal a largo plazo o si la tendencia se invierte.

  2. Riesgo de Falsa Breakout: Cuando los precios tocan cerca de la entrada, puede haber una cierta proporción de falsa breakout, lo que lleva a transacciones innecesarias.

  3. Riesgo de configuración de parámetros: la configuración de los parámetros de las medias móviles y de los canales es demasiado subjetiva, y los diferentes mercados necesitan ajustar la combinación de parámetros, lo que afecta la estabilidad del sistema.

  4. El riesgo de que el punto de parada sea demasiado pequeño: el punto de parada establecido es demasiado pequeño, y se enfrentará a demasiadas salidas de parada, lo que afectará a las ganancias.

Resolución de las mismas:

  1. La prudencia en la hora de mantener las posiciones evita el riesgo de mantenerlas durante mucho tiempo.
  2. Optimización de los parámetros para que la señal de ruptura sea más estable y fiable.
  3. Prueba los datos de los diferentes mercados y optimiza la combinación de parámetros.
  4. Ahorre el punto de parada adecuadamente para evitar que se detenga con demasiada frecuencia.

Dirección de optimización

Esta estrategia puede ser optimizada en las siguientes direcciones:

  1. Prueba combinaciones de diferentes medias para encontrar la combinación óptima de parámetros. Puede probar combinaciones de promedios móviles, como promedios simples, índices y Hull.

  2. Optimización de los ciclos y parámetros del canal para que las señales de ruptura sean más efectivas. Se puede optimizar en combinación con la frecuencia de fluctuación del mercado.

  3. Optimización de las estrategias de stop loss, uso de stop loss de seguimiento de tendencias durante el funcionamiento de la tendencia, y uso de stop loss fijo después de la finalización de la tendencia.

  4. El uso de indicadores como MACD, KD y otros para la verificación de múltiples factores mejora la precisión de la señal.

  5. Aumentar las estrategias de gestión de posiciones, aumentar las posiciones durante el funcionamiento de la tendencia y optimizar los beneficios.

  6. Seleccionar la combinación de parámetros de acuerdo con las características de las diferentes variedades para que los parámetros del sistema sean más robustos.

Resumir

La estrategia en su conjunto es típica y sencilla como un sistema de seguimiento de tendencias. El núcleo está en el uso de medias móviles y filtros de ruptura de canales. La estrategia de parada de pérdidas también es clásica y práctica.

Código Fuente de la Estrategia
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
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/
// © Robrecht99

//@version=5
strategy("Long Term Trend Following System", overlay=true, margin_long=0, margin_short=0, pyramiding=4)

// Backtest Range //

Start = input(defval = timestamp("01 Jan 2017 00:00 +0000"), title = "Backtest Start Date", group = "backtest window")
Finish = input(defval = timestamp("01 Jan 2100 00:00 +0000"), title = "Backtest End Date", group = "backtest window")

//Moving Averages //

len1 = input.int(40, minval=1, title="Length Fast EMA", group="Moving Average Inputs")
len2 = input.int(120, minval=1, title="Length Slow EMA", group="Moving Average Inputs")
src1 = input(close, title="Source Fast MA")
src2 = input(close, title="Source Slow MA")
maFast = input.color(color.new(color.red, 0), title = "Color Fast EMA", group = "Moving Average Inputs", inline = "maFast")
maSlow = input.color(color.new(color.blue, 0), title = "Color Slow EMA", group = "Moving Average Inputs", inline = "maSlow")
fast = ta.ema(src1, len1)
slow = ta.ema(src2, len2)
plot(fast, color=maFast, title="Fast EMA")
plot(slow, color=maSlow, title="Slow EMA")

// Donchian Channels //

Length1 = input.int(title="Length Upper Channel", defval=50, minval=1, group="Donchian Channels Inputs")
Length2 = input.int(title="Length Lower Channel", defval=50, minval=1, group="Donchian Channels Inputs")
h1 = ta.highest(high[1], Length1)
l1 = ta.lowest(low[1], Length2)
fillColor = input.color(color.new(color.purple, 95), title = "Fill Color", group = "Donchian Channels Inputs")
upperColor = input.color(color.new(color.orange, 0), title = " Color Upper Channel", group = "Donchian Channels Inputs", inline = "upper")
lowerColor = input.color(color.new(color.orange, 0), title = " Color Lower Channel", group = "Donchian Channels Inputs", inline = "lower")
u = plot(h1, "Upper", color=upperColor)
l = plot(l1, "Lower", color=upperColor)
fill(u, l, color=fillColor)
strategy.initial_capital = 50000
//ATR and Position Size //

length = input.int(title="ATR Period", defval=14, minval=1, group="ATR Inputs")
risk = input(title="Risk Per Trade", defval=0.01, group="ATR Inputs")
multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs")
atr = ta.atr(length)
amount = (risk * strategy.initial_capital / (multiplier * atr))

// Buy and Sell Conditions //

entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast

// Buy and Sell Signals //

if (close > h1 and entrycondition2)
    strategy.entry("long", strategy.long, qty=amount)
    stoploss = close - atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (sellcondition1 and sellcondition2)
    strategy.close(id="long")

if (close < l1 and sellcondition2)
    strategy.entry("short", strategy.short, qty=amount)
    stoploss = close + atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (entrycondition1 and entrycondition2)
    strategy.close(id="short")