Ide inti dari strategi ini adalah untuk mengidentifikasi arah tren pasar dengan menggabungkan Hull moving average dan average true range (ATR), dan memasuki posisi setelah arah tren dikonfirmasi. Secara khusus, ini menghitung perbedaan antara Hull moving averages dari periode tertentu dan periode sebelumnya. Ketika perbedaan meningkat, itu menunjukkan tren bullish; ketika perbedaan menurun, itu menunjukkan tren bearish. Pada saat yang sama, indeks ATR digunakan untuk menentukan arah amplitudo. Ini memasuki posisi ketika arah tren dikonfirmasi dan amplitudo terus berkembang.
Strategi ini terutama didasarkan pada dua jenis indikator: Hull moving average dan ATR.
Hull Moving Average adalah indikator trend-following yang dikembangkan oleh pedagang berjangka Amerika Alan Hull. Mirip dengan moving average, Hull moving average memiliki sensitivitas yang lebih tinggi dan dapat menangkap perubahan harga dan tren lebih cepat. Strategi ini menetapkan parameter hullLength yang dapat disesuaikan untuk mengontrol periode Hull moving average. Dengan menghitung perbedaan antara periode saat ini Hull MA dan periode sebelumnya, ia menentukan arah tren harga saat ini.
ATR adalah singkatan dari Average True Range. Ini mencerminkan amplitudo fluktuasi harga harian. Ketika volatilitas meningkat, ATR naik; ketika volatilitas menurun, ATR turun. Strategi menetapkan parameter seperti atrLength dan atrSmoothing untuk mengontrol perhitungan ATR. Dan ATR digambarkan pada grafik sebagai satu referensi untuk entri.
Secara khusus, logika strategi adalah:
Keuntungan dari strategi ini:
Beberapa risiko dari strategi ini:
Solusi:
Masih ada ruang besar untuk optimasi:
Strategi ini mengintegrasikan kapasitas mengikuti tren Hull MA dan kemampuan penilaian panas ATR. Ini memasuki posisi ketika tren dikonfirmasi dan volatilitas meningkat untuk menyaring beberapa sinyal yang tidak valid. Peningkatan lebih lanjut dapat dicapai dengan optimasi parameter dan manajemen risiko yang lebih baik. Singkatnya, strategi ini menggabungkan beberapa faktor pelacakan tren dan penilaian panas. Ketika parameter disesuaikan, dapat memberikan hasil yang baik.
/*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")