
이 전략은 트리플 지수 이동 평균 ((EMA) 을 기반으로 한 트렌드 추적 전략이다. 전략은 빠른, 중간, 느린 3 개의 지수 이동 평균의 교차 신호와 트렌드 방향 판단을 통해 시장의 흐름을 포착하고, 상승 추세에서만 다자리 포지션을 열는다. 이 전략은 엄격한 손실 제어 및 재검증 메커니즘을 적용하여 안정적인 거래 성과를 달성하기 위해 노력하고 있습니다.
이 전략은 3개의 다른 주기의 지수 이동 평균을 사용한다: 빠른 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)")