Эта стратегия является краткосрочной торговой системой, которая сочетает в себе двойной кроссовер EMA с индикатором RSI. Она использует 9-периодные и 21-периодные экспоненциальные скользящие средние значения (EMA) для определения тренда, наряду с индексом относительной силы (RSI) для подтверждения импульса, внедряя фиксированные уровни стоп-лосса и прибыли для управления рисками. Стратегия предназначена в основном для торговли в 5-минутные временные рамки и особенно эффективна в нестабильных рыночных условиях.
Основная логика основана на синергетическом эффекте двух технических индикаторов. Во-первых, направление тренда определяется перекрестностью 9-периодической EMA и 21-периодической EMA, при этом восходящий тренд подтверждается, когда краткосрочная EMA пересекает длительную EMA, и нисходящий тренд, когда происходит обратное. Во-вторых, индикатор RSI используется для подтверждения импульса путем фильтрации сделок на основе условий перекупки и перепродажи. Стратегия реализует 1% стоп-лосс и 2% -прибыль, сохраняя соотношение риск-вознаграждение 1:2.
Эта стратегия объединяет индикаторы EMA и RSI для создания относительно полной краткосрочной торговой системы. Ее сильные стороны заключаются в четких сигналах и контролируемом риске, хотя есть возможности для оптимизации. Благодаря включению динамического стоп-лосса, временной фильтрации и других механизмов, стабильность и рентабельность стратегии могут быть дополнительно повышены. В целом, она представляет собой хорошо обоснованную, логически обоснованную торговую стратегию, которая служит отличной основой для краткосрочной торговли и может быть дополнительно усовершенствована и оптимизирована.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("abo 3llash - EMA + RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Parameters emaShortLength = input.int(9, title="Short EMA Length") emaLongLength = input.int(21, title="Long EMA Length") rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Level") rsiOversold = input.int(30, title="RSI Oversold Level") stopLossPercent = input.float(1, title="Stop Loss Percentage") / 100 takeProfitPercent = input.float(2, title="Take Profit Percentage") / 100 // Calculating EMAs and RSI emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) rsi = ta.rsi(close, rsiLength) // Buy and Sell Conditions buyCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought sellCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold // Plotting the EMAs plot(emaShort, title="Short EMA", color=color.blue) plot(emaLong, title="Long EMA", color=color.red) // Generating buy and sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Execution if (buyCondition) strategy.entry("Buy", strategy.long) // Set Stop Loss and Take Profit for Buy stopLossLevel = close * (1 - stopLossPercent) takeProfitLevel = close * (1 + takeProfitPercent) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLossLevel, limit=takeProfitLevel) if (sellCondition) strategy.entry("Sell", strategy.short) // Set Stop Loss and Take Profit for Sell stopLossLevel = close * (1 + stopLossPercent) takeProfitLevel = close * (1 - takeProfitPercent) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLossLevel, limit=takeProfitLevel)