
Descripción general
La estrategia es un sistema de comercio de seguimiento de tendencias basado en múltiples medias móviles de índices (EMA). Utiliza un cruce de oro formado por tres líneas medias EMA25, EMA50 y EMA100 para confirmar una fuerte tendencia alcista y entrar en el mercado cuando el precio supera la EMA25. La estrategia utiliza un stop loss dinámico y un stop loss por lotes para administrar el riesgo y los beneficios.
Principio de estrategia
La lógica central de la estrategia incluye las siguientes partes clave:
- Confirmación de la tendencia: se utiliza una EMA de tres períodos diferentes (de 25, 50, 100) y se forma un cruce dorado cuando la media a corto plazo está por encima de la media a mediano plazo y la media a mediano plazo está por encima de la media a largo plazo, lo que confirma una tendencia alcista.
- Señales de entrada: en base a la formación de un cruce de oro, cuando el precio de cierre se rompa hacia arriba por encima de la EMA25, se toman más posiciones de 50% en dos lotes.
- Paradas de pérdidas: paradas dinámicas basadas en los precios mínimos de los últimos 20 ciclos, y la adición de un intervalo de amortiguamiento adicional ((0.0003)) para evitar falsas rupturas.
- Separación de paradas: establezca dos objetivos de paradas de diferentes multiplicadores (de 1.0 y 1.5 veces), el primer grupo de posiciones sale cuando alcanza el objetivo de paradas más bajo, y el segundo grupo de posiciones sale cuando alcanza el objetivo de paradas más alto.
- Protección de terminación de tendencia: cuando el precio cae por debajo de la EMA100, se activa una señal de posición cerrada en todas las posiciones para evitar pérdidas causadas por la reversión de la tendencia.
Ventajas estratégicas
- Mecanismo de confirmación múltiple: El uso combinado de líneas medias múltiples puede filtrar de manera efectiva las señales falsas y mejorar la fiabilidad de las transacciones.
- Gestión de riesgos dinámica: el stop loss se ajusta dinámicamente en función de las fluctuaciones del mercado en tiempo real y es más adaptable.
- Construcción por lotes de almacenes y paradas: mediante la operación por lotes, se puede bloquear parte de las ganancias y mantener las ganancias en marcha para maximizar los beneficios.
- Mecanismo de protección de tendencia: establece la media a largo plazo como una línea de alerta para la reversión de la tendencia, lo que permite detener los pérdidas a tiempo y evitar una gran retirada.
Riesgo estratégico
- Riesgo de retraso: el indicador de línea media tiene retraso en sí mismo, lo que puede provocar un retraso en la hora de entrada y perder el punto de venta óptimo.
- Riesgo de mercado en movimiento: en mercados en movimiento horizontal, las falsas brechas frecuentes pueden causar pérdidas continuas.
- Riesgo de una zona de amortización fija: el uso de una zona de amortización fija puede no ser adecuado para todos los entornos de mercado.
- Riesgo de gestión de fondos: la asignación de posiciones fijas del 50% puede no ser lo suficientemente flexible.
Dirección de optimización de la estrategia
- Optimización de parámetros dinámicos: Se puede ajustar automáticamente el ciclo de la línea media y el área de amortiguamiento de pérdidas en función de la volatilidad del mercado.
- Filtrado de entornos de mercado: añade indicadores de intensidad de tendencia y de volatilidad para ajustar los parámetros de la estrategia en diferentes entornos de mercado.
- Optimización de la gestión de posiciones: ajuste dinámico del tamaño de las posiciones en función de la volatilidad y el valor neto de la cuenta.
- Optimización de la hora de entrada: se puede combinar con otros indicadores técnicos (como RSI, MACD, etc.) para optimizar la hora de entrada.
- Mecanismo de frenado optimizado: Se puede introducir un mecanismo de frenado móvil para proteger mejor los frenos ganados.
Resumir
La estrategia utiliza múltiples combinaciones de líneas medias y operaciones por lotes para construir un sistema de comercio de seguimiento de tendencias más completo. La estrategia tiene la ventaja de combinar varios elementos clave de seguimiento de tendencias y gestión de riesgos, pero aún requiere optimización de parámetros y mejoras en las reglas de acuerdo con las condiciones reales del mercado.
Código Fuente de la Estrategia
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Golden Cross with Customizable TP/SL", overlay=true)
// Parameters for EMA
ema_short_length = 25
ema_mid_length = 50
ema_long_length = 100
// Parameters for stop-loss and take-profit
lookback_bars = input.int(20, title="Lookback bars for lowest low")
pip_buffer = input.float(0.0003, title="Stop-loss buffer (pips)") // Fixed default pip value (e.g., 3 pips for 5-digit pairs)
tp_multiplier1 = input.float(1.0, title="Take-profit multiplier 1")
tp_multiplier2 = input.float(1.5, title="Take-profit multiplier 2")
// Calculate EMAs
ema25 = ta.ema(close, ema_short_length)
ema50 = ta.ema(close, ema_mid_length)
ema100 = ta.ema(close, ema_long_length)
// Golden Cross condition (EMA25 > EMA50 > EMA100)
golden_cross = ema25 > ema50 and ema50 > ema100
// Entry condition: Candle crosses above EMA25 after a golden cross
cross_above_ema25 = ta.crossover(close, ema25)
entry_condition = golden_cross and cross_above_ema25
// Stop-loss and take-profit calculation
lowest_low = ta.lowest(low, lookback_bars)
var float entry_price = na
var float stop_loss = na
var float take_profit1 = na
var float take_profit2 = na
if (entry_condition)
entry_price := close
stop_loss := lowest_low - pip_buffer
take_profit1 := entry_price + (entry_price - stop_loss) * tp_multiplier1
take_profit2 := entry_price + (entry_price - stop_loss) * tp_multiplier2
strategy.entry("Buy1", strategy.long, qty=0.5) // First 50%
strategy.entry("Buy2", strategy.long, qty=0.5) // Second 50%
// Separate exit conditions for each entry
cross_below_ema100 = ta.crossunder(close, ema100)
exit_condition1 = close >= take_profit1
exit_condition2 = close >= take_profit2
exit_condition_sl = close <= stop_loss
if (exit_condition1 or cross_below_ema100)
strategy.close("Buy1")
if (exit_condition2 or cross_below_ema100 or exit_condition_sl)
strategy.close("Buy2")
// Plot EMAs
plot(ema25, color=color.blue, title="EMA 25")
plot(ema50, color=color.orange, title="EMA 50")
plot(ema100, color=color.red, title="EMA 100")