Diese Strategie ist eine kurzfristige Handelsstrategie, die auf dem Indikator Hull Moving Average basiert.
Diese Strategie basiert hauptsächlich auf dem Hull Moving Average-Indikator. Die Hull Moving Average-Linie besteht aus zwei gleitenden Durchschnitten. Zuerst berechnet sie die mediane gleitende Durchschnittslinie nma des Preises mit einer Periode der Hullperiod. Dann berechnet sie die schnelle gleitende Durchschnittslinie n2ma mit einer Periode von der Hälfte der nma
Um einige falsche Signale auszufiltern, führt die Strategie auch die Hull Line (Hull_Line) ein. Die Hull Line ist ein lineares Regressionsergebnis der Differenz zwischen nma und n2ma. Wenn zwischen Preis und Hull Line eine Divergenz besteht, überspringt die Strategie das Handelssignal.
Insbesondere sind die Strategievorschriften wie folgt:
Berechnen Sie die nma mit Periode-Rumpfperiode
Berechnen Sie die n2ma, wobei die Periode die Hälfte der Periode nma ist
Berechnen Sie die Differenzdifferenz zwischen n2ma und nma
Moving average the diff with period sqrt ((hullperiod), erhalten und erhalten die Hull Line Hull_Line
Wenn der Preis über die Hull Line geht, wird ein Kaufsignal generiert.
Wenn der Preis unterhalb der Hull-Linie fällt, wird ein Verkaufssignal generiert.
Wenn es eine Abweichung zwischen Preis und Hull Line gibt, überspringen Sie das Signal.
Eintritt mit einem bestimmten Prozentsatz der Position, Annahme von Exit Stop Loss
Zu den Vorteilen dieser Strategie gehören:
Auf der Grundlage des Hull Moving Average kann er den Trend schnell erfassen und dem Trend folgen
Verwenden Sie Hull Line, um falsche Signale zu filtern und die Signalqualität zu verbessern
Gute Risiko-Rendite-Ratio und Auslastung, geeignet für den kurzfristigen Handel
Flexible Einstellung der Parameter, an unterschiedliche Marktumgebungen angepasst
Annahme der Umkehrung Stop-Loss, kann Stop-Loss in der Zeit und Risiken zu kontrollieren
Kombination der Saisonalität zur Vermeidung von Systemrisiken in bestimmten Zeiträumen
Diese Strategie birgt auch einige Risiken:
Trend nach Strategie, kann nicht den ganzen Tag handeln
Größere Verluste bei Trendumkehr
Verzögerung der gleitenden Durchschnittswerte, nicht in der Lage, die Wendepunkte rechtzeitig zu erfassen
Hohe Handelsfrequenz führt zu höheren Handelskosten
Unangemessene Parameter-Einstellungen können zu einer geringeren Rentabilität in den Bereichsmarkt führen
Um diese Risiken zu kontrollieren, können wir folgende Maßnahmen ergreifen:
Einführung einer Martingale-Stop-Loss-Strategie zur Kontrolle von Einzelverlusten
Optimierung der Parameter und Testrobustheit in verschiedenen Marktumgebungen
Kombination von Trendbeurteilungsindikatoren, um bei Umkehrungen nicht nach Trends zu jagen
Erhöhen Sie die Haltedauer um die Handelsfrequenz zu senken
Diese Strategie kann auch in folgenden Aspekten optimiert werden:
Kombination von Dynamikindikatoren zur Ermittlung des Ausgangspunktes von Trends für einen besseren Einstieg
Hinzufügen von Modellen für maschinelles Lernen zur Beurteilung der Trendrichtung und -stärke
Anpassung von Parametern für die Anpassung von Parametern anhand der Marktdynamik in Echtzeit
Konfiguration von Hullsystemen mit mehreren Zeiträumen mit unterschiedlichen Positionsgrößen für verschiedene Zeiträume
Kombination von Volumenindikatoren, um falsche Ausbrüche mit unzureichender Dynamik zu vermeiden
Hinzufügen eines volatilitätsbasierten Positionsgrößenmodells zur dynamischen Anpassung der Positionsgrößen basierend auf der Volatilität
Die Hull Moving Average Swing Trading Strategie ist eine effiziente kurzfristige Trend-Folge-Strategie insgesamt. Sie verwendet das Hull Moving Average-System, um die Trendrichtung zu bestimmen, um dem Trend zu folgen. Im Vergleich zu einzelnen gleitenden Durchschnittssystemen hat sie eine höhere Signalqualität und Parameterflexibilität. Der Vorteil dieser Strategie liegt darin, Trendänderungen schnell mit relativ kleinen Drawdowns zu erfassen. Die Schwäche ist die Unfähigkeit, mit Trendumkehrungen fertig zu werden.
/*backtest start: 2023-09-06 00:00:00 end: 2023-10-06 00:00:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Hull Moving Average Swing Trader by SEASIDE420 strategy("Hull Moving Average Swing Trader", shorttitle="HMA_Swing_Trader", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0) hullperiod = input(title="HullMA Period", type=input.integer, defval=210, minval=1) price = input(open, type=input.source, title="Price data") FromMonth = input(defval=1, title="From Month", minval=1, maxval=12) FromDay = input(defval=1, title="From Day", minval=1, maxval=31) FromYear = input(defval=2020, title="From Year", minval=2017) ToMonth = input(defval=1, title="To Month", minval=1, maxval=12) ToDay = input(defval=1, title="To Day", minval=1, maxval=31) ToYear = input(defval=9999, title="To Year", minval=2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => true n2ma = 2 * wma(price, round(hullperiod / 2)) nma = wma(price, hullperiod) diff = n2ma - nma sqn = round(sqrt(hullperiod)) n2ma1 = 2 * wma(price[1], round(hullperiod / 2)) nma1 = wma(price[1], hullperiod) diff1 = n2ma1 - nma1 n1 = wma(diff, sqn) n2 = wma(diff1, sqn) Hull_Line = n1 / n1 * n2 Hull_retracted = if n1 > n2 Hull_retracted = Hull_Line - 2 else Hull_retracted = Hull_Line + 2 c1 = Hull_retracted + n1 - price c2 = Hull_retracted - n2 + price c4 = n1 > n2 ? color.green : color.red c2p = plot(c2, color=color.black, linewidth=1) c3p = plot(price, color=color.black, linewidth=1) fill(c3p, c2p, color=c4, transp=75) //plot(cross(c1, c2) ? c1 : na, style=plot.style_circles, color=c4, linewidth=4) if price < c2 strategy.close("BUY", when=window()) if price > c2 strategy.close("SELL", when=window()) if price > c2 and price[1] > c1 strategy.entry("BUY", strategy.long, when=window()) if price < c1 and price[1] < c2 strategy.entry("SELL", strategy.short, when=window()) // /L'-, // ,'-. ` ```` / L '-, // . _,--dMMMM\ ` ` ` '`.. / '-, // : _,--, )MMMMMMMMM),. ` ,<> /_ '-,' // ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .' // | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' / // | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,' // | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ / // | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___ // | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-. // | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-., // | __ \`. | | | \ / _ |. . . . \ `-. F // | ___ / \ | `| ' __ \ | /-' F . . . . \ '` // | \ \ \ / | __ / \ | |,-' __,- J . . . . . \ // | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,' // | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\ // | ___ \ \ | | ` __,--' /;;;;;;;;;;;;. // | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\ // \ | | / | __,--' `--;;/ \;-'\ // \ | |/ __,--' / / \ \ // \ | __,--' / / \ \ // \|__,--' _,-;M-K, ,;-;\ // <;;;;;;;; '-;;;; // :D