Estrategia de trading cuantitativo de fusión de impulso y seguimiento de tendencias de triple media móvil

EMA TEMA MACD SMA
Fecha de creación: 2024-11-27 16:08:16 Última modificación: 2024-11-27 16:08:16
Copiar: 2 Número de Visitas: 439
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo de fusión de impulso y seguimiento de tendencias de triple media móvil

Descripción general

Se trata de una estrategia de comercio cuantitativa basada en la combinación de seguimiento de tendencias y análisis de dinámica. La estrategia utiliza el triple índice de promedios móviles (TEMA), el cruce de múltiples promedios móviles y el indicador de variaciones del MACD para identificar las tendencias del mercado y los momentos de entrada. La estrategia adopta un estricto mecanismo de control de riesgo, que incluye paradas fijas, objetivos de ganancias y seguimiento de paradas para lograr el equilibrio óptimo entre el riesgo y los beneficios.

Principio de estrategia

La estrategia se basa en tres sistemas de indicadores técnicos centrales para determinar las señales de negociación:

  1. El sistema de medias móviles de triple índice (TEMA) se utiliza para confirmar la dirección de la tendencia general. La intensidad de la tendencia se determina calculando los tres niveles de EMA y combinando sus cambios dinámicos.
  2. El sistema de cruce de la línea media rápida y lenta utiliza EMA de 9 y 15 ciclos para capturar los puntos de inflexión de la tendencia intermedia.
  3. El cruce del precio con el EMA de 5 ciclos sirve como señal de confirmación final para determinar el momento exacto de entrada.

La activación de una señal de negociación requiere que las siguientes condiciones se cumplan simultáneamente:

  • El indicador MACD se cruza con su línea de señal en forma de oro y TEMA tiende hacia arriba
  • EMA a corto plazo por encima de EMA a largo plazo
  • El precio sube con 5 ciclos de EMA

Ventajas estratégicas

  1. El mecanismo de confirmación múltiple reduce considerablemente el impacto de las señales falsas y mejora la precisión de las transacciones.
  2. La combinación de las ventajas del seguimiento de tendencias y el análisis de la dinámica permite capturar las grandes tendencias y no perder oportunidades a corto plazo.
  3. Se utiliza un mecanismo de detención de pérdidas completo, que incluye un punto de detención fijo y un punto de detención de seguimiento dinámico, para controlar el riesgo de manera efectiva.
  4. Los parámetros de la estrategia son muy adaptables y pueden adaptarse a diferentes entornos de mercado.
  5. La lógica de entrada es clara, fácil de entender y ejecutar.

Riesgo estratégico

  1. El mecanismo de confirmación múltiple puede causar una entrada más lenta y perder algunas oportunidades en un proceso rápido.
  2. Los puntos de parada fijos deben ajustarse a las diferentes fluctuaciones del mercado, de lo contrario, pueden detenerse prematuramente.
  3. Las señales falsas pueden ser frecuentes en los mercados de oscilación horizontal.
  4. El seguimiento de los stop loss puede ser una salida prematura de una tendencia de calidad en un momento de fuerte volatilidad del mercado.

Dirección de optimización de la estrategia

  1. Introducción de indicadores de volatilidad para ajustar dinámicamente los objetivos de stop loss y profit, para que estén más en consonancia con el estado del mercado.
  2. Agregue indicadores de volumen como confirmación auxiliar para mejorar la confiabilidad de la señal.
  3. Unirse a un mecanismo de identificación de entornos de mercado que utiliza diferentes combinaciones de parámetros en diferentes estados de mercado.
  4. Desarrollar un mecanismo de acumulación de pérdidas en caso de reajuste y construir un modesto depósito para aumentar los ingresos.
  5. Optimización de los algoritmos de seguimiento de stop loss para adaptarlos mejor a las fluctuaciones del mercado

Resumir

La estrategia construye un sistema de negociación sólido mediante la integración de varios sistemas de indicadores técnicos. Su principal ventaja reside en el mecanismo de confirmación múltiple y el sistema de control de riesgos perfectos. Aunque existe cierto riesgo de atraso, la estrategia aún tiene un gran espacio de mejora a través de la optimización de parámetros y la expansión de funciones.

Código Fuente de la Estrategia
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")