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