Estrategia de trading con seguimiento de tendencias de canal gaussiano y RSI estocástico

RSI GWMA GWSD SRSI
Fecha de creación: 2025-02-20 11:01:36 Última modificación: 2025-02-20 11:01:36
Copiar: 1 Número de Visitas: 638
2
Seguir
319
Seguidores

Estrategia de trading con seguimiento de tendencias de canal gaussiano y RSI estocástico Estrategia de trading con seguimiento de tendencias de canal gaussiano y RSI estocástico

Descripción general

La estrategia es un sistema de seguimiento de tendencias que combina un canal de media móvil ponderado en Gauss y un índice Stochastic RSI de fuerza relativamente aleatoria. La estrategia construye un canal de precios a través de un método de Gauss ponderado y combina señales cruzadas de un indicador RSI aleatorio para determinar los momentos de entrada y salida, para lograr la captura y la confirmación de la dinámica de la tendencia. La estrategia tiene una buena base matemática y puede filtrar el ruido del mercado de manera efectiva y capturar las principales tendencias.

Principio de estrategia

La lógica central de la estrategia tiene dos partes principales:

  1. Sistema de canales de Gauss: construye canales de precios utilizando promedios móviles ponderados en Gauss ((GWMA) y diferencias estándar ponderadas en Gauss ((GWSD)). El GWMA otorga un mayor peso a los datos recientes, lo que hace que la línea de la igualdad sea más sensible a la respuesta a los cambios de precios. La subida y bajada de canales se determina multiplicando el GWSD por el factor multiplicador.

  2. Sistema de RSI aleatorio: procesamiento aleatorio de los indicadores RSI tradicionales para calcular los valores K y D. Este procesamiento permite identificar mejor las zonas de sobreventa y sobrecompra, proporcionando una señal de dinámica más precisa.

La generación de señales de negociación se basa en las siguientes condiciones:

  • Hacer una entrada múltiple: el precio cerró el precio rompió la vía de Gauss y cruzó la línea D en la línea K del RSI aleatorio
  • Señales de equilibrio: el cierre de la cotización cae por debajo de la vía de Gauss

Ventajas estratégicas

  1. Las bases matemáticas son sólidas: la construcción de canales de precios con el método de Gauss ponderado tiene una mejor base teórica que las medias móviles simples.
  2. Alta fiabilidad de la señal: El mecanismo de doble verificación, combinado con la ruptura de precios y la confirmación de la dinámica, puede reducir eficazmente las señales falsas.
  3. Adaptabilidad: El método de Gauss puede ajustar automáticamente el ancho de canal según las fluctuaciones del mercado.
  4. Control de riesgos: Control efectivo de los costos y riesgos de las transacciones a través de la administración de fondos y la configuración de comisiones.

Riesgo estratégico

  1. Dependencia de la tendencia: puede generar falsas señales frecuentes en mercados convulsivos, lo que lleva a una sobrecomercialización
  2. Efectos de retraso: debido a la utilización de un suavizado de la línea media múltiple, es posible que se produzca un retraso en la señal en los puntos de cambio de tendencia.
  3. Sensibilidad a los parámetros: la eficacia de la estrategia está más influenciada por la configuración de los parámetros, por lo que es necesario optimizar cuidadosamente los mismos.

Dirección de optimización de la estrategia

  1. Identificación del entorno de mercado: agregar un mecanismo de juicio del entorno de mercado para usar diferentes configuraciones de parámetros en diferentes estados de mercado.
  2. Optimización de stop loss: introducción de mecanismos de stop loss dinámicos, como stop loss adaptativo basado en el ATR o la volatilidad.
  3. Filtración de señales: Aumentar la confirmación de la transacción u otros indicadores técnicos como condición de filtración auxiliar.
  4. Gestión de fondos: Implementa una estrategia de gestión de posiciones más flexible, ajustando dinámicamente el porcentaje de tenencia de las posiciones en función de la intensidad de la señal.

Resumir

La estrategia combina el canal de Gauss y el indicador RSI aleatorio para construir un sistema de seguimiento de tendencias con una sólida base matemática. La estrategia se desempeña de manera excelente en mercados con tendencias evidentes, pero se debe tener en cuenta la optimización de los parámetros y la adaptabilidad al entorno del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Gaussian Channel + Stoch RSI Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=1)

// User Inputs
length     = input.int(20, "Gaussian Length", minval=5)
multiplier = input.float(2.0, "Channel Multiplier", step=0.1)
rsiLength  = input.int(14, "RSI Length", minval=1)
stochLength= input.int(14, "Stoch RSI Length", minval=1)
kLength    = input.int(3, "Stoch K Smoothing", minval=1)
dLength    = input.int(3, "Stoch D Smoothing", minval=1)

// Gaussian Weighted Moving Average Function
f_gaussian(source, length) =>
    half = (length - 1) / 2.0
    sum = 0.0
    norm = 0.0
    // Gaussian standard deviation chosen as length/6 for a smooth curve
    denom = (length / 6.0) * (length / 6.0)
    for i = 0 to length - 1
        x = i - half
        w = math.exp(-(x * x) / (2 * denom))
        sum += source[i] * w
        norm += w
    sum / norm

// Gaussian Weighted Standard Deviation Function
f_gaussian_std(source, length) =>
    half = (length - 1) / 2.0
    gavg = f_gaussian(source, length)
    sum = 0.0
    norm = 0.0
    denom = (length / 6.0) * (length / 6.0)
    for i = 0 to length - 1
        x = i - half
        w = math.exp(-(x * x)/(2*denom))
        diff = source[i] - gavg
        sum += diff * diff * w
        norm += w
    math.sqrt(sum/norm)

// Compute Gaussian Channel
gaussMid = f_gaussian(close, length)
gaussStd = f_gaussian_std(close, length)
gaussUpper = gaussMid + gaussStd * multiplier
gaussLower = gaussMid - gaussStd * multiplier

// Stochastic RSI Calculation
rsi = ta.rsi(close, rsiLength)
rsiLowest = ta.lowest(rsi, stochLength)
rsiHighest = ta.highest(rsi, stochLength)
stoch = 100 * (rsi - rsiLowest) / math.max(rsiHighest - rsiLowest, 1e-10)
k = ta.sma(stoch, kLength)
d = ta.sma(k, dLength)

// Conditions
// Long entry: Price closes above upper Gaussian line AND Stoch RSI K > D (stochastic is "up")
longCondition = close > gaussUpper and k > d

// Exit condition: Price closes below upper Gaussian line
exitCondition = close < gaussUpper

// Only trade in the specified date range
inDateRange = time >= timestamp("2018-01-01T00:00:00") and time < timestamp("2069-01-01T00:00:00")

// Submit Orders
if inDateRange
    if longCondition and strategy.position_size <= 0
        strategy.entry("Long", strategy.long)
    if exitCondition and strategy.position_size > 0
        strategy.close("Long")
        
// Plot Gaussian Channel
plot(gaussMid, "Gaussian Mid", color=color.new(color.yellow, 0))
plot(gaussUpper, "Gaussian Upper", color=color.new(color.green, 0))
plot(gaussLower, "Gaussian Lower", color=color.new(color.red, 0))