Стратегия торговли криптовалютой на основе Stochastic RSI


Дата создания: 2023-12-15 10:08:14 Последнее изменение: 2023-12-15 10:08:14
Копировать: 2 Количество просмотров: 982
1
Подписаться
1621
Подписчики

Стратегия торговли криптовалютой на основе Stochastic RSI

Обзор стратегии

Стратегия называется “Стратегия торговли криптовалютами на основе стохастического RSI”. Стратегия объединяет два показателя - относительно сильный индекс (RSI) и случайный индекс с гладкой движущейся средней (RSI) - для идентификации сигналов покупки и продажи криптовалют.

Основная идея стратегии заключается в следующем: сначала вычислить значения RSI, а затем на основе RSI построить Stochastic RSI, то есть значения K и D. При переходе через значение D выше значения K создается сигнал покупки, а при переходе через значение D ниже значения K - сигнал продажи. Для фильтрации ложных сигналов стратегия также вводит индекс скорости изменения (RVI) и его гладкую скользящую среднюю для подтверждения.

Второе: детали стратегии.

  1. Расчетная длина RSI 14.

  2. Стохастический индикатор RSI, построенный на основе RSI длиной 14, получает значения K и D ((D - 3-х периодное скользящее среднее K)).

  3. Расчетная длина RVI 5 и ее сигнальные линии ((т. е. гладкая скользящая средняя RVI)) [2].

  4. При прохождении K над D, если RVI > сигнальная линия и RVI < сигнальная линия, то создается сигнал покупки; при прохождении K ниже D, если RVI < сигнальная линия и RVI > сигнальная линия, то создается сигнал продажи.

  5. В зависимости от полученного сигнала, совершаются операции по покупке или продаже открытых позиций.

Третье, анализ стратегических преимуществ.

  1. В сочетании с двойным подтверждением Stochastic RSI и RVI, можно эффективно отфильтровывать ложные сигналы.

  2. Индекс RVI может отражать перекуп и перепродажу в краткосрочной перспективе, избегая открытия позиций в крайних точках.

  3. Индекс Stochastic RSI может идентифицировать зоны перекупа и перепродажи, используя форму золотого и крестообразного форка индикатора KDJ для определения точки покупки и продажи.

  4. Результаты обратной связи показывают, что эта стратегия хорошо работает на некоторых криптовалютных торговых парах (например, FCT/BTC).

Анализ стратегических рисков

  1. Аналогичная стратегия для отслеживания стоп-лосс, неправильно настроенная стоп-лосс может привести к тюремному заключению.

  2. Частота создания сигнала может быть слишком высокой, и расходы на транзакцию должны быть учтены.

  3. Как KDJ, так и RVI могут создавать ложные сигналы, что приводит к ненужным потерям.

  4. Параметры стратегии должны быть оптимизированы для различных торговых пар.

Пятое: оптимизация стратегии

  1. Добавить мобильный стоп для блокировки прибыли, можно обратиться к ATR для установки стоп-лосса.

  2. Оптимизация параметров RVI и Stochastic RSI, чтобы сделать сигнал более четким.

  3. Повышение контроля за объемом сделок, чтобы избежать перегрузки отдельных заказов.

  4. Добавление фильтрации, чтобы избежать открытия высоких позиций. Можно ввести индикатор волатильности, чтобы определить, находится ли он в состоянии шока.

  5. Проверка различных криптовалютных пар для поиска наиболее подходящих.

В-шестых, итоги стратегии

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

Исходный код стратегии
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true)
Per = input(5, title="Length", minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
D = sma(K, smoothD)


rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per)
sig = swma(rvi)
//plot(rvi, color=green, title="RVI")
//plot(sig, color=red, title="Signal")

//plot(K,  title="K")
//plot(D,  title="D")
Dn = K <= D  and K > 70 and rvi <= sig  and rvi[1] >= sig[1]
Up= K >= D  and K < 30 and rvi >= sig  and rvi[1] <= sig[1]
ARROW =  Up - Dn
plotarrow(ARROW, title="Down Arrow",  colordown=red, transp=0, maxheight=10, minheight=10)
plotarrow(ARROW, title="Up Arrow", colorup=lime,  transp=0, maxheight=10, minheight=10)
long = crossover(Up, Dn)
short = crossunder(Up, Dn)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

//plot(long_signal, "BUY", color=green)
//plot(short_signal, "SELL", color=red)
strategy.entry("BUY", strategy.long, when=long_signal)
strategy.entry("SELL", strategy.short, when=short_signal)