
La idea principal de esta estrategia es utilizar la diferencia de superposición de precios para juzgar la tendencia del mercado. Cuando la diferencia se invierte de un número negativo a un número positivo, se hace más, y se vacía cuando se invierte de un número positivo a un número negativo, pertenece a la estrategia de negociación inversa.
La estrategia primero calcula la diferencia de superposición de los precios[1]), es decir, el precio de cierre de hoy menos el precio de cierre de ayer, y luego se calcula el total de la diferencia en los últimos 30 días. Cuando el total se invierte de un número negativo a un número positivo, se produce una señal de multiplicación, y cuando el total se invierte de un número positivo a un número negativo, se produce una señal de diferenciación.
En concreto, la estrategia tiene tres indicadores:
Cuando ff se invierte de negativo a positivo, es decir, cuando menos de 0 es mayor que 0, y dd1 también se invierte de negativo a positivo, se produce una señal de multiplicidad.
Cuando ff se invierte de positivo a negativo, es decir, cuando más grande que 0 es menor que 0, y dd1 también se invierte de positivo a negativo, se produce una señal de vacío.
Se establece una línea de parada y pérdidas después de hacer más tiempo libre.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
La solución es la siguiente:
La estrategia puede ser optimizada en los siguientes aspectos:
Esta estrategia determina el punto de inflexión del mercado mediante el cálculo de la inversión de la diferencia de precios, y es una estrategia de negociación inversa típica. La estrategia es clara, fácil de implementar y tiene cierto valor práctico.
/*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)