Strategi Trend Berdasarkan HULL SMA dan EMA Crossover

Penulis:ChaoZhang, Tarikh: 2023-10-30 12:32:38
Tag:

img

Ringkasan

Strategi ini menjana isyarat beli dan jual dengan mengira persilangan antara garisan purata bergerak diluruskan HULL dan garis purata bergerak eksponen untuk menentukan arah trend pasaran.

Logika Strategi

  1. Mengira HULL Smoothed Moving Average (HULL SMA) 5 tempoh. HULL SMA bertindak balas lebih cepat terhadap perubahan harga dengan menggunakan purata bergerak bertimbang dan akar kuadrat tempoh.

  2. Mengira purata bergerak eksponen 5 tempoh (EMA). EMA memberikan lebih banyak berat kepada harga baru-baru ini dan lebih sensitif daripada SMA dalam mengesan trend.

  3. Menghasilkan isyarat beli dan jual berdasarkan persilangan antara HULL SMA dan EMA.

  • Apabila HULL SMA melintasi di atas EMA, isyarat beli dihasilkan, yang menunjukkan trend jangka pendek pecah di atas trend jangka panjang, menunjukkan pergerakan harga ke atas.

  • Apabila HULL SMA melintasi di bawah EMA, isyarat jual dihasilkan, yang menunjukkan trend jangka pendek bertukar ke bawah, menunjukkan pergerakan harga ke bawah.

  1. Menggunakan HULL SMA sebagai garisan pantas dan EMA sebagai garisan perlahan untuk menentukan perubahan dalam trend jangka pendek dan sederhana berdasarkan persilangan, menghasilkan isyarat perdagangan.

Analisis Kelebihan

  1. HULL SMA sensitif terhadap perubahan harga dan boleh mengesan perubahan trend lebih awal.

  2. EMA meringankan bunyi bising pasaran dan mengesan trend jangka panjang.

  3. Isyarat silang menangkap titik perubahan trend dengan tepat pada masanya.

  4. Parameter boleh diselaraskan untuk jangka masa perdagangan yang berbeza.

  5. Mencatatkan aliran menaik dan menurun dengan fleksibel.

Analisis Risiko

  1. Lebih banyak isyarat palsu mungkin berlaku semasa pasaran terhad julat.

  2. Tidak dapat menentukan kekuatan trend, boleh membawa kepada kerugian berulang dalam trend lemah.

  3. Pergerakan harga antara selang purata mungkin terlepas.

  4. Tetapan parameter yang tidak betul mempengaruhi kualiti isyarat.

  5. Frekuensi perdagangan yang tinggi meningkatkan kos dan risiko tergelincir.

Peningkatan boleh dibuat melalui penapisan isyarat, menilai kekuatan trend, pengoptimuman parameter, pengurusan risiko, dll.

Arahan pengoptimuman

  1. Tambah indikator seperti MACD, RSI untuk pengesahan isyarat.

  2. Menggabungkan penunjuk kekuatan trend seperti ADX untuk mengelakkan perdagangan trend lemah.

  3. Mengoptimumkan parameter purata bergerak untuk kombinasi terbaik.

  4. Melaksanakan stop loss untuk mengawal kerugian perdagangan tunggal.

  5. Mengurus kekerapan perdagangan dan kos.

  6. Memasukkan analisis pelbagai jangka masa untuk mengenal pasti trend rentas kitaran.

  7. Membangunkan program pengoptimuman parameter automatik.

Ringkasan

Strategi ini menilai trend berdasarkan persilangan antara HULL SMA yang cepat dan EMA yang perlahan. Ini adalah sistem persilangan purata bergerak biasa. Berbanding dengan purata bergerak tradisional, HULL SMA yang lebih responsif menyediakan pengesanan perubahan trend lebih awal. Tetapi parameter dan penunjuk tambahan harus dioptimumkan untuk mengurangkan isyarat palsu. Dengan pengurusan risiko dan wang yang betul, strategi ini boleh menjadi sistem trend berikut jangka menengah yang cekap.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("HULL EMA Crossover", overlay = true, process_orders_on_close = true)

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritedPerson95700

inSession = true


HULL_INP = input.int(5, "Hull EMA Value")
EMA_INP = input(5, "EMA Value")

/// Indicator
HULL_EMA = ta.hma(close, HULL_INP)
EMA = ta.ema(close, EMA_INP)

prevSignal = ''
if (prevSignal == '')  
    prevSignal := HULL_EMA > EMA ? 'buy' : 'sell'

/// buy and sell signal
buy = ta.crossover(HULL_EMA, EMA)
short = ta.crossover(EMA, HULL_EMA)

sell = short
cover = buy

if inSession
    if buy 
        prevSignal := 'na'
        strategy.entry("long", direction = strategy.long, comment = "Buy")

    if sell
        prevSignal := 'na'
        strategy.close("long", comment = "Sell")

    if short
        strategy.entry("short", direction = strategy.short, comment = "Short")

    if cover
        strategy.close("short", comment = "Cover")


plot(HULL_EMA, color = color.green)
plot(EMA, color = color.blue)

// if ( hour(time) == 15 and minute(time) > 25  )  
//     strategy.close("long", comment="EOD")
//     strategy.close("short", comment="EOD")
//     buy := false
//     sell := false
//     prevSignal := ''


Lebih lanjut