Donchian Adaptive Moving Average Handelssystem

Schriftsteller:ChaoZhang, Datum: 2024-02-21 15:08:27
Tags:

img

Übersicht

Das Donchian Adaptive Moving Average Trading System ist eine quantitative Handelsstrategie, die Preistrends verfolgt.

Strategieprinzip

Die Strategie berechnet zunächst den wahren Volatilitätsbereich. Der wahren Volatilitätsbereich bezieht sich auf den Preisbewegungsbereich vom Schlusskurs der vorherigen Kerze bis zu den höchsten und niedrigsten Preisen der aktuellen Kerze. Dann berechnet sie den einfachen gleitenden Durchschnitt des wahren Volatilitätsbereichs als Bandbreite des Donchian-Kanals. Kombiniert mit gleitenden Durchschnitten von zwei Zeiträumen beurteilt sie den Preistrend. Die spezifischen Urteilsregeln sind wie folgt:

Wenn der Preis den langfristigen gleitenden Durchschnitt plus die Bandbreite und den kurzfristigen gleitenden Durchschnitt plus die Bandbreite durchbricht, gehen Sie lang; wenn der Preis unter den langfristigen gleitenden Durchschnitt minus die Bandbreite und den kurzfristigen gleitenden Durchschnitt minus die Bandbreite fällt, gehen Sie kurz. Die Schlusskonditionen schließen lange Positionen, wenn die Preise unter die langen und kurzen gleitenden Durchschnitte fallen, die durch die Bandbreite erhöht werden; schließen Sie kurze Positionen, wenn die Preise über die langen und kurzen gleitenden Durchschnitte steigen, die durch die Bandbreite erhöht werden.

Durch die dynamische Anpassung der Bandbreite des Donchain-Kanals auf der Grundlage der tatsächlichen Volatilität und die Filterung mit doppelten gleitenden Durchschnitten kann die Strategie daher mittelfristige und langfristige Preistrends effektiv verfolgen, falsche Signale reduzieren und stabile langfristige Handelsmöglichkeiten erzielen.

Stärkenanalyse

Diese Strategie hat folgende Vorteile:

  1. Durch die Verwendung der echten Volatilität zur dynamischen Anpassung der Kanalbandbreite werden statische Parameter vermieden und die Marktänderungen besser angepasst.

  2. Die Kombination von zwei gleitenden Durchschnitten kann Geräusche effektiv filtern und falsche Signale reduzieren.

  3. Durch die Verfolgung von mittelfristigen bis langfristigen Trends können sich wiederholende Geschäfte und eine geringere Handelsfrequenz reduziert werden, um langfristige Gewinnchancen zu erzielen.

  4. Die Strategielogik ist einfach und klar, einfach umzusetzen, fehlertolerant und für automatisierten algorithmischen Handel geeignet.

Risiko und Optimierung

Die Strategie birgt auch einige Risiken:

  1. Es ist schwierig, bei kurzfristigen Anpassungen den besten Zeitpunkt für den Eintritt in langfristige Trades zu ermitteln.

  2. Parameter müssen für verschiedene Sektoren und einzelne Bestände optimiert werden.

  3. Die Stop-Loss-Punkte müssen bei erheblichen Trendveränderungen durch Notfälle angemessen gelockert werden.

Zusammenfassung

Zusammenfassend ist das Donchian Adaptive Moving Average Trading System eine insgesamt stabile, einfache und einfach umsetzbare quantitative Strategie. Durch die Nutzung dynamischer Kanäle und doppelter gleitender Durchschnittsfilterung kann es mittelfristige Markttrends effektiv verfolgen, die Handelsfrequenz reduzieren und langfristige nachhaltige Gewinne erzielen. In der Zwischenzeit sollten auch die Optimierung der Parameter-Einstellungen, die Verhinderung von Risiken und der richtige Stop-Loss beachtet werden, um sich an Notfälle anzupassen. Insgesamt hat diese Strategie eine hervorragende Leistung und eignet sich für die mittelfristige bis langfristige algorithmische Trendverfolgung.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun

//@version=4
strategy("唐齐安移动平均交易系统", overlay=true)

longperiod = input(20,'长线')
shortperiod = input(5,'短线')
bandfactor = input(1.0,'')

TrueHigh = 0.0
TrueLow = 0.0
TrueRange = 0.0

TrueHigh := close[1] > high ? close[1] : high
TrueLow := close[1] < low ? close[1] : low
TrueRange := TrueHigh - TrueLow
AvgTrueRange = sma(TrueRange,longperiod)

MAlong = sma(close,longperiod)
MAshort = sma(close,shortperiod)
band =  AvgTrueRange * bandfactor

if close > MAlong[1] + band[1] and close >  MAshort[1] + band[1]
	strategy.entry("Long", strategy.long, when=strategy.position_size < 1)
else
	if close < MAlong[1] - band[1] and close < MAshort[1] - band[1]
		strategy.entry("Short", strategy.short, when=strategy.position_size > -1)

if close < MAlong[1] - band[1] or close < MAshort[1] - band[1]
	strategy.close("Long", when=strategy.position_size > 0)
else
	if close > MAlong[1] + band[1] or close > MAshort[1] + band[1]
		strategy.close("Short", when=strategy.position_size < 0)

Mehr