La estrategia de seguimiento de la diferencia de precios del canal RSI genera señales comerciales mediante el seguimiento de las fluctuaciones de los indicadores RSI dentro de los canales de umbral combinados con las rupturas de precios.
Utilice el promedio móvil de Hull para suavizar el RSI y generar indicadores de RSI suavizados, incluido el RSI para el precio de cierre, el precio más alto, el precio más bajo y el precio mediano.
Cuando el RSI entra en el canal 55-45, indica entrar en una zona de choque.
Cuando el precio de cierre RSI cae hacia atrás desde el límite superior del canal, y el precio de cierre es menor que el precio mediano, indica que el precio está bajo presión; sin embargo, en este momento, el precio mediano RSI todavía está por encima del límite superior del canal, lo que indica que el precio mediano todavía tiene poder adquisitivo que cumple con la lógica de seguimiento de las rupturas del precio mediano. Por lo tanto, se genera una señal de compra.
Cuando el precio de cierre RSI rebota de nuevo desde el límite inferior del canal, y el precio de cierre es más alto que el precio mediano. Esto indica que el precio tiene soporte; pero en este momento, el precio mediano RSI cae por debajo del límite inferior del canal, lo que indica que el precio mediano tiene una mayor presión, lo que cumple con la lógica de seguimiento de las rupturas del precio mediano. Por lo tanto, se genera una señal de venta.
Los indicadores RSI de precio más alto y RSI de precio más bajo se utilizan para identificar rápidamente las señales comerciales no válidas y realizar pérdidas de parada rápidas.
El uso de las rupturas de precios medianos para rastrear la fuerte dirección del precio mediano cumple con la idea de seguimiento de tendencias.
Cuando el RSI fluctúa dentro del canal de umbral, indica que se está entrando en una zona de choque.
Los indicadores RSI de precio más alto y RSI de precio más bajo se utilizan para identificar rápidamente señales comerciales no válidas y realizar pérdidas de parada rápidas, que pueden controlar las pérdidas de manera efectiva.
La configuración incorrecta de los parámetros del RSI puede causar respuestas demasiado sensibles o lentas.
La importancia de las rupturas medianas de precios no siempre es fiable y el precio mediano en sí mismo también puede fluctuar.
La volatilidad alta en los mercados de criptomonedas, los ajustes de stop loss demasiado flexibles pueden conducir a pérdidas amplificadas.
Soluciones:
Introducir indicadores como las bandas de Bollinger para juzgar si el precio mediano está cerca de las bandas superiores o inferiores, mejorando así la precisión de juzgar la dirección de ruptura del precio mediano.
Utilice LSTM y otros modelos de aprendizaje profundo para predecir las tendencias futuras del precio medio y ayudar a determinar si el precio medio puede romper con éxito en una determinada dirección.
Ajustar dinámicamente las posiciones de stop loss en función de la volatilidad del mercado. Por ejemplo, apretar las posiciones de stop loss adecuadamente cuando la volatilidad aumente; aflojar las posiciones de stop loss adecuadamente cuando la volatilidad disminuya.
La estrategia de seguimiento de la diferencia de precio del canal RSI genera señales comerciales mediante el seguimiento de las fluctuaciones del RSI dentro de los canales combinadas con las rupturas de precios, con el objetivo de capturar ráfagas rápidas de compra / venta en los mercados de criptomonedas. La estrategia combina eficazmente el seguimiento de tendencias y los métodos de identificación de rango y aún puede obtener buenas señales comerciales cuando las diferencias de precios se estrechan. Mientras tanto, el mecanismo de stop loss rápido también hace que los riesgos de la estrategia sean controlables. El siguiente paso es mejorar aún más la confiabilidad y la rentabilidad de la estrategia combinando más juicios de indicadores y predicciones de aprendizaje automático.
/*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