Strategi ini berdagang berdasarkan indikator pergerakan dinamis (DMI). DMI menilai tren dengan menghitung persentase deviasi harga dari garis rata-rata panjang yang berbeda.
Logika transaksi adalah sebagai berikut:
Perhitungan persentase deviasi harga terhadap rata-rata periode panjang (misalnya 200 hari), sebagai DMI 1
Perhitungan persentase deviasi harga dari rata-rata rata-rata periode (misalnya 50 hari), sebagai DMI ke-2
Perhitungan persentase deviasi harga dari rata-rata periode pendek (misalnya 20 hari), sebagai DMI ke-3
Bisex saat DMI ke-3 lebih tinggi dari DMI ke-1; bullish saat DMI ke-3 lebih rendah dari DMI ke-2
Menciptakan sinyal transaksi berdasarkan hubungan DMI
DMI menilai titik balik tren pasar dengan membandingkan secara dinamis intensitas relatif dari siklus rata-rata yang berbeda. Optimasi parameter dapat disesuaikan dengan siklus yang berbeda.
DMI dengan penilaian multi-siklus, lebih komprehensif
Bandingkan intensitas relatif, hindari penilaian numerik mutlak
Fleksibel untuk menyesuaikan parameter siklus sesuai dengan pasar
DMI memiliki keterlambatan dan mungkin akan melewatkan putaran.
Periode parameter harus diatur dengan hati-hati
Mungkin menghasilkan sinyal yang tidak valid beberapa kali
Strategi DMI menilai pergeseran dengan membandingkan hubungan kuat dan lemah dari siklus rata-rata lebih banyak. Hal ini dapat dioptimalkan dengan parameter yang disesuaikan dengan lingkungan pasar yang berbeda. Namun, keterbelakangan ada, perlu bantuan indikator lain untuk menilai.
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 31/06/2018
// The related article is copyrighted materialfrom Stocks & Commodities Dec 2009
// My strategy modification.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="CMOaDisparity Index Backtest")
LengthFirst = input(200, minval=1)
LengthSecond = input(50, minval=1)
LengthThird = input(20, minval=1)
ShowFirst = input(type=bool, defval=true)
ShowSecond = input(type=bool, defval=true)
ShowThird = input(type=bool, defval=true)
reverse = input(false, title="Trade reverse")
xEMAFirst = ema(close,LengthFirst)
xEMASecond = ema(close,LengthSecond)
xEMAThird = ema(close,LengthThird)
xResFirst = 100 * (close - xEMAFirst) / close
xResSecond = 100 * (close - xEMASecond) / close
xResThird = 100 * (close - xEMAThird) / close
pos = iff(xResThird > xResFirst, -1,
iff(xResThird < xResSecond, 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(ShowFirst ? xResFirst : na, color=red, title="DIX 1")
plot(ShowSecond ? xResSecond : na, color=blue, title="DIX 2")
plot(ShowThird ? xResThird : na, color=green, title="DIX 3")