Estrategia de tendencia de ruptura de la resistencia de soporte dinámico

El autor:¿ Qué pasa?, Fecha: 2023-12-26 15:21:45
Las etiquetas:

img

Resumen general

Esta estrategia juzga la dirección de la tendencia basada en la ruptura de soporte/resistencia a largo plazo y entra en la posición cuando se rompe el soporte/resistencia. Utiliza zigzag para definir picos y valles, confirmando picos/valles con 2 barras, por lo que hay un retraso de 2 barras. Calcula la diferencia entre SMA de picos y valles en un período definido (21 por defecto) como nivel SR alternativo. Esta idea proviene del indicador Nebula-Advanced-Dynamic-Support-Resistance de SynapticEx.

Estrategia lógica

La estrategia utiliza la siguiente lógica para determinar las tendencias y las señales comerciales:

  1. Confirmar los picos/valles con zigzag: cuando en las últimas 5 barras, la barra 5 pico < barra 4 pico < barra 3 pico > barra 2 pico > barra 1 pico, la barra 3 valle se confirma como el valle más bajo.

  2. Calcular el número de picos hn y de valles ln en un período definido (por defecto 21). Si hn>0 e ln>0, calcular el nivel medio de los picos hsum/hn y el nivel medio de los valles lsum/ln. Se utiliza su diferencia r como nivel de SR alternativo.

  3. Comparar el precio de cierre con el valor de resistencia dinámica y el valor de soporte para determinar la dirección de la tendencia.

  4. Ir largo cuando ocurre una brecha válida de resistencia. Ir corto cuando ocurre una brecha válida de soporte.

Análisis de ventajas

Las ventajas de esta estrategia:

  1. Usar zigzag para confirmar SR proporciona precisión, evitando una falsa fuga.

  2. La SR basada en estadísticas a largo plazo es más valiosa para reducir el riesgo.

  3. La SR alternativa mejora la validez de las señales de ruptura.

  4. La lógica es simple y fácil de entender, adecuada para el comercio cuántico.

  5. El período estadístico personalizable se adapta a diferentes ciclos y productos.

Análisis de riesgos

Riesgos de esta estrategia:

  1. 2 barras de retraso con zigzag puede perder el mejor punto de entrada.

  2. La SR prevista es sólo para referencia, una fuga anormal puede ocurrir.

  3. El período estadístico incorrecto conduce a una SR no válida.

  4. El retroceso del precio después de la ruptura puede desencadenar el stop loss.

  5. La violenta oscilación de precios después de la entrada trae mayores pérdidas.

Las soluciones son:

  1. Acortar el período estadístico adecuadamente para reducir el retraso.

  2. Combine más factores para predecir la SR.

  3. Estabilidad de ensayo de diferentes períodos.

  4. Establezca un nivel de stop loss razonable.

  5. Utilice el dimensionamiento de la posición para limitar la pérdida única.

Direcciones de optimización

La estrategia se puede optimizar a partir de los siguientes aspectos:

  1. Utilice el aprendizaje automático para predecir SR, mejorando la tasa de éxito de las señales de ruptura.

  2. Combine el volumen de CONF para confirmar la validez de las señales de ruptura.

  3. Clasificar las estadísticas de la SR en función de los diferentes ciclos, mejorando la eficiencia de la SR.

  4. Añadir posición sobre ganancias, establecer una parada para equilibrar ganancias/pérdidas.

  5. Combinar el MA para determinar la tendencia, evitando el largo/cortado a ciegas sin tendencia.

Conclusión

En conclusión, esta es una estrategia de seguimiento de tendencias robusta. Tiene una alta precisión en la determinación de la dirección de la tendencia y el control adecuado del riesgo. Pero el retraso hace imposible obtener ganancias de cada señal larga / corta. Por lo que se adapta a los operadores de cuantos experimentados para combinar con sus propias estrategias. Al optimizar los períodos estadísticos e integrar otros indicadores o modelos, puede convertirse en una estrategia de seguimiento de tendencias eficiente.


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

//@version=4
strategy("SR TREND STRATEGY", shorttitle="SR TREND", overlay=true, calc_on_order_fills=true)
//based on by synapticEx SR indicator https://www.tradingview.com/script/O0F675Kv-Nebula-Advanced-Dynamic-Support-Resistance/
length = input(title="SR lookbak length", type=input.integer, defval=21)
h = bar_index>5 and high[5]<high[4] and high[4]<high[3] and high[3]>high[2] and high[2]>high[1] ? 1 : 0
l = bar_index>5 and low[5]>low[4]   and low[4]>low[3]   and low[3]<low[2]   and low[2]<low[1]   ? 1 : 0
ln = sum(l, length)
hn = sum(h, length)
hval =  h>0 ? high[3] : 0
lval =  l>0 ? low[3]  : 0
lsum = sum(lval, length)
hsum = sum(hval, length)
r = ln>0 and hn>0 ? abs((hsum/hn) - (lsum/ln)): 0
float lvalc = na
float lvalr = na
float hvalc = na
float hvalr = na
lvalc := lval and r>0 ? lval   : lvalc[1]
lvalr := lval and r>0 ? lval+r : lvalr[1]
hvalc := hval and r>0 ? hval   : hvalc[1]
hvalr := hval and r>0 ? hval-r : hvalr[1]
int trend=0
trend:=close > lvalr and close > hvalr ? 1 : close < lvalr and close < hvalr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and close>hvalc)
strategy.entry("Short", strategy.short, when=trend==-1 and close<lvalc)
int long=0
int short=0
long:= trend==1 and close>hvalc ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and close<lvalc ? 1 : trend==1 ? -1 : short[1]
barcolor(long>0? color.green : short>0? color.red : trend>0? color.white: trend<0 ? color.orange : color.blue)

Más.