Estrategia cuantitativa a corto plazo del RSI-VWAP

El autor:¿ Qué pasa?, Fecha: 2024-01-19 14:21:15
Las etiquetas:

img

Resumen general

Esta estrategia se llama RSI-VWAP Short-term Strategy. Utiliza el indicador RSI y el precio promedio ponderado por volumen (VWAP) como indicadores técnicos para generar señales largas y cortas y, por lo tanto, tomar decisiones de compra y venta. La estrategia tiene como objetivo capturar los fenómenos de sobrecompra y sobreventa en el mercado a corto plazo con el fin de lograr rendimientos excesivos.

Principio de la estrategia

  1. Utilice el indicador RSI para determinar si el mercado está sobrecomprado o sobrevendido.
  2. El indicador RSI utiliza el VWAP en lugar del precio de cierre como datos de origen.
  3. Una señal de compra se genera cuando el RSI cruza hasta 20 desde el área de sobreventa. Una señal de venta se genera cuando el RSI cruza hacia abajo hasta 80 desde el área de sobrecompra.
  4. Esta estrategia sólo es larga y no corta, es decir, sólo compra en sobreventa y vende en sobrecompra.

Análisis de ventajas

  1. El uso de VWAP como fuente de datos para el RSI hace que el indicador RSI juzgue el mercado con mayor precisión, evitando ser engañado por falsas rupturas.
  2. Sólo el largo plazo reduce la frecuencia de las operaciones y ayuda a obtener rendimientos estables a largo plazo.
  3. El parámetro RSI es 17, que es adecuado para operaciones a corto plazo.
  4. El método de negociación de baja frecuencia espera menos operaciones, lo que reduce los costes de transacción y ayuda a obtener tasas de rendimiento más altas.

Análisis de riesgos

  1. Existe un riesgo de sobreajuste en las pruebas de retroceso de estrategias cuantitativas y los resultados reales pueden diferir de las pruebas de retroceso.
  2. Incapaz de aprovechar las oportunidades en las tendencias bajistas sólo por ir largo.
  3. Los criterios de sobrecompra y sobreventa pueden no ser adecuados para todos los productos, los parámetros deben ajustarse para diferentes productos.
  4. Cualquier indicador técnico puede generar señales falsas y las pérdidas no se pueden evitar por completo.

Los riesgos pueden reducirse con una flexibilización adecuada de los criterios de sobrecompra y sobreventa, combinando otros indicadores para confirmar las señales, ajustando los rangos de parámetros, etc.

Direcciones de optimización

  1. Prueba los efectos de diferentes parámetros en el rendimiento de la estrategia y optimiza la longitud del RSI y los umbrales de sobrecompra/sobreventa.
  2. Añadir estrategias de stop loss para bloquear algunas ganancias a través de movimiento de stop loss, stop loss de tiempo, etc., reduciendo los drawdowns.
  3. Filtrar señales combinando otros indicadores para mejorar la precisión de la señal.
  4. Establecer rangos de parámetros independientes de acuerdo con las características de los diferentes productos para que la estrategia se adapte mejor a los diferentes productos.

Conclusión

En general, esta es una estrategia simple y práctica a corto plazo. El uso de VWAP hace que el juicio del RSI sea más preciso, solo ir a largo reduce la frecuencia de negociación. La idea de la estrategia es clara y fácil de entender e implementar, adecuada para principiantes en el comercio cuantitativo. Pero cualquier estrategia de indicador solo difícilmente puede ser perfecta y necesita una optimización constante para un mejor rendimiento en vivo.


/*backtest
start: 2023-12-19 00:00:00
end: 2024-01-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Xaviz

//#####©ÉÉÉɶN###############################################
//####*..´´´´´´,,,»ëN########################################
//###ë..´´´´´´,,,,,,''%©#####################################
//###'´´´´´´,,,,,,,'''''?¶###################################
//##o´´´´´´,,,,,,,''''''''*©#################################
//##'´´´´´,,,,,,,'''''''^^^~±################################
//#±´´´´´,,,,,,,''''''''^í/;~*©####æ%;í»~~~~;==I±N###########
//#»´´´´,,,,,,'''''''''^;////;»¶X/í~~/~~~;=~~~~~~~~*¶########
//#'´´´,,,,,,''''''''^^;////;%I^~/~~/~~~=~~~;=?;~~~~;?ë######
//©´´,,,,,,,''''''''^^~/////X~/~~/~~/~~»í~~=~~~~~~~~~~^;É####
//¶´,,,,,,,''''''''^^^;///;%;~/~~;í~~»~í?~?~~~?I/~~~~?*=íÑ###
//N,,,,,,,'''''''^^^^^///;;o/~~;;~~;£=»í»;IX/=~~~~~~^^^^'*æ##
//#í,,,,,''''''''^^^^^;;;;;o~»~~~~íX//~/»~;í?IíI»~~^/*?'''=N#
//#%,,,'''''''''^^^^^^í;;;;£;~~~//»I»/£X/X/»í*&~~~^^^^'^*~'É#
//#©,,''''''''^^^^^^^^~;;;;&/~/////*X;í;o*í»~=*?*===^'''''*£#
//##&''''''''^^^^^^^^^^~;;;;X=í~~~»;;;/~;í»~»±;^^^^^';=''''É#
//##N^''''''^^^^^^^^^^~~~;;;;/£;~~/»~~»~~///o~~^^^^''''?^',æ#
//###Ñ''''^^^^^^^^^^^~~~~~;;;;;í*X*í»;~~IX?~~^^^^/?'''''=,=##
//####X'''^^^^^^^^^^~~~~~~~~;;íííííí~~í*=~~~~Ií^'''=''''^»©##
//#####£^^^^^^^^^^^~~~~~~~~~~~íííííí~~~~~*~^^^;/''''='',,N###
//######æ~^^^^^^^^~~~~~~~~~~~~~~íííí~~~~~^*^^^'=''''?',,§####
//########&^^^^^^~~~~~~~~~~~~~~~~~~~~~~~^^=^^''=''''?,íN#####
//#########N?^^~~~~~~~~~~~~~~~~~~~~~~~~^^^=^''^?''';í@#######
//###########N*~~~~~~~~~~~~~~~~~~~~~~~^^^*'''^='''/É#########
//##############@;~~~~~~~~~~~~~~~~~~~^^~='''~?'';É###########
//#################É=~~~~~~~~~~~~~~^^^*~'''*~?§##############
//#####################N§£I/~~~~~~»*?~»o§æN##################

//@version=4
strategy("RSI-VWAP INDICATOR", overlay=false)

// ================================================================================================================================================================================
// RSI VWAP INDICATOR
// ================================================================================================================================================================================

// Initial inputs
Act_RSI_VWAP = input(true, "RSI VOLUME WEIGHTED AVERAGE PRICE")
RSI_VWAP_length = input(17, "RSI-VWAP LENGTH")
RSI_VWAP_overSold = input(19, "RSI-VWAP OVERSOLD", type=input.float)
RSI_VWAP_overBought = input(80, "RSI-VWAP OVERBOUGHT", type=input.float)

// RSI with VWAP as source
RSI_VWAP = rsi(vwap(close), RSI_VWAP_length)

// Plotting, overlay=false
r=plot(RSI_VWAP, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : RSI_VWAP < RSI_VWAP_overSold ? color.lime : color.blue, title="rsi", linewidth=2, style=plot.style_line)
h1=plot(RSI_VWAP_overBought, color = color.gray, style=plot.style_stepline)
h2=plot(RSI_VWAP_overSold, color = color.gray, style=plot.style_stepline)
fill(r,h1, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : na, transp = 60)
fill(r,h2, color = RSI_VWAP < RSI_VWAP_overSold ? color.lime : na, transp = 60)

// Long only Backtest
strategy.entry("Long", strategy.long, when = (crossover(RSI_VWAP, RSI_VWAP_overSold)))
strategy.close("Long", when = (crossunder(RSI_VWAP, RSI_VWAP_overBought)))

Más.