Двойная стратегия: стратегия комбинирования RSI и стохастического индикатора


Дата создания: 2023-10-07 16:19:30 Последнее изменение: 2023-10-07 16:19:30
Копировать: 0 Количество просмотров: 971
1
Подписаться
1617
Подписчики

Обзор

Эта стратегия использует сравнительно сильный и слабый индекс ((RSI) в сочетании с случайными индикаторами, чтобы сформировать двойную стратегию, чтобы более точно судить о том, что рынок перекупается и перепродается, и получить более надежный торговый сигнал.

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

В этой стратегии RSI имеет длину 14 циклов, превышение на 70 и превышение на 30 циклов. K-значения случайных индикаторов рассчитываются с использованием 3-циклической средней линии, а D-значения - с использованием 3-циклической средней линии K-значений.

Стратегия использует комбинацию RSI и случайных индикаторов для создания торговых сигналов:

  1. Когда случайный индикатор появляется вверх (K-линия пересекает D-линию с нижней стороны), а RSI выше 70, это определяется как сигнал о перекупке и дефолт.

  2. Когда случайный индикатор появляется вниз (К-линия сверху вниз через D-линию), в то время как RSI ниже 30, это определяется как сигнал о перепродаже.

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

Анализ преимуществ

Наибольшим преимуществом такой двойной стратегии является то, что она позволяет эффективно уменьшить количество ложных сигналов и повысить их надежность.

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

В то время как случайный индикатор может определить направление ценовой тенденции. Пересечение линии D на линии K указывает на то, что тенденция к росту цен может продолжаться, в этом случае RSI имеет более высокую надежность сигналов перекупа, и его следует рассматривать как истинную перекупу, а не ложную перекупу.

Наоборот, K-линия, проходящая через D-линию, указывает на то, что ценовая тенденция может быть обращена вспять, и даже если RSI показывает сигнал о перепродаже, это может быть ложным перепродажами, не заключающими сделки.

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

Анализ рисков

В этой стратегии есть определенные риски, о которых следует помнить:

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

  2. Настройка параметров RSI и случайных индикаторов требует четкой связи, например, слишком короткий цикл RSI, ненадлежащая гладкость случайных индикаторов K и D могут повлиять на точность сигнала.

  3. Когда индикатор посылает сигнал, необходимо также подтвердить его в сочетании с такими факторами, как динамика цен, объем сделок, чтобы избежать ложного прорыва.

  4. Необходимо обращать внимание на системные риски и избегать слепого трейдинга при резких колебаниях на рынке.

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

Эта стратегия также может быть оптимизирована в следующих аспектах:

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

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

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

  4. Применение методов машинного обучения для выявления более сложных правил торговли, таких как сигналы в сочетании с брин-полосами, ценовыми формами и т. д., повышает стратегическую стабильность.

  5. Разработка более интеллектуальной системы диверсифицированного трейдинга с использованием передовых технологий, таких как глубокое обучение, для оптимизации правил стратегии в более крупном пространстве.

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

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

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

//@version=2
//Based on Divergences and Hidden Divergences
//Locates bottom market and reversals

strategy("Vix FIX / StochRSI Strategy", pyramiding=9, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=3, overlay=false)

///////////// Stochastic Slow
Stochlength = input(14, minval=1, title="lookback length of Stochastic")
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
smoothK = input(3, title="smoothing of Stochastic %K ")
smoothD = input(3, title="moving average of Stochastic %K")
k = sma(stoch(close, high, low, Stochlength), smoothK)
d = sma(k, smoothD)

 
///////////// RSI 
RSIlength = input( 14, minval=1 , title="lookback length of RSI")
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)

///////////// Double strategy: RSI strategy + Stochastic strategy

pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
new = input(false, title="-------Text Plots Below Use Original Criteria-------" )
sbc = input(false, title="Show Text Plot if WVF WAS True and IS Now False")
sbcc = input(false, title="Show Text Plot if WVF IS True")
new2 = input(false, title="-------Text Plots Below Use FILTERED Criteria-------" )
sbcFilt = input(true, title="Show Text Plot For Filtered Entry")
sbcAggr = input(true, title="Show Text Plot For AGGRESSIVE Filtered Entry")
ltLB = input(40, minval=25, maxval=99, title="Long-Term Look Back Current Bar Has To Close Below This Value OR Medium Term--Default=40")
mtLB = input(14, minval=10, maxval=20, title="Medium-Term Look Back Current Bar Has To Close Below This Value OR Long Term--Default=14")
str = input(3, minval=1, maxval=9, title="Entry Price Action Strength--Close > X Bars Back---Default=3")
//Alerts Instructions and Options Below...Inputs Tab
new4 = input(false, title="-------------------------Turn On/Off ALERTS Below---------------------" )
new5 = input(false, title="----To Activate Alerts You HAVE To Check The Boxes Below For Any Alert Criteria You Want----")
sa1 = input(false, title="Show Alert WVF = True?")
sa2 = input(false, title="Show Alert WVF Was True Now False?")
sa3 = input(false, title="Show Alert WVF Filtered?")
sa4 = input(false, title="Show Alert WVF AGGRESSIVE Filter?")

//Williams Vix Fix Formula
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph

//Filtered Bar Criteria
upRange = low > low[1] and close > high[1]
upRange_Aggr = close > close[1] and close > open[1]
//Filtered Criteria
filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh))
filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and not (wvf < upperBand and wvf < rangeHigh)

//Alerts Criteria
alert1 = wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
alert2 = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh) ? 1 : 0
alert3 = upRange and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered ? 1 : 0
alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr ? 1 : 0

//Coloring Criteria of Williams Vix Fix
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray

isOverBought = (crossover(k,d) and k > StochOverBought) ? 1 : 0
isOverBoughtv2 = k > StochOverBought ? 1 : 0
filteredAlert = alert3 ? 1 : 0
aggressiveAlert = alert4 ? 1 : 0

plot(isOverBought, "Overbought / Crossover", style=line, color=red) 
plot(filteredAlert, "Filtered Alert", style=line, color=fuchsia) 
plot(aggressiveAlert, "Aggressive Alert", style=line, color=orange)

if (filteredAlert or aggressiveAlert)
    strategy.entry("Long", strategy.long)

if (isOverBought)
    strategy.close("Long")