Strategi mengikuti tren berdasarkan DMI dan RSI


Tanggal Pembuatan: 2024-01-25 15:56:41 Akhirnya memodifikasi: 2024-01-25 15:56:41
menyalin: 0 Jumlah klik: 1037
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan DMI dan RSI

Ringkasan

Strategi ini menggabungkan indikator DMI untuk menentukan arah tren dan indikator RSI untuk menentukan overbought dan oversold, untuk mencapai strategi perdagangan yang mengikuti tren yang lebih lengkap. Ketika indikator DMI menentukan tren, dan indikator RSI menunjukkan overbought atau oversold, maka harus melakukan overbought atau shorting.

Prinsip-prinsip Strategi

  1. Menggunakan indikator DMI untuk menentukan arah tren
    • DMI terdiri dari tiga kurva: + DI menunjukkan tren naik, - DI menunjukkan tren turun, dan ADX menilai kekuatan tren
    • Ketika + DI>-DI adalah tren naik, lakukan lebih banyak; Ketika-DI>+DI adalah tren turun, lakukan short
  2. Menggunakan indikator RSI untuk menilai overbought dan oversold
    • RSI menilai apakah overbought atau oversold dengan membandingkan kenaikan dan penurunan rata-rata akhir pekan dalam periode tertentu
    • RSI di bawah 30 berarti oversold, di atas 70 berarti overbought
  3. Kombinasi DMI untuk menilai arah tren dan RSI untuk menilai overbought dan oversold, dapat lebih memahami irama pasar
    • DMI menilai ada tren naik dan RSI oversold, untuk lebih baik melakukan lebih banyak waktu
    • DMI menilai ada kecenderungan penurunan dan RSI overbought, untuk waktu yang lebih baik melakukan shorting
  4. Setting Stop Loss untuk Mengunci Keuntungan

Analisis Keunggulan

Ini adalah strategi trend-following yang lebih matang dan stabil, dengan keuntungan sebagai berikut:

  1. Menggabungkan penilaian tren dengan penilaian overbought dan oversold untuk menghindari perdagangan yang sering terjadi di pasar yang bergejolak
  2. Menggunakan indikator populer DMI dan RSI, parameter pilihan mudah, praktek verifikasi cukup
  3. Mengatur stop loss bergerak untuk mengunci keuntungan, dapat menghindari stop loss sampai batas tertentu
  4. Peraturan yang jelas dan mudah dipahami, prosedur yang sederhana dan mudah dipraktekkan

Analisis Risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. DMI dan RSI sama-sama rentan terhadap sinyal palsu yang dapat menyebabkan kerugian yang tidak perlu
  2. Stop loss mobile yang tidak tepat dapat menyebabkan stop loss terlalu cepat atau terlalu besar
  3. Tidak bisa memfilter getaran secara efektif, mudah terjebak
  4. Mengikuti strategi tren, tidak dapat menghentikan kerugian tepat waktu ketika tren berbalik

Optimalisasi arah

Strategi ini juga dapat dioptimalkan dalam beberapa hal:

  1. Terkait dengan indikator volatilitas yang memfilterkan pergerakan
  2. Pertimbangan bentuk candle untuk menghindari penembusan palsu
  3. Setel Stop Loss Limit yang tepat di dekat posisi resistensi pendukung yang penting
  4. Tambahkan model pembelajaran mesin untuk menilai tren ython
  5. Parameter optimasi dinamis untuk DMI dan RSI

Kesimpulannya

Strategi ini secara keseluruhan adalah strategi mengikuti tren yang lebih stabil dan praktis, dengan DMI menilai arah tren, RSI menilai overbought dan oversold, sehingga menangkap peluang perdagangan di garis tengah. Pada saat yang sama, pengaturan stop loss bergerak untuk mengunci keuntungan. Pilihan parameter strategi ini sederhana, aturan perdagangan jelas, dan mudah dipraktikkan.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © YingYangJPN

//@version=5
strategy("DMI and RSI Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// DMI indikatörünü tanımlayalım
lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(14, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
trailing_stop_loss_factor = input.float(0.50, "Trailing Stop Loss Factor", step = 0.01)

// RSI indikatörünü tanımlayalım
rsiLength = input.int(14, minval=1, title="RSI Length")
rsiSource = input(close, title="RSI Source")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsiValue = ta.rsi(rsiSource, rsiLength)

// Uzun pozisyon açma koşullarını tanımlayalım
longCondition1 = rsiValue < rsiOversold // RSI oversold seviyesinin altındaysa
longCondition2 = adx > 20 // ADX 20'den büyükse
longCondition3 = minus > plus

// Kısa pozisyon açma koşullarını tanımlayalım
shortCondition1 = rsiValue > rsiOverbought // RSI overbought seviyesinin üstündeyse
shortCondition2 = adx > 20 // ADX 20'den büyükse
shortCondition3 = plus > minus

// Uzun pozisyon açalım
if longCondition1 and longCondition2 and longCondition3
    strategy.entry("Long", strategy.long)
    

// Kısa pozisyon açalım
if shortCondition1 and shortCondition2 and shortCondition3
    strategy.entry("Short", strategy.short)
    
// Trailing Stop Loss
longTrailingStopLoss = strategy.position_avg_price * (1 - trailing_stop_loss_factor / 100)
shortTrailingStopLoss = strategy.position_avg_price * (1 + trailing_stop_loss_factor / 100)
if strategy.position_size > 0 
    strategy.exit("Exit Long", "Long", stop  = longTrailingStopLoss)
if strategy.position_size < 0 
    strategy.exit("Exit Short", "Short", stop = shortTrailingStopLoss)

// DMI ve RSI indikatörlerini grafiğe çizelim
plot(adx, color=#F50057, title="ADX")
plot(plus, color=#2962FF, title="+DI")
plot(minus, color=#FF6D00, title="-DI")
plot(rsiValue, color=#9C27B0, title="RSI")
hline(rsiOverbought, title="RSI Overbought Level", color=#E91E63, linestyle=hline.style_dashed)
hline(rsiOversold, title="RSI Oversold Level", color=#4CAF50, linestyle=hline.style_dashed)