Estrategia de seguimiento de la diferencia de precios del canal RSI

El autor:¿ Qué pasa?, Fecha: 2023-12-18 17:48:24
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

  1. 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.

  2. Cuando el RSI entra en el canal 55-45, indica entrar en una zona de choque.

  3. 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.

  4. 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.

  5. 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.

Ventajas de la estrategia

  1. 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.

  2. Cuando el RSI fluctúa dentro del canal de umbral, indica que se está entrando en una zona de choque.

  3. 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.

Riesgos de la estrategia

  1. La configuración incorrecta de los parámetros del RSI puede causar respuestas demasiado sensibles o lentas.

  2. La importancia de las rupturas medianas de precios no siempre es fiable y el precio mediano en sí mismo también puede fluctuar.

  3. La volatilidad alta en los mercados de criptomonedas, los ajustes de stop loss demasiado flexibles pueden conducir a pérdidas amplificadas.

Soluciones:

  • Optimizar los parámetros del RSI para hacer respuestas adecuadas a los cambios de precios
  • Combinar más indicadores para juzgar la fiabilidad de las rupturas de precios medianas
  • Aumentar la velocidad de los movimientos de los vehículos

Direcciones para la optimización de la estrategia

  1. Combine más indicadores para juzgar la dirección de ruptura del precio mediano

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.

  1. Introducir modelos de aprendizaje automático para ayudar en el juicio

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.

  1. Utilice la pérdida de parada adaptativa

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.

Resumen de las actividades

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

Más.