Diese Strategie ist ein verbessertes Design, das auf den Ideen basiert, die Andrew Abraham in dem Artikel
Die Strategie berechnet zunächst den durchschnittlichen wahren Bereich über die letzten 21 Tage als Referenzschwelle, berechnet dann die höchsten und niedrigsten Preise über die letzten 21 Tage und setzt die oberen und unteren Grenzen des Kanals entsprechend. Die oberste Grenze des Kanals wird auf den 21-Tage-höchsten Preis minus 3 Mal den durchschnittlichen wahren Bereich gesetzt, und die untere Grenze wird auf den 21-Tage-niedrigsten Preis plus 3 Mal den durchschnittlichen wahren Bereich gesetzt. Wenn der Schlusskurs über der oberen Grenze des Kanals liegt, ist es ein Verkaufsdrucksignal; wenn der Schlusskurs unter der unteren Grenze des Kanals liegt, ist es ein Kaufsignal. Um falsche Bewegungssignale zu filtern, wird auch ein 21-Perioden-Exponentialdurchschnitt berechnet, und ein echtes Handelssignal wird nur erzeugt, wenn der Schlusskurs in der gleichen Richtung wie der ursprüngliche Bewegungsdurchschnitt durch die Kanalgrenzen bricht. Darüber hinaus stellt die Strategie auch einen
Der größte Vorteil dieser Strategie besteht darin, dass sie Preistrends dynamisch verfolgen und entsprechend Handelssignale generieren kann. Im Vergleich zu gleitenden Durchschnittsstrategien mit festen Parametern kann sie die Preisänderungstrends besser erfassen. Darüber hinaus beinhaltet die Festlegung des Kanals den wahren Bereich und vermeidet die Mängel bei der Festlegung von Kanallimits, die ausschließlich auf den höchsten und niedrigsten Preisen basieren. Der Schwankungsbereich der oberen und unteren Grenzen des Kanals ist ebenfalls sehr vernünftig und verhindert bis zu einem gewissen Grad falsche Ausbrüche. Die Anpassbarkeit des umgekehrten Parameters erhöht auch die Flexibilität der Strategie.
Da diese Strategie dynamische Parameter verwendet, werden Handelssignale häufiger als traditionelle gleitende Durchschnittsstrategien, was zu einem gewissen Maß an Überhandelsrisiko führen kann. Darüber hinaus werden, wenn die Parameter falsch eingestellt sind, z. B. wenn der Zeitrahmen zu kurz oder die Kanalgrenzwerte zu klein sind, auch falsche Signale erhöht, wodurch das Risiko steigt.
Um Risiken zu kontrollieren, können die Parameter angemessen angepasst werden, indem längere Zeiträume ausgewählt und die oberen und unteren Grenzbeschränkungen des Kanals moderat gelockert werden.
Es gibt immer noch einen großen Raum für die Optimierung dieser Strategie. Zum Beispiel können andere Filterindikatoren wie RSI und KD in Betracht gezogen werden, um falsche Ausbrüche zu vermeiden. Maschinelle Lernmethoden können auch versucht werden, Parameter automatisch zu optimieren. Darüber hinaus können sich die optimalen Parameterwerte zwischen verschiedenen Aktien und Marktumgebungen unterscheiden. Daher können wir auch in Betracht ziehen, eine Reihe von Parameteroptimierungsmechanismen zu formulieren, um die optimalen Parameter dynamisch auf der Grundlage von Aktien- und Marktmerkmalen auszuwählen, um die Stabilität der Strategie zu verbessern.
Insgesamt ist dies eine sehr praktische Trendverfolgungsstrategie. Im Vergleich zu traditionellen gleitenden Durchschnittsstrategien ist sie flexibler und intelligenter und kann dynamisch Preisänderungstrends erfassen. Mit der richtigen Parameter-Tuning ist die Qualität ihrer Handelssignale relativ hoch und kann gute Renditen erzielen. Es wird erwartet, dass die Leistung dieser Strategie durch nachfolgende Optimierungen weiter verbessert werden kann.
/*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")