Strategie für den gleitenden Durchschnitt mit doppeltem Rumpf

Schriftsteller:ChaoZhang, Datum: 15.9.2023
Tags:

Strategieübersicht:

Die Double HULL Moving Average Strategie ist eine Handelsstrategie, die auf dem von Alan HULL erfundenen HULL Moving Average (HMA) -Indikator basiert. Die Strategie verwendet zwei HMA-Linien, eine längerfristige Linie und eine kürzerfristige Linie, um Ein- und Ausstiegspunkte zu bestimmen.

Die Berechnungsformel für die HMA lautet wie folgt:

HmaL = wma(2 * wma(close, round(PDL/2)) - wma(close, PDL), round(sqrt(PDL)))
HmaS = wma(2 * wma(close, round(PDS/2)) - wma(close, PDS), round(sqrt(PDS)))

Die Strategie vergleicht die Werte der kurzfristigen und langfristigen Linien, um die Kauf- und Verkaufsbedingungen zu bestimmen.

Vorteile:

  1. Verringerte Verzögerung: Die HMA hat im Vergleich zu herkömmlichen gleitenden Durchschnitten eine geringere Verzögerung, wodurch sie schneller auf Veränderungen der Preisentwicklung reagieren und genauere Signale für Kauf und Verkauf bereitstellen kann.
  2. Einfachheit: Die Strategie verwendet zwei gleitende Durchschnittslinien für die Crossover-Analyse und ist somit relativ einfach zu verstehen und umzusetzen.
  3. Hohe Anpassungsfähigkeit: Die Periodenparameter der Strategie können anhand spezifischer Märkte und Handelsinstrumente angepasst werden, wodurch sie besser an unterschiedliche Marktbedingungen angepasst werden kann.

Risiken:

  1. Marktvolatilität: In Zeiten von Marktvolatilität können sich die gleitenden Durchschnittslinien häufig kreuzen, was zu häufigen Signalen führt, die zu falschen Signalen führen und zu einem übermäßigen Handel und Verlusten führen können.
  2. Schieben und Latenzzeit: Die Ausführung der Strategie unterliegt Schieben und Latenzzeit, insbesondere beim Hochfrequenzhandel, was dazu führen kann, dass die ausgeführten Preise von den erwarteten Preisen abweichen und sich auf die Handelsergebnisse auswirken.
  3. Abhängigkeit von einem einzigen Indikator: Die Strategie stützt sich ausschließlich auf den HMA-Indikator, ohne andere technische Indikatoren oder Marktinformationen einzubeziehen, was ihre Fähigkeit einschränken kann, das gesamte Spektrum der Marktveränderungen und -trends zu erfassen.

Schlussfolgerung:

Die Double HULL Moving Average Strategie ist eine Handelsstrategie, die auf dem HULL Moving Average-Indikator basiert. Sie nutzt die Überschneidung von kurzfristigen und langfristigen HMA-Linien, um Ein- und Ausstiegspunkte zu bestimmen. Die Strategie bietet Vorteile wie reduzierte Verzögerung, Einfachheit und hohe Anpassung.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit Indicator from KIVANC
// author and idea: KIVANC @fr3762 on twitter
// creator: Alan HULL
// 
strategy("Double HULL Moving Average Strategy", overlay=true)
PDL=input(title="LongerPeriod", defval=21, minval=1,maxval=500)
PDS=input(title="ShorterPeriod",  defval=8, minval=1,maxval=500)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

HmaL=wma(2*wma(close,round(PDL/2))-wma(close,PDL),round(sqrt(PDL)))
HmaS=wma(2*wma(close,round(PDS/2))-wma(close,PDS),round(sqrt(PDS)))
plot(HmaL,color=red, linewidth=2)
plot(HmaS,color=blue, linewidth=2)

Buy = HmaS > HmaL
Sell = HmaS < HmaL

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)

Mehr