
Эта стратегия является стратегией отслеживания тенденций, основанной на трехмерных скользящих средних показателях (EMA). Стратегия захватывает рыночные тенденции с помощью перекрестных сигналов с быстрыми, средними и медленными тремя скользящими средними показателями, а также определяет направление тенденции, открывая многосторонние позиции только в восходящем тренде.
Стратегия использует индексные скользящие средние с тремя различными циклами: быстрая ЭМА (с 3 до 20 циклов), средняя ЭМА (с 21 до 60 циклов) и медленная ЭМА (с 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)")