Estrategia comercial de seguimiento de tendencias basada en regresión lineal y promedios móviles


Fecha de creación: 2023-12-18 17:34:29 Última modificación: 2023-12-18 17:34:29
Copiar: 4 Número de Visitas: 890
1
Seguir
1621
Seguidores

Estrategia comercial de seguimiento de tendencias basada en regresión lineal y promedios móviles

Descripción general

La estrategia se basa en una simple línea de regresión lineal y una media móvil para diseñar un sistema de seguimiento de la tendencia. Se hace más cuando se cruza la media móvil sobre la línea de regresión lineal y se hace menos cuando se cruza la media móvil debajo de la línea de regresión lineal. Al mismo tiempo, se combina la inclinación de la línea de regresión lineal para filtrar parte de la señal de negociación y solo se entra en juego cuando la dirección de la tendencia coincide.

Nombre de la estrategia

Estrategia de comercio de regresión de seguimiento de tendencia

Principio de estrategia

La estrategia incluye las siguientes partes clave:

  1. Calcula el promedio móvil simple de N días (SMA)
  2. Calcula la línea de regresión lineal de los días N más recientes
  3. Haga más cuando el precio de cierre cruza la línea SMA y está por encima de la línea de retorno
  4. Cuando el precio de cierre cruza la línea SMA y está por debajo de la línea de retorno, hacer un descuento
  5. Establecer el precio de parada y el precio de parada

La línea de regresión lineal se ajusta muy bien a la dirección de la tendencia en un período reciente de tiempo. Esto puede usarse para ayudar a determinar la dirección de la tendencia general. Cuando el precio rompe la línea SMA, necesitamos determinar más si la dirección de la línea de regresión lineal coincide con la ruptura.

Además, la estrategia también establece un mecanismo de stop loss. Cuando el precio toca la línea de stop loss, se detiene la posición de liquidación. También se establece una línea de stop loss, que bloquea parte de las ganancias.

Ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. Combinación de indicadores de tendencia y de ruptura para evitar falsas rupturas y mejorar la calidad de la señal
  2. Utiliza la regresión lineal para determinar la dirección de la tendencia, para filtrar la tendencia, solo hace más cuando la tendencia es hacia arriba, y hace un vacío cuando la tendencia es hacia abajo
  3. Se establecen mecanismos de suspensión y deterioro para controlar el riesgo
  4. Las reglas son claras, claras, fáciles de entender y aplicar
  5. Sólo hay que ajustar unos pocos parámetros, no es demasiado complicado

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Las señales falsas pueden ser más frecuentes en situaciones de crisis.
  2. La configuración de las medias móviles y los ciclos de regresión requieren una optimización de prueba repetida, y una configuración incorrecta puede afectar el rendimiento de la estrategia
  3. Los riesgos de pérdidas por suspensión en situaciones extremas pueden ser mayores si se rompe la barrera.
  4. Basado únicamente en indicadores técnicos, sin combinar los factores básicos

En cuanto a los riesgos, podemos optimizar en los siguientes aspectos:

  1. En un mercado convulso, considere una estrategia de suspensión o use otros indicadores para filtrar
  2. Para encontrar el parámetro óptimo, se hace una y otra prueba de los parámetros
  3. Optimización y ajuste dinámico de la posición de parada
  4. En combinación con factores básicos como los datos económicos

Dirección de optimización

La estrategia se puede optimizar principalmente en los siguientes aspectos:

  1. Aumentar otros indicadores auxiliares para evaluar el estado del mercado y evitar el comercio en situaciones de crisis
  2. Optimización de combinaciones de tipos de promedios móviles, como promedios móviles dobles y promedios móviles triples
  3. Análisis adicional de la inclinación de la línea de regresión, añadiendo reglas para juzgar la inclinación
  4. Combinado con el indicador de fluctuación, establece la posición de parada de pérdida dinámica
  5. Optimización automática de los parámetros con métodos de aprendizaje automático

Resumir

La estrategia integra la función de seguimiento de tendencias de las medias móviles con la función de determinación de tendencias de la regresión lineal, formando un sistema de comercio de seguimiento de tendencias relativamente simple y fácil de usar. En mercados con tendencias evidentes, la estrategia puede obtener mejores resultados. También necesitamos realizar una gran cantidad de retroalimentación y optimización de los parámetros y reglas, y hacer un buen control de riesgos, entonces la estrategia debe ser capaz de obtener un retorno estable de la inversión.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Regression Trading Strategy", shorttitle="RTS", overlay=true)

// Input parameters
n = input(14, title="SMA Period")
stop_loss_percentage = input(2, title="Stop Loss Percentage")
take_profit_percentage = input(2, title="Take Profit Percentage")

// Calculate the SMA
sma = sma(close, n)

// Linear regression function
linear_regression(src, length) =>
    sumX = 0.0
    sumY = 0.0
    sumXY = 0.0
    sumX2 = 0.0
    for i = 0 to length - 1
        sumX := sumX + i
        sumY := sumY + src[i]
        sumXY := sumXY + i * src[i]
        sumX2 := sumX2 + i * i
    slope = (length * sumXY - sumX * sumY) / (length * sumX2 - sumX * sumX)
    intercept = (sumY - slope * sumX) / length
    line = slope * length + intercept
    line

// Calculate the linear regression
regression_line = linear_regression(close, n)

// Plot the SMA and regression line
plot(sma, title="SMA", color=color.blue)
plot(regression_line, title="Regression Line", color=color.red)

// Trading strategy conditions
long_condition = crossover(close, sma) and close > regression_line
short_condition = crossunder(close, sma) and close < regression_line

// Exit conditions
stop_loss_price = close * (1 - stop_loss_percentage / 100)
take_profit_price = close * (1 + take_profit_percentage / 100)

// Plot entry and exit points on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=crossunder(close, stop_loss_price), title="Stop Loss", location=location.abovebar, color=color.red, style=shape.labeldown, text="SL")
plotshape(series=crossover(close, take_profit_price), title="Take Profit", location=location.belowbar, color=color.green, style=shape.labelup, text="TP")

// Strategy orders
strategy.entry("Long", strategy.long, when = long_condition)
strategy.entry("Short", strategy.short, when = short_condition)
strategy.exit("Exit", from_entry = "Long", when = crossover(close, stop_loss_price) or crossover(close, take_profit_price))
strategy.exit("Exit", from_entry = "Short", when = crossunder(close, stop_loss_price) or crossunder(close, take_profit_price))