Estrategia de seguimiento de tendencias de cruce de medias móviles de objetivos múltiples

EMA SL TP
Fecha de creación: 2025-02-08 15:22:15 Última modificación: 2025-02-08 15:22:15
Copiar: 6 Número de Visitas: 391
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias de cruce de medias móviles de objetivos múltiples

Descripción general

La estrategia es un sistema de seguimiento de tendencias basado en señales de cruce de la línea media (EMA). Utiliza el EMA de 34 ciclos como indicador de tendencia principal, combinado con mecanismos de control de riesgo y ganancias por lotes, para lograr una negociación totalmente automatizada. El núcleo de la estrategia es capturar el punto de inicio de la tendencia a través de los cruces de precios con EMA y maximizar las oportunidades de ganancias mediante el establecimiento de objetivos de ganancias múltiples.

Principio de estrategia

La estrategia se basa principalmente en los siguientes principios centrales:

  1. Utilizando el EMA de 34 ciclos como indicador de tendencias
  2. Cuando el precio cruza la EMA hacia arriba, se hace una posición más alta en la posición del precio de la EMA
  3. El uso de objetivos de triple ganancia ((5%, 10%, 15%) para lograr la parada de lotes)
  4. Establecer un Stop Loss del 7% para controlar el riesgo
  5. Mantener una posición del 10% como una posición a largo plazo para capturar una gran tendencia
  6. Evitar el exceso de transacciones con un intervalo mínimo de 8 horas
  7. Apoyar el volumen fijo y el tamaño dinámico de las posiciones

Ventajas estratégicas

  1. Diseño con múltiples objetivos de ganancias para funcionar bien en diferentes entornos de mercado
  2. Se puede disfrutar de los beneficios de las grandes tendencias manteniendo parte de las posiciones como tenencias a largo plazo
  3. Apoyo a las operaciones con apalancamiento, adaptadas a las preferencias de riesgo
  4. Dispone de mecanismos para evitar el exceso de comercio
  5. Gestión de posiciones flexible, con opciones de posiciones fijas o dinámicas
  6. Es totalmente automático, sin intervención humana.
  7. Los parámetros son muy ajustables para diferentes estilos de negociación

Riesgo estratégico

  1. La EMA como indicador de retraso puede causar retrasos en el tiempo de entrada
  2. Se pueden producir múltiples paros en mercados convulsionados
  3. El uso de palancas puede aumentar las pérdidas
  4. El cierre porcentual fijo puede no ser lo suficientemente flexible en un mercado altamente volátil
  5. Los objetivos de múltiples ganancias podrían conducir a una salida prematura de una tendencia fuerte Contramedidas:
  • Se recomienda su uso en mercados con claras tendencias.
  • Porcentaje de pérdidas ajustado a las fluctuaciones del mercado
  • El uso de palancas con cuidado
  • Parámetros de optimización de retroalimentación periódica

Dirección de optimización de la estrategia

  1. Aumentar los filtros de intensidad de tendencia y mejorar la calidad de entrada
  2. Introducción de mecanismos de detención dinámica de pérdidas, como el ATR
  3. Añadido el indicador de confirmación de transacciones
  4. Desarrollo de mecanismos de objetivos de rentabilidad adaptados
  5. Añadir un módulo de evaluación del entorno del mercado
  6. Mecanismo de ajuste dinámico para optimizar el intervalo de operaciones Estas optimizaciones pueden mejorar la estabilidad y la rentabilidad de las estrategias y reducir el impacto de las falsas señales.

Resumir

Esta es una estrategia de seguimiento de tendencias diseñada de manera razonable y lógica. La estrategia de seguimiento de tendencias se basa en la captura de tendencias en el cruce de líneas, la gestión de riesgos con objetivos de ganancias múltiples y la retención de posiciones para capturar grandes tendencias.

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

//@version=5
strategy("EMA25 Long Strategy", overlay=true)

// Inputs
initial_capital = input.float(50000, title="Initial Capital ($)")
leverage = input.int(1, title="Leverage")
mode = input.string("Fixed Volume", title="Position Sizing Mode", options=["Fixed Volume", "Current Balance"])
ema_length = input.int(34, title="EMA Length")
stop_loss_percent = input.float(7, title="Stop Loss (%)", step=0.1) / 100
take_profit_1_percent = input.float(5, title="Take Profit 1 (%)", step=0.1) / 100
take_profit_2_percent = input.float(10, title="Take Profit 2 (%)", step=0.1) / 100
take_profit_3_percent = input.float(15, title="Take Profit 3 (%)", step=0.1) / 100
position_size_percent = input.float(100, title="Position Size (%)", step=1) / 100
long_term_hold_percent = input.float(10, title="Long Term Hold (%)", step=1) / 100
trade_delay = input.int(8, title="Trade Delay (hours)", minval=1) * 60  // Convert hours to minutes

// Calculate EMA
ema = ta.ema(close, ema_length)
// Plot EMA
plot(ema, title="EMA25", color=color.blue)

// Determine if a new trade can be placed
var float last_trade_time = na
can_trade = na(last_trade_time) or (time - last_trade_time) > trade_delay * 60 * 1000

// Determine position size based on selected mode
var float position_size = na
if (mode == "Fixed Volume")
    position_size := initial_capital * leverage * position_size_percent / close
else
    position_size := strategy.equity * leverage * position_size_percent / close

// Entry Condition
var float entry_price = na
price_crossed_ema_up = ta.crossover(close, ema)
price_crossed_ema_down = ta.crossunder(close, ema)

if ((price_crossed_ema_up or price_crossed_ema_down) and can_trade)
    entry_price := ema
    strategy.entry("Long", strategy.long, qty=position_size, limit=entry_price)
    last_trade_time := time
    label.new(bar_index, entry_price, text="Entry", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

// Stop Loss
strategy.exit("Stop Loss", from_entry="Long", stop=entry_price * (1 - stop_loss_percent))

// Take Profits
take_profit_1_price = entry_price * (1 + take_profit_1_percent)
take_profit_2_price = entry_price * (1 + take_profit_2_percent)
take_profit_3_price = entry_price * (1 + take_profit_3_percent)

strategy.exit("Take Profit 1", from_entry="Long", limit=take_profit_1_price, qty=position_size / 3)
strategy.exit("Take Profit 2", from_entry="Long", limit=take_profit_2_price, qty=position_size / 3)
strategy.exit("Take Profit 3", from_entry="Long", limit=take_profit_3_price, qty=position_size / 3)

// Long Term Hold (10% of position)
hold_qty = position_size * long_term_hold_percent
if (strategy.position_size > hold_qty)
    strategy.close("Long Term Hold")