L'idée principale de cette stratégie est d'utiliser les différentiels de prix qui se chevauchent pour juger des tendances du marché.
La stratégie calcule d'abord le différentiel de prix qui se chevauche (Close-Close[1]), qui est le prix de clôture d'aujourd'hui moins le prix de clôture d'hier, puis calcule la somme des différentiels au cours des 30 derniers jours.
Plus précisément, la stratégie maintient trois indicateurs:
Il génère un signal long lorsque ff passe de négatif à positif, c'est-à-dire de moins de 0 à plus de 0, et dd1 passe également de négatif à positif.
Il génère un signal court lorsque ff passe de positif à négatif, c'est-à-dire de plus de 0 à moins de 0, et dd1 passe également de positif à négatif.
Après avoir fait long ou court, des lignes de profit et de stop-loss seront définies.
La stratégie présente les avantages suivants:
Il y a aussi des risques pour la stratégie:
Les solutions correspondantes sont:
La stratégie peut être optimisée dans les aspects suivants:
La stratégie évalue les points tournants du marché en calculant les renversements des différentiels de prix. C'est une stratégie de trading inverse typique. La logique est claire et facile à mettre en œuvre avec une certaine valeur pratique. Mais il y a aussi des risques qui doivent être optimisés pour s'adapter aux changements du marché.
/*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)