이 전략은 트리플 익스포넌셜 이동 평균 (EMA) 을 기반으로 한 트렌드 다음 시스템이다. 빠른, 중간 및 느린 EMA를 사용하여 크로스오버 신호 및 트렌드 방향 확인을 통해 시장 트렌드를 캡처하고, 상승 트렌드에 대한 긴 포지션을 독점적으로 취한다. 전략은 강력한 거래 성과를 달성하기 위해 엄격한 스톱 로스 컨트롤과 백테스팅 검증 메커니즘을 구현한다.
이 전략은 서로 다른 기간을 가진 세 개의 EMA를 이용합니다: 빠른 EMA (3-20 기간 조정 가능), 중간 EMA (21-60 기간 조정 가능), 느린 EMA (130 기간 고정). 거래 신호는 다음을 기반으로 합니다.
이 전략은 잘 구조화되고 논리적으로 엄격한 트렌드 다음 시스템을 나타냅니다. 여러 기술적 지표의 조합은 신뢰성과 유연성을 모두 보장합니다. 최적화 할 여지가 있지만 전반적인 프레임워크는 실질적인 응용을위한 견고한 토대를 제공합니다. 거래자는 매개 변수를 철저히 최적화하고 라이브 구현 전에 백테스팅을 수행하여 시장 특성에 따라 특정 조정을 수행하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia de Largo con Medias Móviles", overlay=true) // Parámetros ajustables de las medias móviles fast_length = input.int(10, title="Período de Media Rápida", minval=3, maxval=20) mid_length = input.int(30, title="Período de Media Intermedia", minval=21, maxval=60) slow_length = input.int(130, title="Período de Media Lenta (EMA 130)", minval=130) // Calcular las medias móviles fast_ma = ta.ema(close, fast_length) mid_ma = ta.ema(close, mid_length) slow_ma = ta.ema(close, slow_length) // Media lenta exponencial de 130 periodos // Calcular la pendiente manualmente (restando el valor actual de la media móvil del valor de 1 barra anterior) slope_ma130 = slow_ma - slow_ma[1] // Pendiente de la media lenta slope_mid_ma = mid_ma - mid_ma[1] // Pendiente de la media intermedia // Condición para pendiente positiva de la media lenta slow_ma_trending_up = slope_ma130 > 0 // Condición para pendiente positiva de la media intermedia mid_ma_trending_up = slope_mid_ma > 0 // Condiciones para entrada en largo (Cruce de la media rápida sobre la media intermedia, solo si la media intermedia tiene pendiente positiva y la media lenta también tiene pendiente positiva) long_condition = ta.crossover(fast_ma, mid_ma) and mid_ma_trending_up and slow_ma_trending_up // Condiciones para entrada adicional (Cruce de la media rápida sobre la media lenta, solo si la media lenta tiene pendiente positiva) additional_long_condition = ta.crossover(fast_ma, slow_ma) and slow_ma_trending_up // Condiciones para cierre de la posición (Cruce de la media rápida por debajo de la media intermedia) exit_condition = ta.crossunder(fast_ma, mid_ma) // Abrir la posición si se cumplen las condiciones (incluyendo las pendientes de las medias) if (long_condition or additional_long_condition) strategy.entry("Comprar", strategy.long) // Cerrar la posición si se cumplen las condiciones de salida if (exit_condition) strategy.close("Comprar") // Mostrar las medias móviles en el gráfico plot(fast_ma, color=color.green, linewidth=1, title="EMA Rápida") plot(mid_ma, color=color.orange, linewidth=1, title="EMA Intermedia") plot(slow_ma, color=color.red, linewidth=2, title="EMA Lenta (130 Periodos)")