
Die Strategie basiert auf dem Hull Moving Average (HMA), ein technischer Indikator, der entwickelt wurde, um den Hull Moving Average (HMA) zu reduzieren. Die Strategie verwendet zwei verschiedene periodische HMA-Linien, die ein Kaufsignal erzeugen, wenn ein HMA mit kürzerer Periode von unten nach oben durch eine HMA mit längerer Periode geht, und umgekehrt ein Verkaufssignal.
Die Berechnung der HMA erfolgt wie folgt:
Der Hull-Moving-Average hat eine geringere Verzögerung als der einfache Moving-Average und der gewichtete Moving-Average, wodurch eine schnellere Reaktion auf Preisänderungen und eine höhere Strategieempfindlichkeit möglich ist.
Durch die Kreuzung zweier HMA-Leitung mit unterschiedlicher Periode wird ein Signal erzeugt, das einige Geräusche und Falschsignale effektiv filtert und die Signalzuverlässigkeit erhöht.
Die Parameter sind anpassbar und können an verschiedene Märkte und Handelsarten angepasst werden, indem die Periodiparameter der HMA angepasst werden.
Der Hull Moving Average ist ein rückläufiger Indikator, der in den frühen Phasen einer Trendwende ein falsches Signal abgeben kann.
Eine falsche Auswahl der Parameter kann zu einer schlechten Strategieleistung führen. Eine zu lange Auswahl des Zyklus kann die Strategie langsam reagieren lassen, eine zu kurze Auswahl des Zyklus kann zu vielen falschen Signalen führen.
Wie alle Strategien, die auf einem einzigen Indikator basieren, kann diese Strategie in einem schwankenden Markt schlecht abschneiden, was zu mehr falschen Signalen und verlustreichen Geschäften führt.
Es kann in Betracht gezogen werden, andere technische Indikatoren oder Fundamentaldaten als Filterbedingungen einzuführen, z. B. Handelsvolumen, Trendindikatoren usw., um die Wirksamkeit des HMA-Kreuzsignals weiter zu bestätigen.
Für die Parameteroptimierung können Methoden wie genetische Algorithmen, Gittersuche und andere Methoden verwendet werden, um Parameteroptimierungen auf historischen Daten durchzuführen, um die am besten geeignete Parameterkombination für den aktuellen Markt zu finden.
Ein Stop-Loss- und Stop-Stop-Mechanismus wird in die Strategie aufgenommen, um die Risiken und Gewinne eines einzelnen Handels zu kontrollieren.
Trends im Markt berücksichtigen, Indikatoren über Markttrends einführen, in trendigen Märkten handeln und Schwankungen vermeiden.
Die Hull Moving Average Crossover Strategie ist eine einfache und benutzerfreundliche Handelsstrategie, die durch die schnelle Reaktionsfähigkeit der HMA die Preisänderungen relativ zeitnah erfasst. Wie alle Strategien hat sie jedoch auch ihre Grenzen. Die Performance wird von Markttypen und Parameterwahlen beeinflusst.
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Basic Hull Ma Pack tinkered by InSilico
strategy("RKTD BETA - Hull Suite by InSilico", overlay=true)
//INPUT
src = input(close, title="Source")
modeSwitch = input("Ehma", title="Hull Variation", options=["Hma", "Thma", "Ehma"])
length = input(200, title="Length(180-200 for floating S/R , 55 for swing entry)")
lengthMult = input(1.0, title="Length multiplier (Used to view higher timeframes with straight band)")
useHtf = input(false, title="Show Hull MA from X timeframe? (good for scalping)")
htf = input("240", title="Higher timeframe", type=input.resolution)
switchColor = input(true, "Color Hull according to trend?")
candleCol = input(false,title="Color candles based on Hull's Trend?")
visualSwitch = input(true, title="Show as a Band?")
thicknesSwitch = input(1, title="Line Thickness")
transpSwitch = input(40, title="Band Transparency",step=5)
// Alert Messages
longAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "long", "orderType": "market", "close":true}'
shortAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "short", "orderType": "market", "close":true}'
//FUNCTIONS
//HMA
HMA(_src, _length) => wma(2 * wma(_src, _length / 2) - wma(_src, _length), round(sqrt(_length)))
//EHMA
EHMA(_src, _length) => ema(2 * ema(_src, _length / 2) - ema(_src, _length), round(sqrt(_length)))
//THMA
THMA(_src, _length) => wma(wma(_src,_length / 3) * 3 - wma(_src, _length / 2) - wma(_src, _length), _length)
//SWITCH
Mode(modeSwitch, src, len) =>
modeSwitch == "Hma" ? HMA(src, len) :
modeSwitch == "Ehma" ? EHMA(src, len) :
modeSwitch == "Thma" ? THMA(src, len/2) : na
//OUT
_hull = Mode(modeSwitch, src, int(length * lengthMult))
HULL = useHtf ? security(syminfo.ticker, htf, _hull) : _hull
MHULL = HULL[0]
SHULL = HULL[2]
//COLOR
hullColor = switchColor ? (HULL > HULL[2] ? #00ff00 : #ff0000) : #ff9800
//PLOT
///< Frame
Fi1 = plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
alertcondition(crossover(MHULL, SHULL), title="Hull trending up.", message="Hull trending up.")
alertcondition(crossover(SHULL, MHULL), title="Hull trending down.", message="Hull trending down.")
///< Ending Filler
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)
// Define Buy and Sell Conditions based on crossovers
buyCondition = crossover(MHULL, SHULL)
sellCondition = crossunder(MHULL, SHULL)
// Plotting the Hull Moving Average (HMA)
plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch)
plot(SHULL, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=transpSwitch)
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
// Execute Strategy based on Buy and Sell Conditions
strategy.entry("Buy", strategy.long, when=buyCondition, alert_message=longAlertMessage)
strategy.entry("Sell", strategy.short, when=sellCondition, alert_message=shortAlertMessage)
// Additional elements like bar coloring remain unchanged
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)