
Die Kernidee dieser Strategie ist es, die Richtung der Markttrends in Kombination mit der Hull-Mittellinie und der tatsächlichen Wellenlänge (ATR) zu identifizieren und nach der Bestätigung der Trendrichtung einzugehen. Insbesondere wird der Unterschied zwischen der Hull-Mittellinie eines bestimmten Zeitraums und der Hull-Mittellinie des vorherigen Zeitraums berechnet. Wenn der Unterschied steigt, wird er als bullish beurteilt, wenn der Unterschied sinkt, wird er als bullish beurteilt.
Diese Strategie basiert auf zwei Indikatoren: Hull Mean Line und ATR.
Die Hull-Länge ist ein Trend-Tracking-Indikator, der vom US-amerikanischen Futures-Händler Alan Hull entwickelt wurde. Die Hull-Länge ist ähnlich wie der Moving Average, aber sie hat eine höhere Sensitivität und kann die Tendenz der Preisänderungen schneller erfassen. Die Strategie enthält ein einstellbares Parameter hullLength, um die Dauer der Hull-Länge zu steuern und die Richtung der aktuellen Preisentwicklung zu bestimmen, indem die Differenz zwischen der aktuellen und der vorherigen Hull-Länge berechnet wird.
ATR, das heißt Average True Range, also die tatsächliche Bandbreite. Es spiegelt die Breite der täglichen Preisschwankungen wider. Wenn die Schwankungen größer sind, steigt die tatsächliche Bandbreite; wenn die Schwankungen kleiner sind, sinkt die tatsächliche Bandbreite.
Die Logik der Strategie lautet:
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch Risiken:
Entsprechende Lösungen:
Es gibt noch viel Optimierungsmöglichkeiten für diese Strategie, die sich vor allem aus folgenden Aspekten ergeben:
Die Strategie integriert die Trendverfolgung von Hull-Gleichgewicht und die Wärmeverfolgung von ATR, um bei der Bestätigung von Trends und bei der Auswahl von positiven Eintrittspunkten mit hohen Schwankungen einige unwirksame Signale zu filtern. Die Optimierung der Indikatorparameter und die Verwendung von Risikomanagement-Methoden können die Wirksamkeit der Strategie weiter verbessern. Insgesamt kann die Strategie mit der Kombination von mehreren Faktoren aus Trendverfolgung und Wärmeverfolgung eine bessere Wirkung erzielen, wenn die Parameter angepasst und optimiert werden.
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) =>
if smoothing == "RMA"
rma(p, length)
else
if smoothing == "SMA"
sma(p, length)
else
if smoothing == "EMA"
ema(p, length)
else
wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
strategy.close("buy")
closeshort = n1>n2
if (closeshort)
strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
strategy.entry("sell", strategy.short, comment="SELL")