Menggabungkan DMI dan strategi perdagangan purata bergerak

Penulis:ChaoZhang, Tarikh: 2023-09-28 12:39:44
Tag:

Ringkasan

Strategi ini menggabungkan Indeks Pergerakan Arah (DMI) dan purata bergerak untuk mengenal pasti arah trend untuk dan menjana isyarat perdagangan. Ia akan menghasilkan isyarat beli dan jual apabila DMI menunjukkan harga berada dalam keadaan trend dan purata bergerak mengesahkan arah trend.

Logika Strategi

Strategi ini berdasarkan dua penunjuk utama:

  1. DMI, termasuk DMI + dan DMI-, digunakan untuk mengenal pasti kewujudan dan arah trend. Apabila DMI + berada di atas DMI-, trend menaik hadir. Apabila DMI- berada di atas DMI+, trend menurun hadir.

  2. Purata bergerak, biasanya ditetapkan pada 15 hingga 50 hari, digunakan untuk menentukan arah trend harga. Apabila harga di atas (di bawah) purata bergerak, trend naik (downtrend) ditunjukkan.

Strategi ini mula-mula mengira DMI+, DMI-, dan purata bergerak. Apabila DMI menunjukkan keadaan trend (DMI+ di atas DMI- atau sebaliknya) dan purata bergerak mengesahkan arah, isyarat perdagangan dihasilkan.

  • Apabila DMI+ melintasi di atas DMI- dan harga melintasi di atas MA, pergi panjang.

  • Apabila DMI- melintasi di atas DMI+ dan harga melintasi di bawah MA, pergi pendek.

Pilihan input terbalik juga termasuk. Apabila diaktifkan, isyarat panjang dan pendek terbalik.

Analisis Kelebihan

Menggabungkan penunjuk trend seperti DMI dan penunjuk trend seperti purata bergerak dapat meningkatkan kebolehpercayaan isyarat dengan menggunakan kekuatan kedua-duanya.

Kelebihan DMI adalah pengenalan cepat trend yang muncul. purata bergerak membantu menapis bunyi bising dan mengesahkan arah trend.

Pilihan terbalik juga menambah fleksibiliti untuk berdagang dengan atau menentang trend.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Isyarat yang salah mungkin berlaku di sekitar peralihan trend, yang membawa kepada kerugian.

  2. Pembentukan trend memerlukan masa. Sementara itu, turun naik harga boleh menghasilkan isyarat palsu. Penpanjangan tempoh DMI dan MA boleh menapis bunyi bising ini.

  3. Perdagangan pembalikan mempunyai risiko kerugian yang lebih besar dalam pergerakan yang tidak baik. Dengan pilihan terbalik, saiz kerugian harus terhad dan hentian yang digunakan untuk mengunci keuntungan.

  4. Parameter perlu dioptimumkan semula untuk produk dan jangka masa yang berbeza. Menyalin parameter secara langsung mungkin tidak berfungsi dengan baik.

Arahan pengoptimuman

Kemungkinan pengoptimuman untuk strategi ini termasuk:

  1. Ujian tempoh purata bergerak yang berbeza untuk mencari yang paling sesuai untuk peralihan trend.

  2. Ujian tempoh penyelarasan DMI untuk menapis pembalikan pendek dalam trend.

  3. Menilai kesan pilihan terbalik berbanding trend lalai-mengikuti dalam backtest sejarah untuk memilih pendekatan yang lebih baik.

  4. Menggabungkan strategi henti seperti hentian, hentian masa, atau hentian pecah untuk mengehadkan saiz kerugian.

  5. Menilai prestasi parameter di pelbagai produk dan jangka masa dan mengoptimumkan parameter.

  6. Menambah penapis seperti RSI untuk mengelakkan isyarat palsu pada ekstrem tempatan.

Ringkasan

Strategi ini menggabungkan kekuatan DMI yang mengikuti trend dan penunjuk purata bergerak untuk memasuki trend lebih awal sambil mengelakkan whipsaws di pasaran yang bergolak. Pilihan terbalik juga menambah fleksibiliti. Peningkatan lebih lanjut dalam kestabilan boleh datang dari pengoptimuman parameter, berhenti, dan menggabungkan dengan penapis tambahan. Walau bagaimanapun, parameter perlu diuji semula untuk penerapan di pelbagai produk dan jangka masa.


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/03/2017
// The related article is copyrighted material from Stocks & Commodities Aug 2009 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining DMI And Moving Average For A EUR/USD Trading System")
Length_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
xMA = sma(close, Length_MA)
up = change(high)
down = -change(low)
trur = rma(tr, Length_DMI)
xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur)
xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur)
nPDI = xPDI
nNDI = xNDI
nMA = xMA
nPDI_1 = xPDI[1]
nNDI_1 = xNDI[1]
nMA_1 = xMA[1]
bMDILong =iff(nPDI > nNDI and nPDI_1 < nNDI_1, true, 
           iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false)) 
bMDIShort =  iff(nPDI > nNDI and nPDI_1 < nNDI_1, false, 
              iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false)) 
bMALong = iff(close > nMA and close[1] < nMA_1, true, 
           iff(close < nMA and close[1] > nMA_1, false, false))
bMAShort = iff(close > nMA and close[1] < nMA_1, false, 
             iff(close < nMA and close[1] > nMA_1, true, false))
pos = iff(bMDILong and bMALong, 1, 
     iff(bMDIShort and bMAShort, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1 )
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nPDI, color=green, title="DMI Plus")
plot(nNDI, color=red, title="DMI Minus")

Lebih lanjut