Estrategia de trading cuantitativo basada en SMA y línea de tendencia móvil


Fecha de creación: 2024-02-04 15:18:12 Última modificación: 2024-02-04 15:18:12
Copiar: 0 Número de Visitas: 639
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo basada en SMA y línea de tendencia móvil

Descripción general

La estrategia combina una media móvil simple (SMA) y una línea de tendencia de retorno lineal rodante, estableciendo una condición de compra cuando el precio de cierre es superior al SMA y la línea de tendencia, y una condición de salida cuando el precio de cierre es inferior al SMA y la línea de tendencia. La estrategia utiliza principalmente la señal de negociación en línea recta del SMA y el apoyo de la línea de tendencia rodante.

Principio de estrategia

La estrategia se basa principalmente en los siguientes componentes:

  1. SMA: promedio móvil simple, calcula el promedio de los precios de cierre en un período determinado como línea de señal.

  2. Línea de tendencia de rotación: la línea recta de mejor ajuste en una ventana basada en el cálculo de la regresión lineal en un período determinado como señal de tendencia. El método de cálculo es el mínimo de la ecuación.

  3. Condiciones de entrada: hacer una entrada adicional cuando el precio de cierre esté por encima de la media SMA y la línea de tendencia de rodaje.

  4. Condiciones de salida: salida en posición cerrada cuando el precio de cierre está por debajo de la media SMA y la línea de tendencia de rodaje.

De esta manera, la estrategia se basa principalmente en la entrada de la señal de breakout de la operación de la línea recta, así como en la salida de la breakout de la vía recta. Utilizando la característica de la media de regreso de la media móvil y el soporte de la media de la vía de regreso lineal, se realiza una operación de breakout de seguimiento de la tendencia.

Análisis de las ventajas estratégicas

La estrategia integra un doble filtrado de la línea de tendencia y la línea de la línea de tendencia, lo que reduce efectivamente las operaciones de falsa ruptura. Al mismo tiempo, la línea de tendencia de rodaje proporciona un soporte de canal más preciso y hace que las decisiones de negociación sean más confiables. Las principales ventajas son las siguientes:

  1. Un mecanismo de doble filtración para evitar falsas brechas y mejorar la precisión de la toma de decisiones.
  2. Las líneas de tendencia de rotación proporcionan un canal dinámico que permite una negociación de canal más precisa.
  3. La lógica de las transacciones es simple e intuitiva, fácil de entender y de implementar.
  4. Los parámetros se pueden personalizar para adaptarse a diferentes entornos de mercado.

Análisis de riesgos

La estrategia también tiene algunos riesgos, que se centran en:

  1. La configuración incorrecta de los parámetros de SMA y de la línea de tendencia puede causar oportunidades de negociación perdidas o falsas rupturas excesivas.
  2. El SMA y la línea de tendencia QIAN proporcionan un apoyo de canal más débil en un mercado con gran volatilidad.
  3. El fracaso de la brecha puede causar pérdidas y se requiere una estricta suspensión de las pérdidas.

Para optimizar estos riesgos, se puede comenzar por los siguientes puntos:

  1. Optimización de parámetros, diferentes variedades pueden configurar diferentes combinaciones de parámetros.
  2. Aumentar el stop loss y reducir las pérdidas individuales.
  3. Suspender las operaciones en situaciones de crisis para evitar ser engañados.

Dirección de optimización de la estrategia

La estrategia puede ser optimizada en las siguientes dimensiones:

  1. Se añade la función de ajuste dinámico de los parámetros de los ciclos SMA y de los puntos de deslizamiento. Los parámetros se optimizan automáticamente en diferentes entornos de mercado.

  2. Aumentar el mecanismo de suspensión de pérdidas. Se detiene cuando el precio rompe la línea de tendencia en cierta proporción.

  3. En combinación con otros indicadores de filtración de señales, como indicadores de capacidad cuantitativa, indicadores de fuerza y debilidad, etc., mejora la precisión de la toma de decisiones.

  4. Desarrollar versiones invertidas. Hacer más cuando el precio se acerca al fondo y rompe el canal descendente.

Resumir

La estrategia integra señales de comercio de medias móviles y soporte de canales de línea de tendencia en movimiento para realizar operaciones de seguimiento de tendencias. El mecanismo de doble filtración reduce la probabilidad de falsas rupturas y mejora la calidad de las decisiones. La configuración de parámetros sencilla, la claridad de la lógica, la facilidad de implementación y el ajuste optimizado.

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

//@version=4
strategy("SMA Strategy with Rolling Trendline", overlay=true)

// Input parameters
smaPeriod = input(14, title="SMA Period")
window = input(20, title="Trendline Window")
startDate = input(timestamp("2023-01-01"), title="Start Date")
endDate = input(timestamp("2023-12-31"), title="End Date")

// Calculating SMA
sma = sma(close, smaPeriod)

// Function to calculate linear regression trendline for a window
linreg_trendline(window) =>
    sumX = 0.0
    sumY = 0.0
    sumXY = 0.0
    sumX2 = 0.0
    for i = 0 to window - 1
        sumX := sumX + i
        sumY := sumY + close[i]
        sumXY := sumXY + i * close[i]
        sumX2 := sumX2 + i * i
    slope = (window * sumXY - sumX * sumY) / (window * sumX2 - sumX * sumX)
    intercept = (sumY - slope * sumX) / window
    slope * (window - 1) + intercept

// Calculating the trendline
trendline = linreg_trendline(window)

// Entry and Exit Conditions
longCondition = close > sma and close < trendline
exitLongCondition = close < sma and close > trendline

// Strategy logic
if (true)
    if (longCondition)
        strategy.entry("Long", strategy.long)
    if (exitLongCondition)
        strategy.close("Long")

// Plotting
plot(sma, title="Simple Moving Average", color=color.blue)
plot(trendline, title="Rolling Trendline", color=color.red)
plotshape(series=longCondition, title="Enter Trade", location=location.belowbar, color=color.green, style=shape.triangleup)
plotshape(series=exitLongCondition, title="Exit Trade", location=location.abovebar, color=color.red, style=shape.triangledown)