Стратегия отслеживания ценовой разницы канала RSI генерирует торговые сигналы путем отслеживания колебаний показателей RSI в пределах пороговых каналов в сочетании с прорывом цены.
Использование скользящей средней Hull для сглаживания показателя RSI и получения сглаженных показателей RSI, включая RSI для цены закрытия, самой высокой цены, самой низкой цены и средней цены.
Установите диапазон RSI на 55-45.
Когда цена закрытия RSI опускается от верхней границы канала, и цена закрытия ниже средней цены, это указывает на то, что цена находится под давлением; однако, в это время средняя цена 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