Strategi Purata Pergerakan Double HULL


Tarikh penciptaan: 2023-09-15 16:39:48 Akhirnya diubah suai: 2023-09-15 16:43:45
Salin: 0 Bilangan klik: 1525
1
fokus pada
1617
Pengikut

Prinsip strategi:

Strategi HULL Moving Average adalah strategi perdagangan berdasarkan HULL Moving Average Indicator yang dicipta oleh Alan HULL. Strategi ini menggunakan dua HULL Moving Average, satu garis panjang dan satu garis pendek, untuk menilai masa pembelian dan penjualan. HULL Moving Average adalah purata bergerak yang diperbaiki untuk mengurangkan ketinggalan dengan memberi berat kepada harga purata.

Rumus untuk HULL Moving Average adalah seperti berikut:

HmaL = wma(2*wma(close, round(PDL/2)) - wma(close, PDL), round(sqrt(PDL)))
HmaS = wma(2*wma(close, round(PDS/2)) - wma(close, PDS), round(sqrt(PDS)))

Di antaranya, PDL mewakili kitaran jangka panjang dan PDS mewakili kitaran jangka pendek. Strategi menilai syarat pembelian dan penjualan dengan membandingkan nilai garis pendek dan panjang.

Analisis kelebihan:

  1. Pengurangan keterlambatan: Purata bergerak HULL mempunyai keterlambatan yang lebih sedikit berbanding purata bergerak tradisional, dan dapat bertindak balas lebih cepat terhadap perubahan trend harga, memberikan isyarat beli dan jual yang lebih tepat.
  2. Mudah difahami: Strategi ini menggunakan dua purata bergerak untuk membuat pertimbangan silang, logiknya agak mudah dan mudah difahami dan dilaksanakan.
  3. Keupayaan yang tinggi: parameter kitaran dalam strategi boleh disesuaikan dengan pasaran dan jenis perdagangan tertentu, menjadikan strategi lebih sesuai dengan persekitaran perdagangan yang berbeza.

Analisis risiko:

  1. Guncangan pasaran: Pada tahap gejolak pasaran, purata bergerak mungkin sering berselisih, menyebabkan isyarat beli dan jual yang kerap, mudah menghasilkan isyarat yang salah, menyebabkan perdagangan yang kerap dan kerugian.
  2. Penarikan dan kelewatan: Pelaksanaan strategi dipengaruhi oleh penarikan dan kelewatan, terutamanya dalam perdagangan frekuensi tinggi, yang boleh menyebabkan harga pelaksanaan tidak selaras dengan harga yang dijangkakan, yang mempengaruhi hasil perdagangan.
  3. Bergantung pada satu petunjuk: Strategi ini hanya bergantung pada petunjuk purata bergerak HULL dan tidak digabungkan dengan petunjuk teknikal lain atau maklumat pasaran, yang mungkin tidak dapat menangkap perubahan dan trend pasaran secara menyeluruh.

Kesimpulannya:

Strategi HULL Moving Average Dual adalah strategi perdagangan berdasarkan HULL Moving Average untuk menentukan masa pembelian dan penjualan dengan membandingkan titik persilangan garis pendek dan garis panjang. Strategi ini mempunyai kelebihan untuk mengurangkan keterbelakangan, mudah difahami, dan sangat disesuaikan, tetapi juga berisiko terhadap guncangan pasaran, tergelincir dan kelewatan, dan bergantung pada satu indikator. Dalam aplikasi praktikal, strategi ini boleh disesuaikan dan dioptimumkan mengikut keadaan tertentu, digabungkan dengan petunjuk teknikal lain dan kaedah pengurusan risiko, untuk meningkatkan kejayaan dan keuntungan perdagangan.

Kod sumber strategi
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit Indicator from KIVANC
// author and idea: KIVANC @fr3762 on twitter
// creator: Alan HULL
// 
strategy("Double HULL Moving Average Strategy", overlay=true)
PDL=input(title="LongerPeriod", defval=21, minval=1,maxval=500)
PDS=input(title="ShorterPeriod",  defval=8, minval=1,maxval=500)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

HmaL=wma(2*wma(close,round(PDL/2))-wma(close,PDL),round(sqrt(PDL)))
HmaS=wma(2*wma(close,round(PDS/2))-wma(close,PDS),round(sqrt(PDS)))
plot(HmaL,color=red, linewidth=2)
plot(HmaS,color=blue, linewidth=2)

Buy = HmaS > HmaL
Sell = HmaS < HmaL

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)