Die Hauptidee dieser Strategie besteht darin, die sich überschneidenden Preisdifferenzen zu verwenden, um Markttrends zu beurteilen.
Die Strategie berechnet zunächst die überlappende Preisdifferenz (Close-Close[1]), die der heutige Schlusskurs minus der gestrige Schlusskurs ist, und berechnet dann die Summe der Differenzen in den letzten 30 Tagen.
Die Strategie enthält insbesondere drei Indikatoren:
Es erzeugt ein langes Signal, wenn sich ff von negativ auf positiv ändert, d. h. von weniger als 0 auf mehr als 0, und dd1 ebenfalls von negativ auf positiv ändert.
Es erzeugt ein kurzes Signal, wenn sich ff von positiv auf negativ ändert, d. h. von größer als 0 auf weniger als 0, und dd1 ebenfalls von positiv auf negativ ändert.
Nach dem Long- oder Short-Gehen werden Profit- und Stop-Loss-Linien gesetzt.
Die Strategie weist folgende Vorteile auf:
Es gibt auch einige Risiken für die Strategie:
Die entsprechenden Lösungen sind:
Die Strategie kann in folgenden Aspekten optimiert werden:
Die Strategie beurteilt Marktwendepunkte durch Berechnung von Preisdifferenzumkehrungen. Es ist eine typische Umkehrhandelsstrategie. Die Logik ist klar und einfach zu implementieren mit etwas praktischem Wert. Aber es gibt auch Risiken, die weiter optimiert werden müssen, um sich an Marktveränderungen anzupassen. Insgesamt bietet die Strategie einen grundlegenden Rahmen für den quantitativen Handel, der aufgebaut und erweitert werden kann.
/*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)