Эта стратегия генерирует торговые сигналы, основанные на перекрестке двух скользящих средних (EMA). Когда краткосрочная EMA (20-дневная) пересекается выше долгосрочной EMA (50-дневная), запускается сигнал покупки; когда краткосрочная EMA пересекается ниже долгосрочной EMA, запускается сигнал продажи. Кроме того, стратегия составляет 200-дневную EMA в качестве отсчета для долгосрочной тенденции. Основная идея этой стратегии заключается в том, чтобы улавливать сдвиги в рыночных тенденциях, используя перекрестку скользящих средних с разными периодами.
Стратегия перекрестного использования двойных скользящих средних - это простая и простая стратегия торговли, подходящая для трендовых рынков. Она использует перекрестное использование краткосрочных и долгосрочных скользящих средних для отслеживания сдвигов в рыночных тенденциях, включая долгосрочную тенденцию. Хотя стратегия имеет некоторые ограничения, такие как оптимальная производительность на нестабильных рынках и отставание скользящих средних, ее можно еще больше улучшить, включив дополнительные индикаторы, оптимизируя параметры, реализуя меры управления рисками и подтверждая тенденции.
/*backtest start: 2023-03-23 00:00:00 end: 2024-03-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy by Peter Gangmei", overlay=true) // Define the length for moving averages short_ma_length = input.int(20, "Short MA Length") long_ma_length = input.int(50, "Long MA Length") long_ma_200_length = input.int(200, "Long MA 200 Length") // Define start time for testing start_time = timestamp(2024, 01, 01, 00, 00) // Calculate current date and time current_time = timenow // Calculate moving averages ema20 = ta.ema(close, short_ma_length) ema50 = ta.ema(close, long_ma_length) ema200 = ta.ema(close, long_ma_200_length) // Crossing conditions crossed_above = ta.crossover(ema20, ema50) crossed_below = ta.crossunder(ema20, ema50) // Entry and exit conditions within the specified time frame if true if (crossed_above) strategy.entry("Buy", strategy.long) alert("Buy Condition", alert.freq_once_per_bar_close) if (crossed_below) strategy.entry("Sell", strategy.short) alert("Sell Condition", alert.freq_once_per_bar_close) // Plotting moving averages for visualization plot(ema20, color=color.green, title="EMA20") plot(ema50, color=color.red, title="EMA50") plot(ema200, color=color.blue, title="EMA200") // Placing buy and sell markers plotshape(series=crossed_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=crossed_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")