La idea principal de esta estrategia es utilizar los diferenciales de precios superpuestos para juzgar las tendencias del mercado.
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:
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.
La estrategia tiene las siguientes ventajas:
También existen algunos riesgos para la estrategia:
Las soluciones correspondientes son:
La estrategia se puede optimizar en los siguientes aspectos:
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)