
Gagasan inti dari strategi ini adalah untuk mengidentifikasi arah tren pasar dalam kombinasi dengan Hull Average Line dan True Wave Rate (ATR) dan masuk setelah arah tren dikonfirmasi. Secara khusus, adalah menghitung perbedaan antara Hull Average Line dalam periode tertentu dan Hull Average Line dari periode sebelumnya.
Strategi ini didasarkan pada Hull Mean Line dan ATR.
Hull Average adalah indikator trend-following yang dikembangkan oleh Alan Hull, seorang trader berjangka Amerika Serikat. Hull Average mirip dengan Moving Average, tetapi Hull Average memiliki sensitivitas yang lebih tinggi dan dapat menangkap tren perubahan harga lebih cepat. Strategi ini menyertakan parameter yang dapat disesuaikan hullLength untuk mengontrol panjang siklus Hull Average, untuk menentukan arah tren harga saat ini dengan menghitung perbedaan antara siklus saat ini dan Hull Average periode sebelumnya.
ATR berarti Average True Range, atau rentang riil. Ini mencerminkan seberapa besar fluktuasi harga setiap hari. Ketika fluktuasi meningkat, rentang riil akan naik; Ketika fluktuasi berkurang, rentang riil akan turun.
Secara khusus, logikanya adalah:
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Solusi yang sesuai:
Strategi ini memiliki ruang yang luas untuk pengoptimalan, terutama dari beberapa aspek berikut:
Strategi ini mengintegrasikan kemampuan pelacakan tren dari Hull Average Line dan kemampuan penilaian panas dari ATR, untuk mengkonfirmasi tren dengan memilih titik masuk yang lebih besar dan lebih positif, untuk menyaring beberapa sinyal yang tidak efektif. Pengoptimalan parameter indikator dan penggunaan alat manajemen risiko dapat meningkatkan efektivitas strategi lebih lanjut. Secara keseluruhan, strategi ini menggabungkan beberapa faktor pelacakan tren dan penilaian panas, yang dapat memberikan efek yang lebih baik jika parameter disesuaikan dan dioptimalkan.
/*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")