Strategi ini mengenal pasti arah trend dengan menggabungkan indikator trend DMI dan purata bergerak untuk menghantar isyarat beli dan jual. Strategi ini menghasilkan isyarat perdagangan apabila DMI menunjukkan tawaran memasuki keadaan trend dan purata bergerak mengesahkan arah trend.
Strategi ini berdasarkan kepada dua indikator:
DMI merangkumi DMI+ dan DMI-, yang digunakan untuk mengenal pasti kewujudan dan arah trend. Apabila DMI+ lebih tinggi daripada DMI-, ia menunjukkan trend naik; apabila DMI- lebih tinggi daripada DMI+, ia menunjukkan trend menurun.
Rata-rata bergerak, biasanya mengambil rata-rata 15 hingga 50 hari, digunakan untuk menentukan arah trend harga. Apabila harga lebih tinggi daripada (bawah) rata-rata bergerak, menunjukkan kenaikan (bawah) trend.
Strategi pertama mengira DMI +, DMI- dan purata bergerak. Apabila DMI menunjukkan keadaan trend ((DMI + lebih tinggi daripada DMI - atau DMI - lebih tinggi daripada DMI +), dan jika rata-rata bergerak juga mengesahkan arah trend, maka ia akan menghasilkan isyarat perdagangan.
Strategi ini juga menambah pilihan input terbalik. Apabila terbalik diaktifkan, isyarat melakukan lebih banyak dan kosong akan terbalik.
Strategi ini menggabungkan penunjuk trend dan penunjuk trend untuk meningkatkan kebolehpercayaan isyarat, menggunakan kelebihan kedua-dua penunjuk untuk saling melengkapi.
Kelebihan DMI adalah bahawa ia dapat mengenal pasti trend dengan cepat. Sementara itu, purata bergerak dapat menyaring sebahagian daripada kebisingan dan mengesahkan arah trend. Kedua-duanya digunakan bersama-sama untuk memasuki lebih awal ketika trend terbentuk, dan mengelakkan aliran gelombang ketika tidak trend.
Di samping itu, strategi ini menambah pilihan pembalikan, yang membolehkan anda memilih perdagangan maju atau mundur mengikut keperluan sebenar. Ini meningkatkan fleksibiliti strategi.
Strategi ini mempunyai risiko utama:
Apabila trend berubah, isyarat yang salah boleh berlaku, yang menyebabkan kerugian. Ini memerlukan penyesuaian parameter, atau menetapkan stop loss untuk mengawal risiko.
Pembentukan trend memerlukan masa tertentu, di mana strategi mudah diganggu oleh pergerakan harga, menghasilkan isyarat yang salah. Anda boleh menyesuaikan parameter DMI dan tempoh purata bergerak untuk menyaring kebisingan ini.
Perdagangan berbalik menghadapi risiko peningkatan kerugian dengan berbalik. Apabila mengaktifkan berbalik, perlu mengawal peratusan kerugian tunggal, atau menggunakan hentian bergerak untuk mengunci sebahagian keuntungan.
Parameter perlu dioptimumkan semula untuk pelbagai jenis dan tempoh masa yang berbeza. Parameter yang disalin secara langsung mungkin tidak berkesan untuk digunakan pada jenis atau tempoh lain.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Uji parameter kitaran purata bergerak yang berbeza untuk mencari kombinasi parameter terbaik untuk menukar trend penggabungan.
Parameter kitaran halus untuk menguji DMI, bunyi pembalikan jangka pendek yang muncul dalam trend penapisan.
Menilai perbezaan kesan antara pilihan pembalikan yang diaktifkan dan perdagangan default dalam retrospeksi sejarah, memilih pilihan yang lebih baik.
Menambah strategi hentikan kerugian, seperti hentikan bergerak, hentikan masa, hentikan hentikan, dan lain-lain, untuk mengawal kerugian tunggal.
Menilai kesan pengoptimuman dalam pelbagai varieti dan parameter kitaran, mengoptimumkan kombinasi parameter.
Penapisan digabungkan dengan indikator lain, seperti RSI yang kuat dan lemah, dapat mengelakkan isyarat yang salah pada titik-titik ekstrem tempatan.
Strategi ini menggabungkan kelebihan kedua-dua indikator DMI dan Moving Average, untuk masuk ke dalam permainan lebih awal apabila trend terbentuk, dan untuk mengelakkan terkurung dalam keadaan goyah. Pilihan perdagangan reverse juga meningkatkan fleksibiliti strategi. Kestabilan strategi dapat ditingkatkan lagi dengan pengoptimuman parameter, hentikan kerugian, dan digunakan dengan kombinasi indikator lain.
/*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")