Эта стратегия представляет собой обменную торговую систему тренда, которая сочетает в себе экспоненциальные скользящие средние (EMA) и индекс относительной силы (RSI). Она определяет точки обратного тренда через перекрестные сигналы 9-периодных и 21-периодных EMA, подтвержденные прорывами RSI на уровне 50. Система включает в себя комплексный механизм управления рисками с фиксированными коэффициентами риск-вознаграждение для эффективного контроля снижения.
Основная логика основана на перекрестке между быстрой EMA (9-периодической) и медленной EMA (21-периодической), с подтверждением импульса от RSI. Система генерирует сигнал покупки, когда быстрая EMA переходит выше медленной EMA, когда RSI выше 50, и сигнал продажи, когда быстрая EMA переходит ниже медленной EMA, когда 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")