Estrategia de cruce de medias móviles de múltiples períodos con seguimiento de tendencias dinámicas

SMA EMA MA
Fecha de creación: 2024-12-13 10:40:30 Última modificación: 2024-12-13 10:40:30
Copiar: 0 Número de Visitas: 475
1
Seguir
1617
Seguidores

Estrategia de cruce de medias móviles de múltiples períodos con seguimiento de tendencias dinámicas

Descripción general

La estrategia es un sistema de comercio de seguimiento de tendencias basado en medias de varios períodos. La estrategia utiliza un promedio móvil simple de 89 períodos y 21 períodos (SMA) para determinar la dirección de la tendencia general del mercado, mientras que combina los máximos y mínimos del índice móvil de 5 períodos (EMA) para buscar señales de comercio específicas.

Principio de estrategia

La lógica central de la estrategia incluye los siguientes elementos clave:

  1. Determinación de tendencias: utiliza la posición relativa de los SMA de 89 y 21 ciclos, así como la posición del precio, para determinar la tendencia. Cuando el precio y los EMA de 5 ciclos están por encima de los SMA de 21 ciclos y los SMA de 21 ciclos están por encima de los SMA de 89 ciclos, se determina una tendencia alcista; al contrario, una tendencia descendente.
  2. Señales de entrada: en una tendencia ascendente, se hace más entrada cuando el precio se reajusta a los mínimos de 5 ciclos EMA; en una tendencia descendente, se hace una salida cuando el precio rebota a los máximos de 5 ciclos EMA.
  3. Administración de posiciones: abrir dos posiciones de contrato de la misma cantidad cada vez que se activa la señal.
  4. Control de riesgos: para la primera posición, se utiliza un objetivo de pérdidas y ganancias fijas, para la segunda posición, se utiliza un método de seguimiento de pérdidas.

Ventajas estratégicas

  1. Confirmación de múltiples períodos: la combinación de promedios móviles de diferentes períodos permite un juicio más completo de las tendencias del mercado y reduce las señales falsas.
  2. Método de parada flexible: Combinación de paradas fijas y paradas de seguimiento para obtener ganancias en fluctuaciones a corto plazo y no perderse la tendencia general.
  3. El riesgo es controlado: se establece una posición de stop loss clara, y el umbral de riesgo de cada señal de negociación es fijo.
  4. Operaciones sistematizadas: las reglas de transacción son claras, no están influenciadas por el juicio subjetivo, y son fáciles de implementar de manera programada.

Riesgo estratégico

  1. Riesgo de la oscilación de la bolsa de valores: en el ordenamiento horizontal, el cruce frecuente de la línea media puede causar demasiadas señales falsas.
  2. Riesgo de deslizamiento: cuando el mercado fluctúa mucho, el precio de transacción real puede tener una gran desviación del precio de la señal teórica.
  3. Riesgo de gestión de fondos: el método de negociación de un número fijo de contratos puede no ser adecuado para todos los tamaños de fondos.
  4. Sensibilidad de los parámetros: la elección del ciclo de la media móvil tiene un gran impacto en el rendimiento de la estrategia y requiere optimización para diferentes mercados.

Dirección de optimización de la estrategia

  1. Gestión dinámica de posiciones: se recomienda ajustar dinámicamente el número de contratos de negociación en función del valor neto de la cuenta y la volatilidad del mercado.
  2. Filtrado de entornos de mercado: incremento de indicadores de intensidad de tendencia (como el ADX) y reducción de la frecuencia de operaciones en mercados convulsionados.
  3. Optimización de stop loss: se puede considerar el uso de ATR para ajustar dinámicamente la distancia de stop loss y mejorar la adaptabilidad de la estrategia a diferentes entornos de mercado.
  4. Confirmación de señales: incremento de indicadores auxiliares como volumen de transacciones y dinámica para mejorar la fiabilidad de las señales de transacción.

Resumir

La estrategia es un sistema de seguimiento de tendencias estructurado, que capta las tendencias del mercado a través de una combinación de líneas medias periódicas múltiples y controla el riesgo con una gestión de posición flexible y un método de stop loss. Si bien existe cierto espacio para la optimización, el marco básico de la estrategia tiene una buena practicidad y extensibilidad. Para diferentes variedades de operaciones y entornos de mercado, la estabilidad de la estrategia se puede mejorar mediante el ajuste de parámetros y el aumento de las condiciones de filtración.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2

//@version=5
strategy("High 5 Trading Technique", overlay=true)

// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)

// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)

// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89

// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High

// --- Entry orders ---
if (longTrigger)
    strategy.entry("Long 1", strategy.long, qty=contracts)
    strategy.entry("Long 2", strategy.long, qty=contracts)

if (shortTrigger)
    strategy.entry("Short 1", strategy.short, qty=contracts)
    strategy.entry("Short 2", strategy.short, qty=contracts)

// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
    strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
    strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
    strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
    strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)