Стратегия следования за трендом с использованием двойной скользящей средней и стохастического RSI

EMA RSI SRSI SMA
Дата создания: 2025-02-10 16:56:56 Последнее изменение: 2025-02-10 16:56:56
Копировать: 0 Количество просмотров: 577
1
Подписаться
1617
Подписчики

Стратегия следования за трендом с использованием двойной скользящей средней и стохастического RSI

Обзор

Это стратегия для отслеживания трендов, которая сочетает в себе индикаторные движущиеся средние ((EMA) и случайные относительно сильные индикаторы ((Stochastic RSI)). Стратегия использует перекрестки EMA 9 и EMA 21 для определения направления тренда, а также использует Stochastic RSI для подтверждения состояния рынка, что повышает качество торговых сигналов.

Стратегический принцип

Основная логика стратегии основана на сочетании двух основных технических показателей:

  1. Двойная равнолинейная система: используется индикаторная движущаяся средняя ((EMA) с 9 и 21 циклами для идентификации тенденции. При быстром EMA ((9) вверх пересекая медленный EMA ((21) образуется полисигнал, а при медленном EMA ((9) вверх образуется пустой сигнал.
  2. РАНДОМНЫЙ РСИ: выявление зоны перекупа и перепродажи путем вычисления РСИ-значений. Этот индикатор сначала рассчитывает 14-циклический РСИ, затем переводит его в случайную форму и, наконец, сглаживает его с помощью 3-циклической простой скользящей средней (SMA).

Условия срабатывания торгового сигнала:

  • Провести много условий: EMA 9 вверх через EMA 21 и Stochastic RSI ниже превышения проданной пороговой отметки ((20)
  • Пониженные условия: EMA 9 вниз через EMA 21 и Stochastic RSI выше превышения торговой границы ((80))
  • Условия равновесия: когда появляется обратный торговый сигнал

Стратегические преимущества

  1. Механизм подтверждения сигнала: снижение риска ложных прорывов в сочетании с трендовыми и динамическими показателями
  2. Гибкая параметровая настройка: позволяет трейдерам корректировать параметры EMA-циклов и Stochastic RSI в зависимости от различных рыночных условий
  3. Четкая визуализация: стратегия отображает прямую линию EMA на ценовом графике и отображает стохастический RSI в отдельной панели для удобства анализа
  4. Управление рисками: включает в себя основные механизмы остановки и получения прибыли
  5. Двойная фильтрация: использование трендов и показателей перекупа и перепродажи в качестве двойной фильтрации повышает качество торгов

Стратегический риск

  1. Риск обратного тренда: в условиях резкой колебательности рынка может возникнуть ложный симметричный крест.
  2. Отсталость: движущиеся средние по своей сути являются отсталыми показателями, что может привести к задержке вступления
  3. Риски на горизонтальном рынке: возможны частое возникновение ложных сигналов на рынке без видимой тенденции
  4. Чувствительность параметров: различные параметры могут привести к значительно различным результатам
  5. Зависимость от рыночной конъюнктуры: стратегии могут хорошо работать в условиях сильного тренда, но могут плохо работать в условиях потрясения

Направление оптимизации стратегии

  1. Введение фильтрации волатильности: можно добавить индикатор ATR для фильтрации торговых сигналов в условиях низкой волатильности
  2. Оптимизация механизмов остановки убытков: возможность отслеживания остановки убытков, позволяющая лучше защищать прибыль
  3. Добавление временной фильтрации: добавление временного окна для торгов, чтобы избежать периодов низкой ликвидности
  4. Добавление подтверждения объема транзакций: объем транзакций учитывается при генерации торговых сигналов
  5. Самостоятельная адаптация параметров оптимизации: механизм, позволяющий приспосабливать параметры к динамике рыночных условий

Подвести итог

Это четко структурированная, логически строгая стратегия отслеживания тенденций. Благодаря сочетанию EMA и Stochastic RSI, стратегия имеет хорошую балансировку в определении тенденций и состояния рынка. Хотя существуют некоторые присущие риски, благодаря разумной оптимизации параметров и управлению рисками стратегия может поддерживать стабильную производительность в различных рыночных условиях.

Исходный код стратегии
/*backtest
start: 2025-01-10 00:00:00
end: 2025-02-09 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA 9/21 + Stoch RSI Strategy", shorttitle="EMA+StochRSI", overlay=true)

// ===== Užívateľské vstupy ===== //
emaFastLen     = input.int(9,   "Rýchla EMA (9)")
emaSlowLen     = input.int(21,  "Pomalá EMA (21)")
rsiLen         = input.int(14,  "RSI Length")
stochRsiLen    = input.int(14,  "Stoch RSI Length")     // úsek, z ktorého berieme min/max RSI
stochSignalLen = input.int(3,   "Stoch RSI K/D Smoothing")
overSold       = input.int(20,  "Stoch RSI Oversold (%)")
overBought     = input.int(80,  "Stoch RSI Overbought (%)")

// ===== Výpočet EMA(9) a EMA(21) ===== //
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)

// ===== Výpočet RSI a Stoch RSI ===== //
// 1) Klasické RSI
rsiValue = ta.rsi(close, rsiLen)

// 2) Prevod RSI -> Stoch RSI: 
//    (rsiValue - min(rsiValue, stochRsiLen)) / (max(rsiValue, stochRsiLen) - min(rsiValue, stochRsiLen)) * 100
//    Následne vyhladíme K a D (podobne ako pri bežnom Stochastic)
rsiLowest  = ta.lowest(rsiValue,  stochRsiLen)
rsiHighest = ta.highest(rsiValue, stochRsiLen)
stochRaw   = (rsiValue - rsiLowest) / math.max(rsiHighest - rsiLowest, 1e-10) * 100.0
stochK     = ta.sma(stochRaw, stochSignalLen)
stochD     = ta.sma(stochK,   stochSignalLen)

// ===== Podmienky pre LONG / SHORT ===== //
// LONG, ak:
//  - EMA(9) prekríži EMA(21) smerom nahor
//  - Stoch RSI je v prepredanej zóne (t.j. stochK < overSold)
longCondition  = ta.crossover(emaFast, emaSlow) and (stochK < overSold)

// SHORT, ak:
//  - EMA(9) prekríži EMA(21) smerom nadol
//  - Stoch RSI je v prekúpenej zóne (stochK > overBought)
shortCondition = ta.crossunder(emaFast, emaSlow) and (stochK > overBought)

// ===== Vstup do pozícií ===== //
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// ===== Výstup z pozície pri opačnom signáli (okamžite na trhu) ===== //
if strategy.position_size > 0 and shortCondition
    // Ak držíme LONG a príde signál na SHORT, zavrieme LONG
    strategy.close("Long", comment="Exit Long")

if strategy.position_size < 0 and longCondition
    // Ak držíme SHORT a príde signál na LONG, zavrieme SHORT
    strategy.close("Short", comment="Exit Short")

// ===== (Nepovinné) Môžeš pridať stop-loss, take-profit, trailing stop atď. ===== //