Strategi mengikuti tren berdasarkan rata-rata pergerakan Hull dan rentang sebenarnya


Tanggal Pembuatan: 2024-01-15 15:26:08 Akhirnya memodifikasi: 2024-01-15 15:26:08
menyalin: 0 Jumlah klik: 775
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan rata-rata pergerakan Hull dan rentang sebenarnya

Ringkasan

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.

Prinsip Strategi

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:

  1. Hull mean line currentHullMA dari periode saat ini (setelan HullLength) dan Hull mean line previousHullMA dari periode sebelumnya
  2. HullDiff = currentHullMA - previousHullMA
  3. Ketika hullDiff > 0, dinilai sebagai tren multihead; ketika hullDiff < 0, dinilai sebagai tren headless
  4. Pada saat yang sama, menghitung nilai ATR untuk periode tertentu (setelan atLength) sebagai indikator dari amplitudo tren
  5. Melakukan overtrading ketika ATR lebih besar dari price dan price lebih besar dari harga sebelum periode atrLength; melakukan shorting ketika ATR lebih kecil dari price dan price lebih kecil dari harga sebelum periode atrLength
  6. Pemanfaatan sinyal HullDiff untuk menilai sinyal imbang

Analisis Keunggulan Strategi

Strategi ini memiliki keuntungan sebagai berikut:

  1. Kombinasi penilaian tren dan indikator volatilitas, Anda dapat memilih untuk masuk ketika tren harga jelas dan fluktuasi meningkat, menghindari terjebak di pasar yang bergoyang.
  2. Hull Average Line lebih sensitif terhadap perubahan harga dan dapat dengan cepat menilai arah tren baru.
  3. ATR dapat mencerminkan volatilitas dan panasnya pasar, dan memberikan dasar untuk pilihan waktu masuk.
  4. Ada lebih banyak parameter yang dapat disesuaikan, sehingga kombinasi parameter yang optimal dapat diperoleh dengan mengoptimalkan.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Hull Average Line dan ATR tidak dapat sepenuhnya menghindari masalah penembusan palsu, dan masih mungkin untuk dibungkus.
  2. Pengaturan parameter yang tidak tepat dapat menyebabkan perdagangan yang sering atau tidak cukup sensitif, sehingga mempengaruhi efektivitas strategi.
  3. Tidak mampu secara efektif menanggapi situasi ekstrem, seperti naik cepat, terobosan, atau jatuh.

Solusi yang sesuai:

  1. “Kalau ada yang melanggar aturan, kita harus bisa mengatasinya”, kata dia.
  2. Optimalkan parameter dengan pengujian berulang untuk membuat indikator lebih sesuai dengan lingkungan pasar yang berbeda.
  3. Jika Anda memiliki masalah, Anda dapat memintanya untuk menindaklanjuti.

Arah optimasi

Strategi ini memiliki ruang yang luas untuk pengoptimalan, terutama dari beberapa aspek berikut:

  1. Uji berbagai parameter siklus Hull Mean Line untuk menemukan pengaturan siklus yang paling sesuai dengan lingkungan pasar saat ini.
  2. Uji kombinasi parameter siklus ATR yang berbeda untuk menemukan siklus yang paling dapat menangkap panas pasar.
  3. Cobalah berbagai jenis ATR smoothing (RMA, SMA, EMA, dll.) untuk melihat mana yang paling efektif.
  4. Mengoptimalkan kondisi pembukaan posisi, seperti penilaian kondisi kombinasi indikator Reaction dan ATR.
  5. Mengoptimalkan metode stop loss, meringankan stop loss dengan tepat, dan menghindari terjerat.

Meringkaskan

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.

Kode Sumber Strategi
/*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")