
L’idée principale de cette stratégie est d’utiliser la différence de chevauchement des prix pour juger de la tendance du marché. La différence est plus élevée lorsqu’elle est inversée de négatif à positif et vide lorsqu’elle est inversée de positif à négatif.
La stratégie commence par calculer la différence de chevauchement entre les prix (Close-Close[1]), c’est-à-dire le prix de clôture d’aujourd’hui moins le prix de clôture d’hier, puis le total de la différence au cours des 30 derniers jours est calculé. Un signal de multiplication est généré lorsque le total est inversé de négatif à positif, et un signal de décalage est généré lorsque le total est inversé de positif à négatif, ce qui fait partie d’une stratégie de trading inversée typique.
Plus précisément, la stratégie vise à maintenir trois indicateurs:
Quand ff est inversé de négatif à positif, c’est-à-dire quand moins de 0 est plus grand que 0, et que dd1 est également inversé de négatif à positif, un signal de multiplicité est produit.
Un signal de commutation est généré lorsque ff est inversé de positif à négatif, c’est-à-dire que plus grand que 0 devient plus petit que 0, et que dd1 est également inversé de positif à négatif.
Le stop-loss est une ligne de stop-loss définie après avoir fait plus de prises de position.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
La solution est la suivante:
Cette stratégie peut être optimisée dans les domaines suivants:
Cette stratégie, qui permet de juger du point de basculement du marché en calculant le renversement de la différence de prix, est une stratégie de trading inversée typique. L’idée de la stratégie est claire, facile à mettre en œuvre et présente une certaine valeur pratique.
/*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)