Estrategia de negociación inversa basada en diferencias de precios superpuestas

El autor:¿ Qué pasa?, Fecha: 2023-12-15 15:47:23
Las etiquetas:

img

Resumen general

La idea principal de esta estrategia es utilizar los diferenciales de precios superpuestos para juzgar las tendencias del mercado.

Principio

La estrategia primero calcula el diferencial de precio superpuesto (Close-Close[1]), que es el precio de cierre de hoy menos el precio de cierre de ayer, y luego calcula la suma de los diferenciales en los últimos 30 días.

En concreto, la estrategia mantiene tres indicadores:

  1. ff: suma de las diferencias de precios durante los últimos 30 días
  2. dd1: media móvil ponderada de 15 días de ff
  3. dd2: media móvil ponderada de 30 días de ff

Se genera una señal larga cuando ff cambia de negativo a positivo, es decir, de menos de 0 a mayor de 0, y dd1 también cambia de negativo a positivo.

Se genera una señal corta cuando ff cambia de positivo a negativo, es decir, de mayor a menor que 0, y dd1 también cambia de positivo a negativo.

Después de ir largo o corto, se establecerán líneas de tomar ganancias y dejar pérdidas.

Ventajas

La estrategia tiene las siguientes ventajas:

  1. La lógica es clara y fácil de entender y aplicar.
  2. Captura un buen momento de entrada en los puntos de inflexión del mercado mediante la utilización de características de inversión de precios.
  3. Las fugas falsas se pueden filtrar con el mecanismo de confirmación doble.
  4. Los parámetros personalizables se adaptan a los diferentes entornos del mercado.

Los riesgos

También existen algunos riesgos para la estrategia:

  1. Alta probabilidad de fallo de reversión, que probablemente se detendrá en los mercados de rango.
  2. La configuración incorrecta de los parámetros puede dar lugar a una negociación frecuente y a un aumento de los costes de transacción.
  3. Se deben incorporar otros indicadores para filtrar las entradas, evitando la búsqueda de la parte superior y inferior.

Las soluciones correspondientes son:

  1. Establezca el porcentaje de pérdida de parada adecuado para controlar la pérdida única.
  2. Optimice los parámetros para encontrar la mejor combinación.
  3. Añadir condiciones de filtrado para evitar entradas innecesarias.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Agregue el filtro de volumen, que requiere un volumen mayor en las rupturas.
  2. Incorporar indicadores de tendencia para evitar operaciones de contra-tendencia.
  3. Ajustar dinámicamente los parámetros para adaptarse a las condiciones cambiantes del mercado.
  4. Optimizar el mecanismo de stop loss, como el stop loss de seguimiento.

Resumen de las actividades

La estrategia juzga los puntos de inflexión del mercado mediante el cálculo de las reversiones diferenciales de precios. Es una estrategia comercial inversa típica. La lógica es clara y fácil de implementar con cierto valor práctico. Pero también hay riesgos que deben optimizarse aún más para adaptarse a los cambios del mercado. En general, la estrategia proporciona un marco básico para el comercio cuantitativo, que puede ser construido y ampliado.


/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Fst",currency="USD",initial_capital=100000)

//Length0 = input(30, title="fastperiod", minval=1)
Length = input(30, title="SUMM")
Length1 = input(15, title="Signalperiod", minval=1)
Length2= input(30, title="Info", minval=1)
profit=input(95, title="profit", minval=1)
loss=input(95, title="loss", minval=1)
//f=iff(close>open,close-open,iff(close>open[1],close[1]-open[1],0))
f=0.0
dd1=0.0
dd2=0.0
ff=0.0
ff0=0.0
f:=close-close[1]
ff:=sum(f,Length)
//ff0:=sum(f,Length0)
dd1:=wma(ff,Length1)
dd2:=wma(ff,Length2)

bull=ff<0 and dd1<0 and ff[1]<dd1 and ff>dd1 and abs(ff)>20
bear=ff>0 and dd1>0 and ff[1]>dd1 and ff<dd1 and abs(ff)>20
if(bull)
    
    strategy.entry("long", strategy.long)
strategy.exit("exit", "long", profit = close*profit/1000, loss=close*loss/1000) 

strategy.close("long", when = bear)




plotchar(bull,size=size.small,location=location.bottom)
plot(ff,color=black,linewidth=2)
plot(ff0,color=green,linewidth=2)
plot(wma(ff,Length1),color=red,linewidth=2)
plot(wma(ff,Length2),color=blue,linewidth=2)
plot(wma(ff,Length1)-wma(ff,Length2),color=green,style=columns)

plot(0,linewidth=1,color=black)
plot(500,linewidth=1,color=red)
plot(-500,linewidth=1,color=red)


Más.