Estrategia de inversión de impulso basada en múltiples marcos de tiempo

El autor:¿ Qué pasa?, Fecha: 2024-02-27 14:27:49
Las etiquetas:

img

Resumen general

Esta estrategia identifica las oportunidades de negociación mediante el cálculo de los ratios de cuerpo de vela / parrilla y la combinación de indicadores RSI para detectar las condiciones de mercado de sobrecompra / sobreventa.

Estrategia lógica

La lógica central de esta estrategia se basa en lo siguiente:

  1. Cálcule el porcentaje de cuerpo / mecha de los candelabros: Al calcular los precios abiertos, cerrados, altos y bajos, obtenga el porcentaje ocupado por el cuerpo y las mechas de la vela.

  2. Cálcule el porcentaje de cambio de la fuerza de la vela: Calcule la magnitud del movimiento del precio interno de cada vela para determinar la fuerza de la vela.

  3. Combinar con el RSI para identificar las condiciones de sobrecompra / sobreventa: Establezca líneas de umbral de sobrecompra y sobreventa para el RSI. El RSI por encima de la línea de sobrecompra significa estado de sobrecompra y viceversa para sobreventa.

  4. Determinar las señales de reversión: Cuando el porcentaje de mecha < 20% y la fuerza de la vela > 2 veces la fuerza media, junto con el cierre de la vela anterior más alto que el cierre de la vela actual, indica una condición corta.

  5. Definir el stop loss y el take profit: establecer un stop loss basado en porcentajes fijos y tomar niveles de ganancia por separado para operaciones largas y cortas.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Identificación eficaz de tendencias e inversiones utilizando las proporciones cuerpo de la vela / perilla. Detecta bien el impulso del precio y los puntos de inflexión.

  2. Mayor precisión de las señales de inversión mediante la combinación de cambio de intensidad de la vela y RSI.

  3. Configuración razonable de stop loss/take profit para capitalizar las oportunidades a corto plazo y reducir al mismo tiempo la exposición al riesgo comercial.

  4. Flexible capacidad de ajuste de parámetros para la optimización en diferentes productos y plazos de tiempo.

Análisis de riesgos

Algunos de los riesgos presentes en la estrategia:

  1. Se pueden reducir mediante la optimización de los períodos de comparación de velas y los parámetros del RSI.

  2. La probabilidad de reversiones fallidas no se puede eliminar por completo. Estar largo en tendencia bajista y viceversa induce pérdidas. Las pérdidas de parada deben ajustarse en consecuencia para minimizar el daño.

  3. El rendimiento depende del producto y del período de tiempo, por lo que se recomienda precaución en el caso de productos altamente volátiles.

Oportunidades de mejora

La estrategia se puede optimizar de las siguientes maneras:

  1. Los periodos de ajuste fino considerados para determinar las combinaciones óptimas de parámetros.

  2. Optimizar los umbrales de RSI de sobrecompra/sobreventa basados en las características del producto.

  3. Prueba las relaciones stop loss/take profit para obtener el plan de gestión de riesgos ideal.

  4. Categorizar los productos según la volatilidad para ajustar los parámetros de manera más específica.

  5. Los filtros adicionales basados en otros indicadores pueden mejorar la robustez.

Conclusión

La estrategia es muy práctica en general para detectar reversiones mediante la comprensión de la información de las velas. Como un sistema comercial típico a corto plazo, tiene una capacidad de optimización considerable en productos y entornos para rastrear tendencias a mediano plazo. Sin embargo, es imperativo un control adecuado del riesgo a través de las pérdidas de parada.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("mecha larga study",overlay = true,  max_bars_back = 600)
//Porcentaje Mecha cuerpo
bodyPercent = math.abs(open - close) / (high - low) * 100
wickPercent = 100 - bodyPercent

plot(bodyPercent, "Porcentaje del cuerpo", color.rgb(163, 76, 175))
plot(wickPercent, "Porcentaje de la mecha", color.red)

VelaDeFuerza =  math.abs(((high[0] - low[0])*100)/high)//PORCENTAJE DE VARIACION DE UNA VELA
plot(VelaDeFuerza, color = color.purple)

Promedio = ((VelaDeFuerza[0] + VelaDeFuerza[1] + VelaDeFuerza[2] + VelaDeFuerza[3] + VelaDeFuerza[4]  + VelaDeFuerza[5] + VelaDeFuerza[6] + VelaDeFuerza[7] + VelaDeFuerza[8] + VelaDeFuerza[9] + VelaDeFuerza[10] + VelaDeFuerza[11] + VelaDeFuerza[12] + VelaDeFuerza[13]  + VelaDeFuerza[14] ) / 15)
plot(Promedio, color = color.yellow)


// rsi 
per_Rsi = input.int(14, "Periodo RSI",minval= 11, maxval=20) //inicializo el rsi en 14 periodos pero doy la posibilidad al usuario de cambiarlo
rsi_Sc = input.int(75,"Sobre Compra",minval=68,maxval=80) //ENTRADA DE SOBRE COMPRA DE RSI
rsi_Sv = input.int(25,"Sobre Venta",minval=20,maxval=33) //ENTRADA DE SOBRE VENTA DE RSI
rsi= ta.rsi(close,per_Rsi)//guardo el rsi con los paramentros anteriores en una variable

//logica
MayorPromedio =   Promedio + 0.800
plot(MayorPromedio, color = color.green)

Venta =   bodyPercent > 80   and VelaDeFuerza > Promedio * 2  and close < close[1]
Compra =   bodyPercent > 80  and VelaDeFuerza > Promedio * 2 and close > close[1]


precioVenta = Venta? close : na
precioCompra = Compra? close : na

tp1 = 0.00
sl  = 0.00
tp1 := 0.003
sl := 0.010

TP1short = precioVenta - (precioVenta * tp1)
Slshort = precioVenta + (precioVenta * sl)

TP1long = precioCompra + (precioCompra * tp1)
SLlong = precioCompra - (precioCompra * sl)


name1 = "tp1"
name2 = "tp2"
name3= "SL"




if ( precioVenta ) 
    strategy.entry("short", strategy.short , comment = "Sell  SL: " + str.tostring(Slshort, "0.000")  + " TP1: " + str.tostring(TP1short,"0.000") ) 
    strategy.exit("exit" , "short", stop = Slshort , limit = TP1short ,qty_percent = 100 )  
if ( precioCompra ) 
    strategy.entry("long", strategy.long , comment = "Buy   SL: " + str.tostring(SLlong, "0.000")  + " TP1: " + str.tostring(TP1long,"0.000") )
    strategy.exit("exit" , "long", stop = SLlong  , limit = TP1long ,qty_percent = 100 )

Más.