Estrategia dinámica de cruce de SMMA y SMA


Fecha de creación: 2024-02-02 11:38:08 Última modificación: 2024-02-02 11:38:08
Copiar: 0 Número de Visitas: 788
1
Seguir
1617
Seguidores

Estrategia dinámica de cruce de SMMA y SMA

Descripción general

La estrategia utiliza el cruce de señales de las medias móviles lisas de 50 períodos (SMMA) y las medias móviles simples de 20 períodos (SMA) para determinar el momento de comprar y vender. La estrategia genera una señal de compra cuando la SMA rápida se rompe hacia arriba con la SMA lenta; genera una señal de venta cuando la SMA baja y rompe la SMMA.

Principio de estrategia

  1. Calcula y traza el SMMA de 50 y el SMA de 20 ciclos.
  2. Cuando el SMA rompe el SMMA de abajo hacia arriba, produce una señal de compra; por el contrario, cuando el SMA rompe el SMMA de arriba hacia abajo, produce una señal de venta.
  3. Cuando se producen las señales de compra y venta, se establecen posiciones de “Buy” y “Sell” respectivamente.
  4. Se establecen 150 puntos fijos de paradas para cada posición.
  5. Establezca un stop loss dinámico en el precio de cierre de la línea K siguiente que genere la señal.
  6. Si el precio toca el punto de parada, se detiene; si toca el punto de parada, se detiene.

Análisis de las ventajas

  1. Las estrategias de doble línea son fáciles de manejar, sencillas y fáciles de entender.
  2. SMMA es una mejora de SMA, que capta mejor las tendencias.
  3. La combinación de SMA y SMMA de diferentes períodos permite capturar tendencias al mismo tiempo que las oscilaciones de las ondas.
  4. El uso de stop loss dinámico permite ajustar la posición de stop loss en función de los cambios en las condiciones comerciales y controlar el riesgo de manera efectiva.
  5. La posición de parada preestablecida ayuda a bloquear las ganancias a tiempo.

Análisis de riesgos

  1. Las estrategias de doble línea son propensas a generar señales falsas y son objeto de arbitraje. Las señales pueden filtrarse adecuadamente para evitar operaciones demasiado frecuentes.
  2. La parada fija es fácil de perder. Se puede establecer una parada móvil o una parada de porcentaje de ganancias.
  3. El Stop Loss Dinámico puede ser demasiado cercano en situaciones de fluctuaciones extremas, por lo que el Stop Loss debe ser relajado de manera adecuada.
  4. Tenga en cuenta las diferencias entre las diferentes variedades y los parámetros de ciclo.

Dirección de optimización

  1. se puede probar una combinación de diferentes parámetros (número de ciclos, condiciones de filtración, etc.) para encontrar el parámetro óptimo;

  2. Se puede combinar con otros factores para filtrar la señal, como por ejemplo, un aumento en el volumen de transacciones;

  3. la búsqueda de los parámetros óptimos mediante herramientas de optimización de parámetros;

  4. Se pueden considerar otros métodos de frenado, como el frenado móvil o el frenado proporcional.

  5. El stop loss dinámico se puede calcular combinando con la volatilidad del mercado.

Resumir

La estrategia es sencilla en su funcionamiento general y captura la dirección de la tendencia a través de dos líneas de equilibrio; la aplicación flexible de paradas fijas y paradas dinámicas para bloquear las ganancias y controlar el riesgo, el riesgo y la ganancia y. La estrategia de rebasamiento puede adaptarse aún más al entorno de mercado más amplio mediante la optimización de parámetros y reglas.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true)

// Define 50 SMMA
smma50 = sma(close, 50)

// Define 20 SMA
sma20 = sma(close, 20)

// Plotting the SMMA and SMA
plot(smma50, color=color.blue, title="50 SMMA")
plot(sma20, color=color.red, title="20 SMA")

// Initialize TP and SL variables
tp = 150
var float sl_price = na

// Buy Signal
buySignal = crossover(sma20, smma50)
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price)

// Sell Signal
sellSignal = crossunder(sma20, smma50)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price)

// Update stop loss level on every crossover
if (buySignal or sellSignal)
    sl_price := close[bar_index + 1]

// Plot Stop Loss level
plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)