Chiến lược này là một hệ thống theo xu hướng dựa trên trung bình di chuyển theo hàm số ba (EMA). Nó nắm bắt xu hướng thị trường thông qua các tín hiệu chéo và xác nhận hướng xu hướng bằng cách sử dụng EMA nhanh, trung gian và chậm, chỉ có các vị trí dài trong xu hướng tăng. Chiến lược thực hiện các kiểm soát dừng lỗ nghiêm ngặt và cơ chế xác thực kiểm tra lại để đạt được hiệu suất giao dịch mạnh mẽ.
Chiến lược sử dụng ba EMA với các khoảng thời gian khác nhau: EMA nhanh (có thể điều chỉnh 3-20 khoảng thời gian), EMA trung gian (có thể điều chỉnh 21-60 khoảng thời gian) và EMA chậm (còn 130 khoảng thời gian cố định).
Chiến lược này đại diện cho một hệ thống theo xu hướng có cấu trúc tốt và nghiêm ngặt theo logic. Sự kết hợp của nhiều chỉ số kỹ thuật đảm bảo cả độ tin cậy và tính linh hoạt. Mặc dù có chỗ cho tối ưu hóa, khuôn khổ tổng thể cung cấp một nền tảng vững chắc cho ứng dụng thực tế. Các nhà giao dịch được khuyên nên tối ưu hóa kỹ lưỡng các tham số và tiến hành kiểm tra hậu quả trước khi thực hiện trực tiếp, thực hiện các điều chỉnh cụ thể dựa trên đặc điểm thị trường.
/*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)")