Эта стратегия представляет собой трендовую торговую систему, которая сочетает в себе индекс относительной силы (RSI), взвешенную скользящую среднюю (WMA) и экспоненциальную скользящую среднюю (EMA). Стратегия определяет изменения тренда рынка путем мониторинга уровней RSI и перекрестного взаимодействия между WMA и EMA для генерации сигналов покупки и продажи.
Основная логика стратегии основана на следующих ключевых элементах: 1. Использует 14-периодный РСИ для расчета условий перекупа/перепродажи на рынке 2. Вычисляет 45-периодную WMA и 89-периодную EMA Условия въезда: - Долгий сигнал: когда RSI ниже 50 и WMA пересекает EMA - короткий сигнал: когда RSI выше 50 и WMA пересекает ниже EMA Стратегия использует функцию ta.rma для плавного расчета RSI, улучшая стабильность сигнала 5. Использует функционал графика для обозначения точек покупки/продажи на графике для интуитивного суждения
Стратегия создает относительно полную систему, следующую за трендом, путем объединения индикаторов 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) // Plot RSI, WMA, and EMA plot(rsi, "RSI", color=#7E57C2) plot(wma, title="WMA", color=wmaColorInput, linewidth=2) plot(ema, title="EMA", color=emaColorInput, linewidth=2) // 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) if (shortCondition) strategy.entry("Short", strategy.short) // 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")