Estrategia de bandas giroscópicas basada en marcos de tiempo múltiples y amplitud media

El autor:¿ Qué pasa?, Fecha: 2023-11-24 17:29:39
Las etiquetas:

img

Resumen general

Esta estrategia se llama Gyroscopic Bands Strategy Based on Multi Time Frame and Average Amplitude. Su idea principal es construir señales comerciales basadas en la amplitud media entre el precio y una partícula que se ajuste a la trayectoria del precio.

Estrategia lógica

La estrategia primero define una partícula que se ajusta a la trayectoria del precio. Bajo la influencia de la gravedad y la inercia, la trayectoria de la partícula oscilará alrededor del precio. Luego calcula la desviación promedio entre la partícula y el precio, y lo utiliza para construir bandas superiores e inferiores. Cuando el precio rompe la banda superior o inferior, se generan señales comerciales.

Específicamente, la fórmula de posición de las partículas definida en la estrategia es:

pos:=if pos<close  
     nz(pos[1])+grav+traj
else
     nz(pos[1])-(grav)+traj 

Aquí tienes.gravrepresenta el término de gravedad que hace que la partícula se acerque al precio;trajrepresenta el término de inercia que mantiene la tendencia del movimiento de la partícula.

Entonces calculamos la desviación mediaavgdistentre el precio y la partícula, y utilizarlo para construir bandas superiores e inferiores:

bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)  

Por último, vaya largo cuando el precio es mayor que la banda superior, y vaya corto cuando sea menor que la banda inferior.

Ventajas

En comparación con las estrategias tradicionales de promedios móviles, esta estrategia tiene las siguientes ventajas:

  1. utilizar las trayectorias de partículas para simular mejor las fluctuaciones de precios;
  2. Las bandas superior e inferior se pueden ajustar adaptativamente en función de la amplitud media histórica, lo que favorece la captura de avances;
  3. El diseño de marcos de tiempo múltiples puede cambiar entre marcos de tiempo altos y bajos para capturar más oportunidades comerciales.

Los riesgos

Esta estrategia también tiene algunos riesgos:

  1. La configuración incorrecta de los parámetros del movimiento de las partículas puede causar señales falsas o señales erróneas.
  2. Pueden producirse conflictos de señales al cambiar entre varios marcos de tiempo;
  3. Las señales de ruptura de las bandas superior e inferior pueden aumentar el riesgo de stop loss.

Las medidas de gestión de riesgos correspondientes incluyen: la optimización de parámetros para reducir las señales falsas, la definición de reglas claras de calendario, el establecimiento de posiciones de stop loss adecuadas, etc.

Direcciones de optimización

Esta estrategia puede optimizarse en los siguientes aspectos:

  1. Optimizar los parámetros relacionados con el movimiento de las partículas para que se adapten a la trayectoria del precio;
  2. Aumentar el número de capas de marcos de tiempo para confirmar las señales en marcos de tiempo más altos;
  3. añadir indicadores de volatilidad para evitar señales durante las violentas fluctuaciones del mercado;
  4. Optimizar las estrategias de stop loss para reducir las pérdidas de stop single.

Conclusión

Esta estrategia mejora la estrategia de promedio móvil mediante la introducción de ajuste de trayectoria de precios. Tiene características como parámetros adaptativos, marcos de tiempo múltiples, optimización de stop loss, etc. La clave es encontrar una ecuación de movimiento de partículas adecuada para simular el precio. Aunque se necesitan más pruebas y optimización, la idea básica es factible y vale la pena investigar más.


/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//2 revert
strategy("Jomy's Gyroscopic Bands",precision=8,commission_value=.03,overlay=true,initial_capital =10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100,  pyramiding=0)//,calc_on_order_fills= true, calc_on_every_tick=false) 
leverage=input(1,"leverage")
a=0
a:= if volume > -1
    nz(a[1])+1
else
    nz(a)
    
vara=input(4.0,"variable a (10 to the power of __ ",step=.5)
vara:=pow(10,vara)
varb=input(12,"variable b")
pos=0.0
pos:=if a<=5
    close
else
    nz(pos[1])
grav=1/sqrt((close*close))*vara
traj=0.0
traj:=(nz(close[1])-nz(close[2])+nz(traj[1])*varb)/(varb+1)
pos:=if pos<close
    nz(pos[1])+grav+traj
else
    nz(pos[1])-(grav)+traj

plot(pos,color=color.white)
plot(close)

avgdist=abs(close-pos)
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)

plbbh=plot(bbh,color=color.red)
plbbl=plot(bbl,color=color.red)

long = close>pos
short = close<pos

fill(plbbh,plbbl,color=long?color.lime:color.red)
//bgcolor(close>bbh?color.lime:close<bbl?color.red:na,transp=90)

strategy.entry("Long1",strategy.long,when=long,qty=(strategy.equity*leverage/open)) 
strategy.close("Long1",when=not long)
strategy.entry("Short1",strategy.short,when=short,qty=(strategy.equity*leverage/open)) 
strategy.close("Short1",when=not short)


//plot(strategy.equity,color=color.lime,linewidth=4)

Más.