Umgekehrte Handelsstrategie auf der Grundlage überlappender Preisdifferenzen

Schriftsteller:ChaoZhang, Datum: 15.12.2023
Tags:

img

Übersicht

Die Hauptidee dieser Strategie besteht darin, die sich überschneidenden Preisdifferenzen zu verwenden, um Markttrends zu beurteilen.

Grundsätze

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:

  1. ff: Summe der Preisunterschiede in den letzten 30 Tagen
  2. dd1: 15-tägiger gewichteter gleitender Durchschnitt von ff
  3. dd2: 30-tägiger gewichteter gleitender Durchschnitt von ff

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.

Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Die Logik ist klar und leicht zu verstehen und umzusetzen.
  2. Es erfasst gute Markteintrittszeiten an Marktturnpunkten, indem es Preisumkehrfunktionen nutzt.
  3. Falsche Ausbrüche können mit dem Dual-Confirmation-Mechanismus herausgefiltert werden.
  4. Anpassungsfähige Parameter passen sich unterschiedlichen Marktumgebungen an.

Risiken

Es gibt auch einige Risiken für die Strategie:

  1. Hohe Wahrscheinlichkeit eines Rückschlags, der in den Märkten mit Bandbreite wahrscheinlich gestoppt wird.
  2. Eine falsche Einstellung der Parameter kann zu häufigem Handel und erhöhten Transaktionskosten führen.
  3. Andere Indikatoren sollten in die Filter eingebunden werden, wobei es vermieden wird, oberen und unteren Ebenen zu verfolgen.

Die entsprechenden Lösungen sind:

  1. Setzen Sie den richtigen Stop-Loss-Prozentsatz, um Einzelverluste zu kontrollieren.
  2. Optimieren Sie die Parameter, um die beste Kombination zu finden.
  3. Fügen Sie Filterbedingungen hinzu, um unnötige Einträge zu vermeiden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Fügen Sie Volumenfilter hinzu, das bei Ausbrüchen ein vergrößertes Volumen erfordert.
  2. Verwenden Sie Trendindikatoren, um Gegentrendoperationen zu vermeiden.
  3. Dynamische Anpassung der Parameter an sich ändernde Marktbedingungen.
  4. Optimieren Sie den Stop-Loss-Mechanismus, wie z. B. den Trailing Stop-Loss.

Zusammenfassung

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)


Mehr