
Strategi ini adalah strategi pelacakan tren berdasarkan tiga indeks bergerak rata-rata ((EMA)). Strategi ini menangkap tren pasar melalui sinyal silang dari tiga indeks bergerak rata-rata cepat, menengah, dan lambat, serta penilaian arah tren, hanya membuka posisi multihead dalam tren naik. Strategi ini menggunakan kontrol stop loss yang ketat dan mekanisme verifikasi backtesting untuk mencapai kinerja perdagangan yang kuat.
Strategi ini menggunakan tiga periode berbeda dari rata-rata bergerak indeks: EMA cepat (bersiklus 3-20), EMA menengah (bersiklus 21-60), dan EMA lambat (bersiklus 130). Sinyal perdagangan didasarkan pada kondisi berikut:
Strategi ini adalah sistem pelacakan tren yang terstruktur, logis dan ketat. Penggunaan kombinasi dari beberapa indikator teknis memastikan keandalan strategi dan memberikan fleksibilitas yang memadai. Meskipun ada ruang untuk pengoptimalan, kerangka keseluruhan memiliki dasar praktik yang baik.
/*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)")