
Стратегия представляет собой систему обратного тренда, которая сочетает в себе индексные скользящие средние ((EMA) и относительно слабые показатели ((RSI)). С помощью перекрестных сигналов 9-циклической и 21-циклической ЭМА, в сочетании с подтверждением прорыва RSI на уровне 50, она предоставляет трейдерам точную точку обратного тренда.
Основная логика стратегии основана на перекрестке быстрой ЭМА (цикл 9) и медленной ЭМА (цикл 21) и использует индикатор RSI для подтверждения динамики. Когда быстрая ЭМА вверх пересекает медленную ЭМА, а RSI больше 50, система посылает многосигналы; когда быстрая ЭМА вниз пересекает медленную ЭМА, а RSI меньше 50, система посылает сигнал равновесия.
Стратегия в сочетании с перекрестным EMA и подтверждением динамики RSI создает прочную систему отслеживания тенденций. Совершенный механизм управления рисками и четкий визуальный интерфейс делают ее очень практичной. Хотя ее эффективность на поперечном рынке незначительно невысока, общая эффективность стратегии может быть еще больше повышена с помощью рекомендуемого направления оптимизации.
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-25 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover with RSI Confirmation and Buy/Sell Signals", overlay=true)
// Input for EMAs and RSI
fastLength = input.int(9, title="Fast EMA Length")
slowLength = input.int(21, title="Slow EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiLevel = input.int(50, title="RSI Level", minval=0, maxval=100)
// Calculate the EMAs and RSI
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
rsi = ta.rsi(close, rsiLength)
// Plot the EMAs on the chart
plot(fastEMA, color=color.green, linewidth=2, title="Fast EMA (9)")
plot(slowEMA, color=color.red, linewidth=2, title="Slow EMA (21)")
// Plot the RSI on a separate pane (below the chart)
hline(rsiLevel, "RSI Level", color=color.gray)
plot(rsi, color=color.blue, linewidth=2, title="RSI")
// Buy condition: Fast EMA crosses above Slow EMA and RSI crosses above 50
buyCondition = ta.crossover(fastEMA, slowEMA) and rsi > rsiLevel
// Sell condition: Fast EMA crosses below Slow EMA and RSI crosses below 50
sellCondition = ta.crossunder(fastEMA, slowEMA) and rsi < rsiLevel
// Execute trades based on conditions
if (buyCondition)
strategy.entry("Buy", strategy.long)
label.new(bar_index, low, "Buy", color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small)
if (sellCondition)
strategy.close("Buy")
label.new(bar_index, high, "Sell", color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small)
// Strategy exit (optional): Fixed risk-to-reward ratio (take profit and stop loss)
takeProfit = input.int(2, title="Take Profit (Risk-Reward)", minval=1)
stopLoss = input.int(1, title="Stop Loss (Risk-Reward)", minval=1)
strategy.exit("Exit Buy", "Buy", stop=close * (1 - stopLoss / 100), limit=close * (1 + takeProfit / 100))
// Plot buy/sell arrows for visualization
plotarrow(buyCondition ? 1 : na, offset=-1, colorup=color.green, maxheight=30, title="Buy Signal Arrow")
plotarrow(sellCondition ? -1 : na, offset=-1, colordown=color.red, maxheight=30, title="Sell Signal Arrow")