Strategi mengikut arah aliran berdasarkan purata pergerakan Hull dan julat sebenar


Tarikh penciptaan: 2024-01-15 15:26:08 Akhirnya diubah suai: 2024-01-15 15:26:08
Salin: 0 Bilangan klik: 775
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan purata pergerakan Hull dan julat sebenar

Gambaran keseluruhan

Idea teras strategi ini adalah untuk mengenal pasti arah trend pasaran dengan menggabungkan Hull Average Line dan True Wave Rate (ATR) dan masuk setelah arah trend disahkan. Secara khusus, adalah untuk mengira perbezaan antara Hull Average Line dalam satu tempoh tertentu dan Hull Average Line dalam tempoh sebelumnya, apabila perbezaan meningkat, ia akan menjadi trend bullish, dan apabila perbezaan menurun, ia akan menjadi trend bullish.

Prinsip Strategi

Strategi ini berdasarkan kepada dua kategori penunjuk iaitu Hull Average Line dan ATR.

Hull Average adalah indikator trend-following yang dibangunkan oleh Alan Hull, seorang peniaga niaga hadapan Amerika Syarikat. Hull Average adalah serupa dengan moving average, tetapi Hull Average mempunyai kepekaan yang lebih tinggi dan dapat menangkap trend perubahan harga dengan lebih cepat. Strategi ini mempunyai parameter hullLength yang boleh disesuaikan untuk mengawal panjang kitaran Hull Average, untuk menentukan arah trend harga semasa dengan mengira perbezaan antara kitaran semasa dan kitaran Hull Average pada kitaran sebelumnya.

ATR bermaksud Average True Range, atau rentang sebenar. Ia mencerminkan keluasan turun naik harga setiap hari. Apabila turun naik meningkat, rentang sebenar akan meningkat; apabila turun naik menurun, rentang sebenar akan menurun.

Secara khusus, logik strategi adalah:

  1. Hull mean line currentHullMA untuk tempoh semasa (setup HullLength) dan Hull mean line previousHullMA untuk tempoh sebelumnya
  2. HullDiff = currentHullMA - previousHullMA
  3. Apabila hullDiff > 0, ia dianggap sebagai trend multihead; apabila hullDiff < 0, ia dianggap sebagai trend kosong
  4. Pada masa yang sama, nilai ATR untuk jangka masa tertentu (tetapan atLength) dikira sebagai penunjuk trend
  5. Melakukan overtrading apabila ATR lebih besar daripada harga dan harga lebih besar daripada harga sebelum kitaran atrLength dan melakukan overtrading apabila ATR kurang daripada harga dan harga kurang daripada harga sebelum kitaran atrLength
  6. Menentukan isyarat kedudukan rata dengan hullDiff

Analisis kelebihan strategi

Strategi ini mempunyai kelebihan berikut:

  1. Gabungan penilaian trend dan indikator kadar turun naik, anda boleh memilih untuk masuk apabila trend harga jelas dan turun naik meningkat, untuk mengelakkan terjebak dalam pasaran yang bergolak.
  2. Hull Average Line adalah lebih sensitif terhadap perubahan harga dan dapat menilai arah trend baru dengan cepat.
  3. ATR dapat mencerminkan turun naik dan kepanasan pasaran, dan memberi asas kepada pilihan masa masuk.
  4. Lebih banyak parameter yang boleh disesuaikan, anda boleh mendapatkan kombinasi parameter terbaik dengan mengoptimumkannya.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Hull Average Line dan ATR tidak dapat sepenuhnya mengelakkan masalah penembusan palsu, dan masih boleh disekat.
  2. Tetapan parameter yang tidak betul boleh menyebabkan perdagangan yang kerap atau tidak cukup sensitif, yang akan mempengaruhi kesan strategi.
  3. Tidak dapat bertindak balas dengan berkesan terhadap keadaan yang teruk, seperti kenaikan atau kejatuhan yang cepat.

Penyelesaian:

  1. Ia boleh menyebabkan kemerosotan yang teruk dan boleh menyebabkan kemerosotan yang teruk.
  2. Mengoptimumkan parameter dengan menguji berulang kali untuk menjadikan penunjuk lebih sesuai dengan keadaan pasaran yang berbeza.
  3. Dalam situasi yang teruk, hentikan strategi.

Arah pengoptimuman

Strategi ini mempunyai ruang yang lebih luas untuk pengoptimuman, terutamanya dari segi berikut:

  1. Uji parameter kitaran purata Hull yang berbeza untuk mencari tetapan kitaran yang paling sesuai dengan keadaan pasaran semasa.
  2. Uji kombinasi parameter kitaran ATR yang berlainan untuk mencari kitaran yang paling dapat menangkap panas pasaran.
  3. Cuba pelbagai jenis ATR smoothing (RMA, SMA, EMA, dan sebagainya) untuk melihat mana yang paling berkesan.
  4. Mengoptimumkan keadaan pembukaan kedudukan, seperti penilaian gabungan Reaction dan ATR.
  5. Mengoptimumkan cara menghentikan kerugian, meluaskan amplitud hentikan kerugian dengan sewajarnya, mengelakkan penarikan.

ringkaskan

Strategi ini mengintegrasikan keupayaan untuk mengesan trend dari Hull Average Line dan kebolehan untuk menilai heat metrics dari ATR. Dengan mengkonfirmasi trend, anda boleh menyaring beberapa isyarat yang tidak berkesan dengan memilih masa masuk yang lebih besar dan positif. Pengoptimuman parameter indikator dan penggunaan kaedah pengurusan risiko dapat meningkatkan lagi keberkesanan strategi.

Kod 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")