Estrategia de avance de la línea media

El autor:¿ Qué pasa?, Fecha: 2024-02-23 14:46:37
Las etiquetas:

img

Resumen general

La estrategia de avance de la línea media es una estrategia comercial cuantitativa típica que rastrea las tendencias.

Principio de la estrategia

La estrategia primero calcula el promedio móvil simple SMA de N días (default de 50 días) y luego calcula la desviación estándar StdDev del precio en función del SMA para este ciclo. Con el SMA como eje central y los carriles superior e inferior como 2 veces el StdDev, se construye el canal de desviación estándar. Cuando el precio supera el carril superior, vaya corto; cuando el precio cae por debajo del carril inferior, vaya largo.

Después de entrar en el mercado, la estrategia establecerá puntos de stop loss y take profit. Específicamente, después de ir largo, la línea de stop loss es el precio de cierre en el momento de la entrada (100 - porcentaje de stop loss); después de ir corto, la línea de take profit es el precio de cierre en el momento de la entrada (100 + porcentaje de take profit).

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. El uso de canales de desviación estándar puede rastrear dinámicamente las fluctuaciones del mercado.

  2. El uso de pérdidas de parada móvil puede controlar eficazmente las pérdidas individuales.

  3. Implementación simple, ahorra una gran cantidad de optimización de parámetros y es muy fácil de implementar.

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. Las estrategias de seguimiento de tendencias son propensas a pérdidas y luego reversiones.

  2. El riesgo de sensibilidad de parámetros: la elección de parámetros como el período de media móvil y el multiplicador de desviación estándar tendrá un mayor impacto en el rendimiento de la estrategia.

  3. El punto de stop loss es demasiado agresivo para causar pérdidas adicionales.

Las soluciones a los riesgos correspondientes son las siguientes:

  1. Combinar los indicadores de volatilidad para evitar las falsas rupturas.

  2. Optimice los parámetros para encontrar la combinación óptima de parámetros.

  3. Ajuste el mecanismo de stop loss para evitar una agresión excesiva.

Direcciones de optimización

Todavía hay espacio para una mayor optimización de la estrategia:

  1. Utilice varias medias móviles de marcos de tiempo para la verificación para evitar curvas demasiado sensibles.

  2. Incorporar otros indicadores como el MACD para juzgar las tendencias y la divergencia.

  3. Introducir algoritmos de aprendizaje automático para optimizar dinámicamente los parámetros.

Resumen de las actividades

En general, la estrategia de avance de regresión de promedio móvil es una estrategia de negociación cuantitativa muy práctica. Tiene las ventajas de rastrear tendencias y controlar las reducciones, una implementación simple y satisface las necesidades de la negociación cuantitativa. Al mismo tiempo, también se debe prestar atención a cuestiones como la selección de parámetros y la configuración de pérdidas de parada. Con el análisis de múltiples ejes temporales y la optimización de parámetros, se puede obtener un mejor rendimiento de la estrategia.


/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Standard Deviation Bands with Buy/Sell Signals", overlay=true)

// Input for the number of standard deviations
deviationMultiplier = input.float(2.0, title="Standard Deviation Multiplier")

// Input for the length of the moving average
maLength = input.int(50, title="Moving Average Length")

// Input for the stop loss percentage
stopLossPercentage = input.float(12, title="Stop Loss Percentage")

// Calculate the moving average
sma = ta.sma(close, maLength)

// Calculate the standard deviation of the price
priceDeviation = ta.stdev(close, maLength)

// Calculate the upper and lower bands
upperBand = sma + (priceDeviation * deviationMultiplier)
lowerBand = sma - (priceDeviation * deviationMultiplier)

// Plot the bands
plot(upperBand, color=color.green, title="Upper Band")
plot(lowerBand, color=color.red, title="Lower Band")

// Plot the moving average
plot(sma, color=color.blue, title="SMA", linewidth=2)

// Buy Signal
buyCondition = ta.crossover(close, lowerBand)
sellCondition = ta.crossunder(close, upperBand)

// Calculate stop loss level
stopLossLevelBuy = close * (1 - stopLossPercentage / 100)
stopLossLevelSell = close * (1 + stopLossPercentage / 100)

// Create Buy and Sell Alerts
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal - Price Crossed Below Lower Band")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal - Price Crossed Above Upper Band")

// Plot Buy and Sell Arrows on the chart
plotshape(buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal Arrow")
plotshape(sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal Arrow")

// Exit Long and Short Positions
var float stopLossBuy = na
var float stopLossSell = na

if ta.crossover(close, sma)
    stopLossBuy := stopLossLevelBuy
if ta.crossunder(close, sma)
    stopLossSell := stopLossLevelSell

strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Stop Loss/Take Profit Buy", from_entry = "Buy", stop = stopLossBuy)
strategy.entry("Sell", strategy.short, when = sellCondition)
strategy.exit("Stop Loss/Take Profit Sell", from_entry = "Sell", stop = stopLossSell)


Más.