Basierend auf einer dynamischen Trendfolgestrategie


Erstellungsdatum: 2024-02-22 17:54:26 zuletzt geändert: 2024-02-22 17:54:26
Kopie: 1 Klicks: 604
1
konzentrieren Sie sich auf
1617
Anhänger

Basierend auf einer dynamischen Trendfolgestrategie

Überblick

Die Strategie basiert auf den Ideen von Andrew Abraham in seinem Artikel “The Tracking of Trend Trends in the Forex Market”, der im September 1998 in der Zeitschrift Forex Trading Technology Analyst veröffentlicht wurde, und ist für die dynamische Verfolgung von Aktienpreistrends und die Erzeugung von Handelssignalen ausgelegt.

Strategieprinzip

Die Strategie berechnet zunächst die durchschnittliche reale Schwankungsbreite der letzten 21 Tage als Referenzzins, dann die Höchst- und Tiefstpreise der letzten 21 Tage und legt daraus eine Kanalobergrenze fest, wobei die Kanalobergrenze der höchste Preis der letzten 21 Tage minus die durchschnittliche reale Schwankungsbreite um das Dreifache und die untere Grenze der niedrigsten Preis der letzten 21 Tage plus die durchschnittliche reale Schwankungsbreite um das Dreifache beträgt. Wenn die Aufnahmeobergrenze über der Kanalobergrenze liegt, wird als Drucksignal verwendet; wenn die Aufnahmeobergrenze unter der unteren Kanalobergrenze liegt, als Abzugsignal.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass sie die Preisentwicklung dynamisch verfolgen kann, wodurch ein Handelssignal erzeugt wird. Sie kann die Preisentwicklung besser erfassen als eine Moving Average-Strategie mit festen Parametern. Darüber hinaus vermeidet die Erstellung von Kanälen in Verbindung mit realen Schwankungsbereichen die Schwäche, die durch die Einschränkung von Kanälen auf die höchsten und niedrigsten Preise verursacht wird.

Risikoanalyse

Die Strategie besteht hauptsächlich aus zwei Risiken: Übertriebsrisiken durch eine Zunahme von Handelssignalen und Risiken durch falsche Parameter. Da die Strategie dynamische Parameter verwendet, sind die Handelssignale häufiger als bei herkömmlichen Moving Average-Strategien und können zu einem gewissen Übertriebsrisiko führen. Darüber hinaus erhöht sich das Risiko durch falsche Parameter, z. B. wenn die Parameter zu kurz eingestellt sind oder die Anzahl der Kanalbeschränkungen zu klein ist.

Zur Risikokontrolle können die Parameter angepasst, längere Zeiträume gewählt und die Obergrenze der Kanäle angemessen gelockert werden. Darüber hinaus kann eine Stop-Loss-Strategie zur Kontrolle von Einzelschäden in Betracht gezogen werden.

Optimierungsrichtung

Die Strategie hat viel Optimierungsraum. Zum Beispiel kann man in Kombination mit anderen Filterindikatoren wie RSI, KD usw. einen False-Breakout vermeiden. Man kann auch versuchen, die Parameter automatisch durch maschinelle Lernmethoden zu optimieren.

Zusammenfassen

Diese Strategie ist insgesamt eine sehr praktische Trend-Tracking-Strategie. Im Vergleich zu herkömmlichen Moving-Average-Strategien ist sie flexibler und intelligenter und kann die Trendentwicklung von Preisänderungen dynamisch erfassen. Bei richtiger Parameteranpassung ist ihre Handelssignalqualität hoch und kann gute Renditen erzielt werden.

Strategiequellcode
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 10/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader AVR Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0
pos := iff(close < nResMA, -1,
       iff(close > nResMA, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nResMA, color= blue , title="Trend Trader AVR")