
Стратегия RSI channel price gap tracking создает торговые сигналы, отслеживая колебания RSI в канале снижения стоимости, в сочетании с ценовыми прорывами. Стратегия направлена на то, чтобы захватить быстрые взрывы торговли на криптовалютном рынке.
С помощью Hull Moving Average smooth RSI, создается RSI-индикатор после сглаживания. Включает в себя RSI закрытия, RSI максимума, RSI минимума и RSI среднего значения.
Настройка диапазона RSI на 55-45. Когда индикатор RSI входит в канал 55-45, это означает, что он входит в колебательную зону.
Когда RSI-индикатор закрытия падает с верхней линии канала, и цена закрытия ниже средней цены, это указывает на давление цены; в то время как RSI-индикатор средней цены по-прежнему выше верхней границы канала, это указывает на то, что средняя цена по-прежнему имеет покупательную силу, в соответствии с логикой отслеживания прорыва средней цены, и, следовательно, создает сигнал покупки.
Когда RSI отскочил от нижней границы канала и закрылся выше средней цены, это означает, что цены поддерживаются; в то время как средняя цена RSI находится ниже нижней границы канала, что означает, что средняя цена находится под большим давлением, что соответствует логике отслеживания прорыва в средней цене, и, следовательно, создает сигнал продажи.
Показатели RSI максимальной и минимальной цены используются для своевременного распознавания недействительных торговых сигналов и быстрого остановки.
Использование средних цен для отслеживания сильных направлений средних цен соответствует идее отслеживания тенденций.
RSI колеблется в пределах пониженного канала, подсказывая переход в свертывание, при этом используется средняя цифровая цена, чтобы отслеживать сильное направление средней цифровая цена, чтобы избежать попадания в промежуточные колебания.
Показатели RSI с максимальной и минимальной ценой используются для быстрого распознавания недействительных торговых сигналов, быстрого остановки потерь и эффективного контроля потерь.
Неправильная настройка RSI может привести к чрезмерной чувствительности или вялости.
Смысл прорыва цены не всегда надежен, и цены сами могут быть в состоянии колебаний.
Поскольку криптовалютный рынок очень волатилен, слишком мягкое установление стоп-позиции может привести к увеличению убытков.
Решение проблемы:
Можно ввести такие показатели, как ленты Бринга, чтобы определить, приближается ли средняя цена к верхней или нижней траектории, что повышает точность определения направления прорыва средней цены.
Использование моделей глубокого обучения, таких как LSTM, для прогнозирования будущего движения средних цен помогает определить, сможет ли средняя цена успешно пробиться в определенном направлении.
В зависимости от степени волатильности рынка, в реальном времени корректируйте позицию стоп-лосса. Например, когда волатильность увеличивается, соответствующим образом ужесточайте позицию стоп-лосса; когда волатильность уменьшается, можно соответствующим образом расслабить позицию стоп-лосса.
Стратегия отслеживания разрыва в канале RSI создает торговые сигналы, которые отслеживают колебания RSI в канале и объединяют их с прорывами цен. Стратегия эффективно сочетает методы отслеживания тенденций и диапазона, и лучшие сделки по-прежнему доступны при сокращении разрыва. Быстрый стоп-лосс, установленный одновременно с сигналом, также позволяет контролировать риск стратегии.
/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Hull MA of RSI Strategy",overlay=false)
//+++++++++++++++++++++++++++++++
//++++++++++++ Setup ++++++++++++
//+++++++++++++++++++++++++++++++
// RSI
rsi1_tt="=== RSI ==="
rsi1_len=input(13,title="Period",inline="set",group=rsi1_tt)
//Mid
mid_tt="=== Mid Channel ==="
upper=input(55.0,title="Upper",inline="set",group=mid_tt)
lower=input(45.0,title="Lower",inline="set",group=mid_tt)
//Over
over_tt="=== Over ==="
ovb=input(70.0,title="Overbought",inline="set",group=over_tt)
ovs=input(30.0,title="Oversold",inline="set",group=over_tt)
//++++++++++++++++++++++++++++++++++++++++
//++++++++++++ Hull MA of RSI ++++++++++++
//++++++++++++++++++++++++++++++++++++++++
hma_tt="=== Hull MA ==="
hma_len=input(3,title="Period",inline="set",group=hma_tt)
rsi_c=hma(rsi(close,rsi1_len),hma_len)
rsi_h=hma(rsi(high,rsi1_len),hma_len)
rsi_l=hma(rsi(low,rsi1_len),hma_len)
rsi_hl2=hma(rsi(hl2,rsi1_len),hma_len)
//++++++++++++++++++++++++++++++++
//++++++++++++ Signal ++++++++++++
//++++++++++++++++++++++++++++++++
var order_status="None"
BuySignal=
crossunder(rsi_c,ovb)
and
close<hl2
and
rsi_hl2>ovb
and
order_status=="None"
CloseBuy=
order_status[1]=="Long"
and
(crossover(rsi_c,ovb)
or
crossunder(rsi_l,upper))
SellSignal=
crossover(rsi_c,ovs)
and
close>hl2
and
rsi_hl2<ovs
and
order_status=="None"
CloseSell=
order_status[1]=="Short"
and
(crossunder(rsi_c,ovs)
or
crossover(rsi_h,lower))
ExitSignal=
CloseBuy
or
CloseSell
if BuySignal
order_status:="Long"
if SellSignal
order_status:="Short"
if ExitSignal
order_status:="None"
//+++++++++++++++++++++++++++++++++++
//++++++++++++ Plot Line ++++++++++++
//+++++++++++++++++++++++++++++++++++
rsi_c_col=
rsi_c>upper?color.new(color.blue,0):
rsi_c<lower?color.new(color.blue,0):
color.new(color.orange,0)
rsi_h_col=
rsi_h>upper?color.new(color.green,0):
rsi_h<lower?color.new(color.green,0):
color.new(color.orange,0)
rsi_l_col=
rsi_l>upper?color.new(color.yellow,0):
rsi_l<lower?color.new(color.yellow,0):
color.new(color.orange,0)
rsi_hl2_col=
rsi_hl2>upper?color.new(color.olive,0):
rsi_hl2<lower?color.new(color.olive,0):
color.new(color.orange,0)
plot(rsi_c,title="RSI Close",color=rsi_c_col,linewidth=2)
plot(rsi_h,title="RSI High",color=rsi_h_col,linewidth=1)
plot(rsi_l,title="RSI Low",color=rsi_l_col,linewidth=1)
plot(rsi_hl2,title="RSI HL2",color=rsi_hl2_col,linewidth=1)
upper_line=hline(upper,title="Upper",color=color.new(color.black,100))
lower_line=hline(lower,title="Lower",color=color.new(color.black,100))
fill(upper_line,lower_line,title="Mid Channel",color=color.silver)
ovb_line=hline(ovb,title="Overbought",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2)
ovs_line=hline(ovs,title="Oversold",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2)
//++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++ Plot Analyzing Signals ++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++
//Color
buy_col=
BuySignal?color.new(color.blue,70):na
sell_col=
SellSignal?color.new(color.red,70):na
close_buy_col=
CloseBuy and order_status[1]=="Long"?color.new(color.yellow,70):na
close_sell_col=
CloseSell and order_status[1]=="Short"?color.new(color.yellow,70):na
//Background
bgcolor(close_buy_col, title='Close Buy', offset=0)
bgcolor(close_sell_col, title='Close Sell', offset=0)
bgcolor(sell_col, title='Sell', offset=0)
bgcolor(buy_col, title='Buy', offset=0)
//++++++++++++++++++++++++++++++++++
//++++++++++++ Backtest ++++++++++++
//++++++++++++++++++++++++++++++++++
strategy.entry("Long",strategy.long,when=BuySignal)
strategy.close("Long",when=CloseBuy)
strategy.entry("Short",strategy.short,when=SellSignal)
strategy.close("Short",when=CloseSell)
//EOF