
Die Zwei-Wege-Hall-Moving-Average-Trading-Strategie ist eine quantitative Trading-Strategie, bei der ein Zwei-Wege-Hall-Moving-Average als Handelssignal verwendet wird. Die Strategie basiert auf der Verwendung eines einzigen Moving-Averages in der herkömmlichen technischen Analyse, um den Zwei-Wege-Hall-Moving-Average zu verwenden, um an den Breakpoints zu kaufen und zu verkaufen.
Der Dual Hull Moving Average ist das Herzstück der Handelsstrategie. Der Dual Hull Moving Average besteht aus drei Linien in der Mitte, oben und unten, die unterschiedliche Preismittel darstellen.
Modus (modusSwitch, src, len) Aufgeführt von: HULL[0] Untertracks: HULL[2]
Die Mode-Funktion kann verschiedene Varianten des Hull Moving Averages auswählen, darunter HMA, EHMA und THMA. Sqr steht für die Preisquelle, len für die Dauer der Periode.
Die Strategie basiert auf dem Mittelstrahl des zweiseitigen Hall-Moving-Averages, um die Beziehung zwischen dem Preis und dem Mittelstrahl zu beurteilen und ein Handelssignal zu erstellen:
Das heißt, wenn der Schlusskurs der aktuellen K-Linie größer ist als der Wert des mittleren Orbs, wird bei der nächsten K-Linie ein Plus gemacht; wenn der Schlusskurs der aktuellen K-Linie kleiner ist als der Wert des mittleren Orbs, wird bei der nächsten K-Linie ein Blatt gemacht.
Die zweiseitige Halle Moving Average Trading Strategie hat folgende Vorteile:
Die Verwendung von zweiseitigen Bandfeldern anstelle einer einzigen Linie hat bessere Unterstützungs- und Widerstandseffekte und ist besser geeignet, Trends zu verfolgen.
Der Hull-Moving-Average hat eine geringere Verzögerung im Vergleich zum allgemeinen Moving-Average und kann schneller auf Preisänderungen reagieren.
Die Methode basiert auf traditionellen technischen Analysemethoden, ist leicht verständlich und eignet sich für automatisierte Transaktionen.
Die Strategie ist klar und einfach zu implementieren und eignet sich für Hochfrequenz-Algorithmen.
Anpassbare Hull Moving Average Typen und Parameter, die für verschiedene Sorten und Handelszeiträume optimiert werden können.
Obwohl es viele Vorteile gibt, gibt es einige Risiken, die beachtet werden müssen:
Wenn der Preis schwankt, kann es zu mehr Stop-Losses kommen. Die Parameter können entsprechend angepasst werden, um einen Teil des Noise-Tradings zu filtern.
Diese Strategie basiert hauptsächlich auf der Trendbeobachtung und wirkt nicht gut, wenn der Preis horizontal ist. Andere Indikatoren oder Mechanismen können dazu verwendet werden, um Trends zu beurteilen.
Der Hull-Moving-Average selbst ist nachlässig, insbesondere in der kurzfristigen Zukunft. Parameteroptimierung und Kombinationsindikatoren können zum Teil helfen.
Handelssignale sind häufig und leicht übertrieben. Positionsverwaltung und Handelsfrequenz sind ordnungsgemäß kontrolliert.
Die zweiseitige Halle Moving Average Trading Strategie bietet folgende Optimierungsmöglichkeiten:
Optimierung der Arten und Parameter von Hull Moving Averages, Anpassung der Sensitivität der mittleren Bahn an verschiedene Handelsarten.
Ein Trailing Stop oder Incremental Stop wird eingesetzt, um einzelne Verluste effektiv zu kontrollieren.
In Kombination mit anderen Indikatoren, um die Richtung und Stärke des Trends zu beurteilen, um zu vermeiden, dass Sie eingeholt werden.
Die Aktivierung von Strategien basierend auf der Anzahl der getätigten Geschäfte oder der Ertragsrate. Die Anzahl der geschlossenen Kreisläufe wird kontrolliert und die Position wird reduziert.
Mehrfache Zeitrahmen kombiniert. Trends werden in höheren Zeitrahmen bestimmt, um Geräusche zu vermeiden.
Optimierung der Eintrittslogik. Die Eintrittssicherheit kann auf der Grundlage der Candle-Form erhöht werden.
Die Bi-Directional-Hall-Moving-Average-Handelsstrategie ist insgesamt eine quantitative Strategie, die ein Handelssignal mit einem Trendindex-Moving-Average erstellt. Im Vergleich zu herkömmlichen Moving-Averages reagiert sie schneller und hat eine bessere Tracking-Effizienz. Die Strategie ist einfach, klar und leicht umzusetzen und eignet sich für den automatisierten Handel.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Basic Hull Ma Pack tinkered by InSilico
//Converted to Strategy by DashTrader
strategy("Hull Suite Strategy", overlay=true, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0)
//////////////////////////////////////////////////////////////////////
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop
//////////////////////////////////////////////////////////////////////
//INPUT
HAClose = security(heikinashi(syminfo.tickerid), timeframe.period, close)
src = input(close, title="Source")
modeSwitch = input("Hma", title="Hull Variation", options=["Hma", "Thma", "Ehma"])
length = input(55, title="Length(180-200 for floating S/R , 55 for swing entry)")
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)
//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, length)
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)
///< Ending Filler
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)
if HULL[0] > HULL[2] and testPeriod()
strategy.entry("long", strategy.long)
if HULL[0] < HULL[2] and testPeriod()
strategy.close("long")