Strategi Crossover Purata Pergerakan Hull


Tarikh penciptaan: 2024-03-22 14:57:10 Akhirnya diubah suai: 2024-03-22 14:57:10
Salin: 2 Bilangan klik: 1150
1
fokus pada
1617
Pengikut

Strategi Crossover Purata Pergerakan Hull

Gambaran Keseluruhan Strategi

Strategi ini berdagang berdasarkan tanda silang Hull Moving Average (HMA). Hull Moving Average adalah satu petunjuk teknikal yang bertujuan untuk mengurangkan ketinggalan pergerakan rata-rata, yang dibangunkan oleh Alan Hull. Strategi ini menggunakan dua garis HMA yang berbeza, yang menghasilkan isyarat beli apabila HMA yang lebih pendek berputar dari bawah ke atas melalui HMA yang lebih lama berputar, dan sebaliknya menghasilkan isyarat jual.

Prinsip Strategi

  1. Hull Moving Average (HMA)

Proses pengiraan HMA adalah seperti berikut:

  • Rata-rata bergerak bertimbangan ((WMA) dengan harga yang dikira terlebih dahulu, dengan kitaran separuh panjang parameter input
  • WMA untuk WMA ini dikira, dan jangka masa adalah length
  • Guna formula: HMA = 2 * WMA (panjang/2) - WMA (panjang)
  • WMA dikira semula untuk hasil di atas, dengan jangka masa sebagai akar kuadrat panjang, untuk mendapatkan HMA akhir
  1. Menjana isyarat dagangan
  • Apabila HMA diletakkan di atas harga penutupan, ia menghasilkan isyarat beli.
  • Apabila HMA di bawah harga penutupan, ia menghasilkan isyarat jual
  1. Pelaksanaan dagangan mengikut isyarat perdagangan
  • Sinyal beli: Buka kedudukan berlebih
  • Sinyal Jualan: Posisi Terbuka

Kelebihan Strategik

  1. Hull Moving Average mempunyai keterbelakangan yang lebih kecil berbanding Simple Moving Average dan Weighted Moving Average, dan oleh itu dapat bertindak balas lebih cepat terhadap perubahan harga, meningkatkan kepekaan strategi.

  2. Dengan menghasilkan isyarat melalui dua garis HMA yang berkala berbeza, ia dapat menapis beberapa bunyi bising dan isyarat palsu, meningkatkan kebolehpercayaan isyarat.

  3. Parameter boleh disesuaikan, dengan menyesuaikan parameter kitaran HMA, untuk menyesuaikan diri dengan pasaran dan jenis perdagangan yang berbeza.

Risiko Strategik

  1. Hull Moving Average adalah penunjuk yang ketinggalan zaman, yang mungkin memberi isyarat yang salah pada peringkat awal pembalikan trend.

  2. Pilihan parameter yang tidak betul boleh menyebabkan persembahan strategi yang tidak baik. Periode yang terlalu lama boleh menyebabkan tindak balas strategi lambat, dan terlalu pendek boleh menyebabkan terlalu banyak isyarat palsu.

  3. Seperti semua strategi berdasarkan satu petunjuk, strategi ini mungkin tidak berfungsi dengan baik dalam pasaran yang bergolak, menghasilkan lebih banyak isyarat palsu dan perdagangan yang rugi.

Arah pengoptimuman

  1. Anda boleh mempertimbangkan untuk memperkenalkan petunjuk teknikal atau asas lain sebagai syarat penapisan, seperti jumlah dagangan, petunjuk trend, dan lain-lain, untuk mengesahkan lebih lanjut keberkesanan isyarat persilangan HMA.

  2. Untuk pengoptimuman parameter, kaedah seperti algoritma genetik, carian grid dan lain-lain boleh digunakan untuk mengoptimumkan parameter pada data sejarah untuk mencari kombinasi parameter yang paling sesuai untuk pasaran semasa.

  3. Menambahkan mekanisme hentian dan hentian dalam strategi untuk mengawal risiko dan keuntungan perdagangan tunggal.

  4. Mengambil kira trend pasaran, anda boleh menilai indikator dengan memperkenalkan trend pasaran, berdagang di pasaran trend, dan mengelakkan pasaran goyah.

ringkaskan

Strategi Hull Moving Average Crossover adalah strategi perdagangan yang mudah digunakan, dengan ciri tindak balas cepat HMA, ia dapat menangkap perubahan harga secara lebih tepat pada masanya. Tetapi seperti semua strategi, ia mempunyai batasan, dan prestasi dipengaruhi oleh jenis pasaran, pilihan parameter. Dalam aplikasi praktikal, ia boleh digabungkan dengan kaedah analisis lain, untuk mengesahkan isyarat lebih lanjut.

Kod sumber strategi
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Basic Hull Ma Pack tinkered by InSilico 
strategy("RKTD BETA - Hull Suite by InSilico", overlay=true)

//INPUT
src = input(close, title="Source")
modeSwitch = input("Ehma", title="Hull Variation", options=["Hma", "Thma", "Ehma"])
length = input(200, title="Length(180-200 for floating S/R , 55 for swing entry)")
lengthMult = input(1.0, title="Length multiplier (Used to view higher timeframes with straight band)")

useHtf = input(false, title="Show Hull MA from X timeframe? (good for scalping)")
htf = input("240", title="Higher timeframe", type=input.resolution)

switchColor = input(true, "Color Hull according to trend?")
candleCol = input(false,title="Color candles based on Hull's Trend?")
visualSwitch  = input(true, title="Show as a Band?")
thicknesSwitch = input(1, title="Line Thickness")
transpSwitch = input(40, title="Band Transparency",step=5)

// Alert Messages
longAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "long", "orderType": "market", "close":true}'
shortAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "short", "orderType": "market", "close":true}'

//FUNCTIONS
//HMA
HMA(_src, _length) =>  wma(2 * wma(_src, _length / 2) - wma(_src, _length), round(sqrt(_length)))
//EHMA    
EHMA(_src, _length) =>  ema(2 * ema(_src, _length / 2) - ema(_src, _length), round(sqrt(_length)))
//THMA    
THMA(_src, _length) =>  wma(wma(_src,_length / 3) * 3 - wma(_src, _length / 2) - wma(_src, _length), _length)
    
//SWITCH
Mode(modeSwitch, src, len) =>
      modeSwitch == "Hma"  ? HMA(src, len) :
      modeSwitch == "Ehma" ? EHMA(src, len) : 
      modeSwitch == "Thma" ? THMA(src, len/2) : na

//OUT
_hull = Mode(modeSwitch, src, int(length * lengthMult))
HULL = useHtf ? security(syminfo.ticker, htf, _hull) : _hull
MHULL = HULL[0]
SHULL = HULL[2]

//COLOR
hullColor = switchColor ? (HULL > HULL[2] ? #00ff00 : #ff0000) : #ff9800

//PLOT
///< Frame
Fi1 = plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
alertcondition(crossover(MHULL, SHULL), title="Hull trending up.", message="Hull trending up.")
alertcondition(crossover(SHULL, MHULL), title="Hull trending down.", message="Hull trending down.")
///< Ending Filler
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)

// Define Buy and Sell Conditions based on crossovers
buyCondition = crossover(MHULL, SHULL)
sellCondition = crossunder(MHULL, SHULL)

// Plotting the Hull Moving Average (HMA)
plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch)
plot(SHULL, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=transpSwitch)
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)

// Execute Strategy based on Buy and Sell Conditions
strategy.entry("Buy", strategy.long, when=buyCondition, alert_message=longAlertMessage)
strategy.entry("Sell", strategy.short, when=sellCondition, alert_message=shortAlertMessage)

// Additional elements like bar coloring remain unchanged
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)