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


Дата создания: 2023-11-10 18:01:09 Последнее изменение: 2023-11-10 18:01:09
Копировать: 0 Количество просмотров: 449
1
Подписаться
1166
Подписчики

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

Обзор

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

Принципы

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

  1. Двойная средняя линия: рассчитывается средняя линия быстрого движения ((MA быстрого движения) и средняя линия медленного движения ((MA медленного движения)). Когда быстрое движение проходит через медленную линию, рассматривается как многоголовый рынок, делается больше; когда быстрое движение проходит через медленную линию, рассматривается как пустой рынок, делается пустое.

  2. RSI: RSI определяет состояние перекупа и перепродажи, рассчитывая средний рост и уменьшение закрытия за определенный период времени. RSI больше 70 является зоной перекупа, меньше 30 - зоной перепродажи.

  3. PSAR: параллельная линия SAR указывает на направление тренда. Ниже точки SAR находится рынок с большим количеством точек, а выше - рынок с пустыми точками.

  4. Индикатор ADX: ADX определяет силу тренда, рассчитывая направленную силу изменения цены. Значение ADX больше 20 указывает на тенденцию, меньше 20 - на свертывание.

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

Сигналы покупки: на быстрой линии через медленную, RSI меньше 30 ((оперебойная зона), точка SAR выше цены, ADX больше 20, сигнал покупки.

Сигналы продажи: быстрый вниз, медленный вниз, RSI больше 70 (в зоне сверхпокупок), точка SAR ниже цены, ADX больше 20 - сигналы продажи.

При появлении сигнала покупки и продажи, создавайте позиции на 10% и пустые позиции соответственно.

Преимущества

  • Используя двойную равномерную линию для определения направления большого тренда, добавляя такие показатели, как RSI и SAR, чтобы устранить ошибочные сигналы, можно более точно определить точку переворота.

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

  • Установка стоп-убытков позволяет эффективно контролировать риски.

  • Стратегические действия просты, понятны и просты в реализации.

  • Эта стратегия может применяться в различных ситуациях, в зависимости от того, что происходит на рынке.

Риски и решения

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

  • RSI может привести к ошибке в параметрах. Следует соответствующим образом скорректировать RSI параметры, а также добавить другие показатели, подтверждающие сигнал RSI.

  • При значении ADX ниже 20, следует приостановить торговлю, чтобы избежать обратной торговли в безнаправленном рынке. Или соответствующим образом снизить циклические параметры ADX.

  • SetStringry имеет слишком маленький стоп, что может привести к ненужным потерям. Стоп следует устанавливать разумно в зависимости от степени волатильности рынка.

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

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

  • Тестирование среднелинейных комбинаций различных длинных циклов для поиска оптимальных параметров.

  • Тестирование различных параметров RSI для оптимизации суждений о перекупке.

  • Попробуйте добавить другие показатели, такие как BRI, KDJ и т. д., чтобы обогатить логику оценки сигналов купли-продажи.

  • Динамические механизмы остановки убытков в зависимости от разных сортов и рыночных условий.

  • Добавление стратегии управления позициями, позволяющей прибыли лучше отслеживать тенденции.

  • Тестируйте различные параметры ADX, чтобы найти наилучшие значения для определения силы тренда.

  • Добавлен модуль автоматического остановки убытков, позволяющий стратегии автоматически останавливать убытки.

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

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

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

//@version=2
//Based on Senpai BO 3
strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = close

//psar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = sar(start, increment, maximum)


//ADX Init
adxlen = input(30, title="ADX Smoothing")	
dilen = input(30, title="DI Length")	
dirmov(len) =>	
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]
	
adx(dilen, adxlen) => 	
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]
	
[sig, up, down] = adx(dilen, adxlen)	


// BB Init
source = close
length = input(50, minval=1)
mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)


//RSI CODE
up1 = rma(max(change(src), 0), 14)
down1 = rma(-min(change(src), 0), 14)
rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1))


//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1]) 

//////////////////// Algo

//if (rsi>50 and n1>n2)
   //strategy.exit("Close", "Short")
  // strategy.entry("Long", strategy.long)
//if (rsi<50 and n2>n1)
   //strategy.exit("Close", "Long")
//   strategy.entry("Short", strategy.short)

//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200  and rsi >= 60?red : silver
//short1 =  sig<18.5 and high>=upper and rsi>=70 and psar<close = 100%
//long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100%
short1 =  sig<18.5 and high>=upper and rsi>=70 and psar<close
long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close

//Entry

long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
strategy.entry("short", strategy.short,qty = 10, when=short)
strategy.entry("long", strategy.long,qty=10, when=long)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)



/////////////////////
///PLOT

plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)


//plot(short,"short",color=red,linewidth=1)
//

//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)

//strategy.exit(id="Stop", profit = 20, loss = 100)