Estrategia de seguimiento de tendencias de impulso de medias móviles múltiples

SMA RSI MA
Fecha de creación: 2024-11-12 15:05:09 Última modificación: 2024-11-12 15:05:09
Copiar: 0 Número de Visitas: 476
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias de impulso de medias móviles múltiples

Descripción general

La estrategia es un sistema de trading de seguimiento de tendencias basado en múltiples medias y indicadores dinámicos. La estrategia utiliza principalmente la relación dinámica de los promedios móviles simples de 20, 50, 150 y 200 días (SMA), combinando el intervalo y el indicador RSI, para capturar una fuerte tendencia alcista a nivel de la línea diaria, y para equilibrar la posición a tiempo cuando la tendencia se debilita. La estrategia se utiliza en combinación con múltiples indicadores técnicos, filtrando eficazmente las señales falsas y mejorando la precisión de las operaciones.

Principio de estrategia

La lógica central de la estrategia incluye las siguientes partes clave:

  1. Sistema de línea media: utiliza la línea media de 20/50/150/200 días para construir un sistema de juicio de tendencias, que requiere que la línea media múltiple presente una disposición múltiple.
  2. Confirmación de movimiento: utiliza el indicador RSI y su promedio móvil para determinar el movimiento de los precios, y requiere que el RSI sea mayor que 55 o el RSI SMA sea mayor que 50 y el RSI sea superior.
  3. Verificación de volumen de transacciones: confirma la validez de las señales de compra y venta mediante la comparación de la línea media de volumen de transacciones de los 20 días con el volumen de transacciones recientes.
  4. Verificación de la continuidad de la tendencia: comprobar que la línea media de 50 días ha mantenido una tendencia alcista durante al menos 25 de los últimos 40 días de negociación.
  5. Confirmación de posición: El precio debe mantenerse estable por encima de la línea media de 150 días durante al menos 20 días de negociación.

Los requisitos de compra son:

  • Más de 4 días de sol en los últimos 10 días y al menos 1 día de luz solar
  • El RSI cumple con las condiciones del momento
  • El sistema lineal promedio presenta una alineación múltiple y una subida constante
  • Los precios se mantienen estables por encima de la media de 150 días

Las condiciones de venta incluyen:

  • El precio ha bajado a la media de 150 días.
  • Se ha producido una caída continua en el volumen
  • El promedio de 50 días cae por debajo del promedio de 150 días
  • Recientemente, el sexo femenino ha dominado y aumentado el número de transacciones.

Ventajas estratégicas

  1. Verificación cruzada de múltiples indicadores técnicos, que reduce el error de juicio
  2. Las tendencias son rigurosas y pueden filtrar fluctuaciones a corto plazo.
  3. Combinación de análisis de tráfico para mejorar la fiabilidad de la señal
  4. Condiciones claras para detener los daños y controlar los riesgos de manera efectiva
  5. Es adecuado para capturar tendencias a medio y largo plazo y reducir la frecuencia de las transacciones
  6. La lógica de la estrategia es clara, fácil de entender e implementar.

Riesgo estratégico

  1. El sistema de línea media es retrasado y puede perderse la etapa inicial de la tendencia
  2. Los estrictos requisitos de entrada pueden hacer que se pierdan algunas oportunidades de negocio
  3. En mercados volátiles pueden producirse señales falsas frecuentes
  4. Hay un cierto retraso en la identificación de la reversión
  5. Se requiere una mayor cantidad de fondos para soportar la retirada

Sugerencias para el control de riesgos:

  • Establecer una posición de parada razonable
  • La administración de fondos debe ser moderada
  • Considerar el aumento de los indicadores de confirmación de tendencias
  • Ajuste de parámetros en función de las condiciones del mercado

Dirección de optimización de la estrategia

  1. Añadir parámetros de adaptación
  • Ajuste del ciclo de la median en función de la fluctuación del mercado
  • Optimización de los parámetros del RSI
  1. Mejora en el mecanismo de suspensión de pérdidas
  • Aumento de la pérdida de seguimiento
  • Ajuste el tiempo de pérdida
  1. Introducción al análisis del entorno del mercado
  • Indicadores de la intensidad de la tendencia
  • Tener en cuenta los indicadores de fluctuación
  1. Optimizar el tamaño de las transacciones
  • Diseño de gestión de posiciones dinámicas
  • Ajuste de la intensidad de la señal

Resumir

Se trata de una estrategia de seguimiento de tendencias rigurosa diseñada para capturar eficazmente las oportunidades de tendencias fuertes a través del uso combinado de múltiples indicadores técnicos. La principal ventaja de la estrategia reside en su mecanismo completo de confirmación de señales y su estricto sistema de control de riesgos. Si bien existe un cierto retraso, la estrategia puede mantener un rendimiento estable en el funcionamiento a largo plazo mediante la optimización de parámetros y la gestión de riesgos razonables.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Micho's 150 (1D Time Frame Only)", overlay=true)

// Define the length for the SMAs and RSI
sma20Length = 20
sma50Length = 50
sma150Length = 150
sma200Length = 200
volumeMaLength = 20
rsiLength = 14
rsiSmaLength = 14
smaCheckLength = 40  // Check the last month of trading days (~20 days)
requiredRisingDays = 25  // Require SMA to rise in at least 16 of the past 20 days
sma150AboveSma200CheckDays = 1  // Require SMA150 > SMA200 for the last 10 days

// Calculate the SMAs for price
sma20 = ta.sma(close, sma20Length)
sma50 = ta.sma(close, sma50Length)
sma150 = ta.sma(close, sma150Length)
sma200 = ta.sma(close, sma200Length)

// Calculate the 20-period moving average of volume
volumeMA20 = ta.sma(volume, volumeMaLength)

// Calculate the 14-period RSI
rsi = ta.rsi(close, rsiLength)

// Calculate the 14-period SMA of RSI
rsiSMA = ta.sma(rsi, rsiSmaLength)

// Check if most of the last 5 days are buyer days (close > open)
buyerDays = 0
for i = 0 to 9
    if close[i] > open[i]
        buyerDays := buyerDays + 1

// Check if at least 1 day has volume higher than the 20-period volume MA
highVolumeDays = 0
for i = 0 to 9
    if close[i] > open[i] and volume[i] > volumeMA20
        highVolumeDays := highVolumeDays + 1

// Define the new RSI condition
rsiCondition = (rsi >= 55) or (rsiSMA > 50 and rsi > rsi[1])

// Check if the 50-day SMA has been rising on at least 16 of the last 20 trading days
risingDays = 0
for i = 1 to smaCheckLength
    if sma50[i] > sma50[i + 1]
        risingDays := risingDays + 1

// Check if the SMA has risen on at least 16 of the last 20 days
sma50Rising = risingDays >= requiredRisingDays

// Check if the price has been above the SMA150 for the last 20 trading days
priceAboveSma150 = true
for i = 1 to smaCheckLength
    if close[i] < sma150[i]
        priceAboveSma150 := false

// Check if the SMA150 has been above the SMA200 for the last 10 days
sma150AboveSma200 = true
for i = 1 to sma150AboveSma200CheckDays
    if sma150[i] < sma200[i]
        sma150AboveSma200 := false

// Define the conditions for the 150-day and 200-day SMAs being rising
sma150Rising = sma150 > sma150[1]
sma200Rising = sma200 > sma200[1]

// Check if most of the last 5 days are seller days (close < open)
sellerDays = 0
for i = 0 to 9
    if close[i] < open[i]
        sellerDays := sellerDays + 1

// Check if at least 1 day has seller volume higher than the 20-period volume MA
highSellerVolumeDays = 0
for i = 0 to 9
    if close[i] < open[i] and volume[i] > volumeMA20
        highSellerVolumeDays := highSellerVolumeDays + 1

// Check in the last N days the price below 150
priceBelowSma150 = true
for i = 0 to 0
    if close[i] > sma150[i]
        priceBelowSma150 := false

// Restrict the strategy to 1D time frame
if timeframe.isdaily
    // Buy condition:
    // - Most of the last 5 days are buyer days (buyerDays > 2)
    // - At least 1 of those days has high buyer volume (highVolumeDays >= 1)
    // - RSI SMA (14-period) between 45 and 50 with RSI >= 55, or RSI SMA > 50 and RSI rising
    // - 50-day SMA > 150-day SMA and 150-day SMA > 200-day SMA
    // - 50-day SMA has been rising on at least 16 of the last 20 trading days
    // - The price hasn't been below the 150-day SMA in the last 20 days
    // - 150-day SMA has been above the 200-day SMA for the last 10 days
    // - 150-day and 200-day SMAs are rising
    buyCondition = (close > sma150 and buyerDays > 4 and highVolumeDays >= 1 and rsiCondition  and sma50 > sma150 and sma50Rising and sma150Rising and sma200Rising and priceAboveSma150)

    // Sell condition:
    // - Price crossing below SMA 150
    // - Seller volume (current volume > volume MA 20)
    // - 150-day SMA crosses below 200-day SMA
    // - Most of the last 5 days are seller days (sellerDays > 2) and at least 1 day of higher seller volume (highSellerVolumeDays >= 1)
    sellCondition = (priceBelowSma150 and (sma50 < sma150 or (sellerDays >5 and highSellerVolumeDays >= 5)))

    // Execute buy when all conditions are met
    if (buyCondition)
        strategy.entry("Buy", strategy.long)

    // Execute sell when all conditions are met
    if (sellCondition)
        strategy.close("Buy")