Strategi Kombinasi Indikator Arah dan Rata-rata Pergerakan Hull


Tanggal Pembuatan: 2024-01-04 17:23:06 Akhirnya memodifikasi: 2024-01-04 17:23:06
menyalin: 0 Jumlah klik: 688
1
fokus pada
1621
Pengikut

Strategi Kombinasi Indikator Arah dan Rata-rata Pergerakan Hull

Ringkasan

Strategi ini menggunakan kombinasi indikator bergerak (DMI) dan Hull Moving Average (HMA) untuk menentukan arah pasar, dan HMA untuk mengkonfirmasi kekuatan tren, sehingga memungkinkan perdagangan tanpa manajemen risiko.

Prinsip Strategi

  1. Hitung True Range, DIPlus, DIMinus, dan ADX.

  2. Hull rata-rata cepat (fasthull) dan Hull rata-rata lambat (slowhull) dihitung.

  3. Trigger dengan beberapa kondisi: DIPlus memakai DIMinus dan fasthull memakai slowhull。

  4. Kondisi pemicu vakum: DIMinus melalui DIPlus dan fasthull melalui slowhull。

  5. Setelah memenuhi kondisi melakukan lebih banyak pengosongan, sinyal melakukan lebih banyak dan mengosongkan.

Analisis Keunggulan

Strategi ini dikombinasikan dengan pengesahan ganda dari indikator DMI dan Hull Average untuk menilai tren, yang dapat secara efektif mengidentifikasi arah tren pasar, menghindari pengulangan pasar overhead dan pasar overhead. Manajemen tanpa risiko mengurangi frekuensi perdagangan, dan tingkat keuntungan keseluruhan yang baik dalam jangka panjang.

Analisis risiko

Risiko terbesar dari strategi ini adalah pengaturan tanpa kerugian, tidak dapat mengontrol kerugian secara efektif ketika terjadi fluktuasi besar. Selain itu, ruang untuk mengoptimalkan parameter terbatas, dan kurangnya target yang kuat juga merupakan kelemahan besar.

Risiko dapat dikurangi dengan menambahkan stop loss bergerak, kombinasi parameter optimasi, dan sebagainya.

Arah optimasi

  1. Termasuk ATR stop loss yang memanfaatkan real bandwidth trailing stop loss.

  2. Optimalkan parameter siklus Hull untuk menemukan kombinasi optimal.

  3. Pengaturan dinamis untuk parameter ambang batas kosong.

  4. Menambahkan filter seperti indikator energi kuantitatif untuk memastikan bahwa tren terus berlanjut.

Meringkaskan

Kombinasi strategi DMI dan HMA, penilaian yang akurat, sederhana dan efektif, cocok untuk operasi garis tengah dan panjang. Setelah menambahkan stop loss dan optimasi parameter yang tepat, dapat menjadi sistem pelacakan tren yang sangat baik.

Kode Sumber Strategi
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Tuned_Official
//@version=4
strategy(title="DMI + HMA - No Risk Management", overlay = false, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.025)

//Inputs
hullLen1 = input(title="Hull 1 length", type=input.integer, defval=29)
hullLen2 = input(title="Hull 2 length", type=input.integer, defval=2)
len = input(title="Length for DI", type=input.integer, defval=76)

//Calculations
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0

SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

//Indicators
fasthull = hma(close, hullLen1)
slowhull = hma(close, hullLen2)
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)

//Plots
plot(DIPlus, color=color.green, title="DI+")
plot(DIMinus, color=color.red, title="DI-")
plot(ADX, color=color.black, title="ADX")

//conditions
go_long = crossover(DIPlus, DIMinus) and fasthull > slowhull //crossover(fasthull, slowhull) and DIPlus > DIMinus
go_short = crossover(DIMinus, DIPlus) and fasthull < slowhull //crossunder(fasthull, slowhull) and DIMinus > DIPlus

//Entry
if strategy.position_size < 0 or strategy.position_size == 0
    strategy.order("long", strategy.long, when=go_long)

if strategy.position_size > 0 or strategy.position_size == 0
    strategy.order("Short", strategy.short, when=go_short)