Estrategia de seguimiento de tendencia de la media móvil MACD doble de Golden Cross Dead Cross

El autor:¿ Qué pasa?, Fecha: 2023-12-22 14:17:34
Las etiquetas:

img

Resumen general

Esta estrategia juzga la tendencia del precio a través del cálculo del promedio móvil rápido, promedio móvil lento e indicador MACD, y construye las señales comerciales de cruz dorada y cruz muerta.

Estrategia lógica

Esta estrategia se basa principalmente en tres indicadores.

Primero, calcula el promedio móvil rápido y dos promedios móviles lentos. Cuando el MA rápido supera los dos MA lentos, se genera una señal de compra. Cuando el MA rápido cae por debajo de los dos MA lentos, se genera una señal de venta. Esto juzga la relación entre las tendencias a corto y largo plazo para realizar el comercio de cruz dorada y cruz muerta.

En segundo lugar, calcula el indicador MACD, incluida la línea MACD, la línea de señal e histograma. Cuando el histograma MACD > 0, es un indicador alcista; cuando el histograma MACD < 0, es un indicador bajista. Esto ayuda a juzgar la confiabilidad de las señales de cruz dorada y cruz muerta.

Por último, incorpora los mecanismos de toma de ganancias, stop loss y trailing stop loss.

Ventajas

Las ventajas de esta estrategia incluyen:

  1. Cruz dorada, cruz muerta combinada con el MACD juzgan con fiabilidad la tendencia de los precios.
  2. Los puntos de stop loss evitan pérdidas ampliadas.
  3. Los movimientos de stop loss de seguimiento se mueven automáticamente para bloquear las ganancias continuamente y maximizar las ganancias de tendencia.
  4. Configuración de parámetros flexibles como los períodos de media móvil personalizados.

Los riesgos

También hay algunos riesgos:

  1. Las perturbaciones de precios pueden desencadenar puntos de stop loss.
  2. El funcionamiento a largo plazo de los stop loss de trailing requiere un seguimiento continuo y un ajuste oportuno.
  3. La configuración incorrecta de los parámetros puede dar lugar a un exceso de operaciones o a operaciones perdidas.

Las soluciones son:

  1. Establezca los puntos de parada de pérdida adecuados para evitar pérdidas innecesarias.
  2. Verifique y optimice regularmente los parámetros.
  3. Intervención manual y seguimiento del estado.

Direcciones de optimización

La estrategia también puede optimizarse en los siguientes aspectos:

  1. Agregue más indicadores como el RSI para hacer las señales más confiables.
  2. Optimizar los parámetros de la media móvil para adaptarlos a los diferentes instrumentos de negociación.
  3. Agregue algoritmos de parada dinámicos para hacer que los puntos de parada cambien con el mercado.
  4. Añadir módulos de dimensionamiento de posiciones y gestión de riesgos.

Resumen de las actividades

En resumen, esta es una estrategia simple pero efectiva que utiliza la cruz dorada, la cruz muerta y el MACD para juzgar la tendencia y realizar el stop loss trasero. Las ventajas son el seguimiento de la tendencia y el bloqueo de ganancias con una alta personalización. Es una estrategia de optimización de parámetros universal adecuada para diferentes instrumentos comerciales. Todavía hay algunos riesgos y espacio de optimización, pero en general es una estrategia comercial confiable y práctica.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy('The Puria Method', shorttitle = 'Puria',overlay = true)

//=== GENERAL INPUTS ===

// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 5, title = "Fast MA Period", minval = 1)

// long ma 1
maSlow1Source   = input(defval = low, title = "Slow MA1 Source")
maSlow1Length   = input(defval = 85, title = "Slow MA Period", minval = 1)

// long ma 2
maSlow2Source   = input(defval = low, title = "Slow MA2 Source")
maSlow2Length   = input(defval = 75, title = "Slow MA Period", minval = 1)

//macd
macdFastLength   = input(defval = 12, title = "Fast MACD Period", minval = 1)
macdSlowLength   = input(defval = 26, title = "Slow MACD Period", minval = 1)
macdSmaLength   = input(defval = 9, title = "SMA MACD Period", minval = 1)

// the risk management inputs
inpTakeProfit   = input(defval = 30, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 10, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 5, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)

// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

// === SERIES SETUP ===
maFast = ema(maFastSource, maFastLength)
maSlow1 = wma(maSlow1Source, maSlow1Length)
maSlow2 = wma(maSlow2Source, maSlow2Length)
[_, signal, histLine] = macd(close, macdFastLength, macdSlowLength, macdSmaLength)

// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow1 = plot(maSlow1, title = "Slow MA1", color = red, linewidth = 2, style = line, transp = 50)
slow2 = plot(maSlow2, title = "Slow MA2", color = red, linewidth = 2, style = line, transp = 50)

// === LOGIC ===
signalUp = crossover(maFast, maSlow1) and crossover(maFast, maSlow2) and histLine > 0
signalDown = crossunder(maFast, maSlow1) and crossunder(maFast, maSlow2) and histLine < 0

// ===STRATEGY===
strategy.entry(id = "Long", long = true, when = signalUp) 
strategy.entry(id = "Short", long = false, when = signalDown)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

Más.