Эта стратегия представляет собой следующую торговую систему, которая сочетает в себе индекс относительной силы (RSI), взвешенную скользящую среднюю (WMA) и экспоненциальную скользящую среднюю (EMA). Используя несколько технических индикаторов, стратегия фиксирует изменения рыночной динамики в точках перелома тренда для генерации торговых сигналов. Система использует кроссоверы WMA и EMA для подтверждения направления тренда, включая RSI для фильтрации рыночных условий для улучшения точности торговли.
Основная логика стратегии основана на следующих ключевых элементах: 1. Расчет RSI использует 14-периодную установку для измерения рыночных условий перекупа/перепродажи 2. Кроссоверы WMA и EMA за 45 и 89 периодов подтверждают тенденционные переходы Условия въезда: - Длинный сигнал: WMA пересекает EMA и RSI<50 - Краткий сигнал: WMA пересекается ниже EMA и RSI>50 4. Система визуализирует рыночные условия с помощью изменения цвета RSI, показывая зеленый, когда RSI> 70 и красный, когда RSI<30 5. Синий фон установлен в диапазоне RSI 30-70 для определения нейтральных зон
Это стратегия, основанная на нескольких технических показателях, объединяющая RSI, WMA и EMA для захвата точек обратного тренда рынка при сохранении стабильности торговли.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy(title="RSI + WMA + EMA Strategy", shorttitle="RSI Strategy", overlay=true) // RSI Settings rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") // WMA and EMA Settings wmaLengthInput = input.int(45, minval=1, title="WMA Length", group="WMA Settings") wmaColorInput = input.color(color.blue, title="WMA Color", group="WMA Settings") emaLengthInput = input.int(89, minval=1, title="EMA Length", group="EMA Settings") emaColorInput = input.color(color.purple, title="EMA Color", group="EMA Settings") // RSI Calculation change = ta.change(rsiSourceInput) up = ta.rma(math.max(change, 0), rsiLengthInput) down = ta.rma(-math.min(change, 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // WMA and EMA Calculation wma = ta.wma(rsi, wmaLengthInput) ema = ta.ema(rsi, emaLengthInput) // RSI Color Logic rsiColor = rsi > 70 ? color.new(color.green, 100 - math.round(rsi)) : rsi < 30 ? color.new(color.red, math.round(rsi)) : color.new(color.blue, 50) // Plot RSI, WMA, and EMA plot(rsi, "RSI", color=rsiColor) plot(wma, title="WMA", color=wmaColorInput, linewidth=2) plot(ema, title="EMA", color=emaColorInput, linewidth=2) // Highlight RSI Area between 30 and 70 bgcolor(rsi >= 30 and rsi <= 70 ? color.new(color.blue, 90) : na) // Entry and Exit Conditions longCondition = ta.crossover(wma, ema) and rsi < 50 shortCondition = ta.crossunder(wma, ema) and rsi > 50 if (longCondition) strategy.entry("Long", strategy.long) alert("Buy Signal: WMA crossed above EMA, RSI < 50", alert.freq_once_per_bar) if (shortCondition) strategy.entry("Short", strategy.short) alert("Sell Signal: WMA crossed below EMA, RSI > 50", alert.freq_once_per_bar) // Optional: Plot Buy/Sell Signals on Chart plotshape(series=longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")