
Стратегия представляет собой систему трендового трейдинга, которая сочетает в себе двузначные скользящие средние ((EMA) и относительно слабые показатели ((RSI)). Стратегия работает в 5-минутных временных рамках, чтобы захватить рыночные тенденции путем пересечения краткосрочных и долгосрочных EMA и сочетания показателей RSI, а также для контроля риска в сочетании с фиксированным процентом стоп-стоп.
Стратегия основана на следующих ключевых компонентах:
Это полная торговая система, объединяющая технические показатели и управление рисками. Стратегия эффективно идентифицирует тенденции с помощью EMA и RSI и контролирует риски с помощью фиксированных стоп-стоп. Хотя существуют определенные ограничения, оптимизированное направление, рекомендованное для дальнейшего повышения стабильности и прибыльности стратегии.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("5-Minute EMA + RSI Strategy", overlay=true, shorttitle="EMA RSI")
// Inputs
ema_short_length = input.int(9, title="Short EMA Length", minval=1)
ema_long_length = input.int(21, title="Long EMA Length", minval=1)
rsi_length = input.int(14, title="RSI Length")
rsi_overbought = input.int(70, title="RSI Overbought Level")
rsi_oversold = input.int(30, title="RSI Oversold Level")
// Calculate EMAs
ema_short = ta.ema(close, ema_short_length)
ema_long = ta.ema(close, ema_long_length)
// Calculate RSI
rsi = ta.rsi(close, rsi_length)
// Plot EMAs
plot(ema_short, title="Short EMA", color=color.blue, linewidth=2)
plot(ema_long, title="Long EMA", color=color.red, linewidth=2)
// Conditions for Entries
long_condition = ta.crossover(ema_short, ema_long) and rsi > 50
short_condition = ta.crossunder(ema_short, ema_long) and rsi < 50
// Execute Trades
if (long_condition)
strategy.entry("Buy", strategy.long)
if (short_condition)
strategy.entry("Sell", strategy.short)
// Risk Management: Take Profit & Stop Loss
take_profit_perc = input.float(1.5, title="Take Profit %", step=0.1) // 1.5% target
stop_loss_perc = input.float(0.5, title="Stop Loss %", step=0.1) // 0.5% stop
strategy.exit("Take Profit/Stop Loss", "Buy",
profit=take_profit_perc, loss=stop_loss_perc)
strategy.exit("Take Profit/Stop Loss", "Sell",
profit=take_profit_perc, loss=stop_loss_perc)
// Add Visual Alerts
plotshape(long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)