MACD dari Strategi Perdagangan RSI

Penulis:ChaoZhang, Tanggal: 2023-09-21 20:48:50
Tag:

Gambaran umum

Strategi ini menggunakan indikator MACD untuk menentukan tren indikator RSI, menghasilkan sinyal perdagangan.

Logika Strategi

Strategi ini didasarkan pada dua indikator utama:

  1. RSI Menghitung RSI 14 periode reguler.

  2. MACD dari RSI Menghitung nilai MACD pada RSI, dengan standar MA cepat 12, MA lambat 26, garis sinyal 9.

Ketika MACD dari RSI melintasi ke atas, MAs cepat dan lambat melintasi emas, itu menentukan tren naik dan pergi panjang.

Ketika MACD melintasi ke bawah, MAs cepat dan lambat melintasi mati, itu menentukan downtrend dan pergi pendek.

Rata-rata bergerak eksponensial MACD membantu menentukan tren jangka panjang RSI itu sendiri, menghasilkan sinyal yang lebih akurat.

Keuntungan

  • MACD menilai arah tren RSI untuk akurasi yang lebih tinggi
  • RSI sebagai indikator utama, MACD sebagai indikator sekunder
  • MAs eksponensial membuat penentuan tren stabil
  • Kombinasi verifikasi satu sama lain, menghindari whipsaws
  • Pengaturan parameter memberikan fleksibilitas untuk pasar yang berbeda

Risiko

  • Baik RSI dan MACD dapat tertinggal, menyebabkan sinyal yang tidak akurat
  • Parameter MACD yang salah dapat menghasilkan lebih banyak sinyal palsu
  • Berbasis indikator murni, sensitif terhadap peristiwa mendadak
  • Mekanisme Stop Loss membutuhkan perbaikan lebih lanjut
  • Optimasi parameter yang diperlukan untuk produk yang berbeda

Risiko dapat dikurangi dengan:

  • Mengoptimalkan kombinasi parameter RSI dan MACD
  • Menambahkan filter lain untuk konfirmasi
  • Relaksasi TP/SL untuk menghindari keluar dini
  • Mempertimbangkan masuk kembali
  • Dimensi posisi untuk membatasi kerugian tunggal

Arah Peningkatan

Strategi dapat ditingkatkan dari:

  1. Pengujian kombinasi RSI dan parameter MACD

  2. Menambahkan konfirmasi sekunder ketika sinyal MACD

    contohnya pola candlestick, volume, Bollinger band dll.

  3. Mengoptimalkan berhenti untuk berhenti trailing

  4. Menambahkan aturan masuk kembali

    Menetapkan kembali posisi setelah berhenti terpukul jika tren berlanjut

  5. Penyesuaian ukuran posisi berdasarkan volatilitas

    Ukuran yang lebih kecil pada volatilitas tinggi, ukuran yang lebih besar pada volatilitas rendah

Ringkasan

Strategi ini menggabungkan indikator RSI dan MACD untuk memverifikasi satu sama lain untuk deteksi tren yang lebih akurat dan stabil. Tetapi parameter perlu dioptimalkan, dan filter teknis tambahan atau aturan perdagangan diperlukan untuk konfirmasi, menghindari kejadian mendadak. Juga mekanisme stop loss dan ukuran posisi dinamis penting. Pembelajaran dan pengoptimalan berkelanjutan sangat penting untuk beradaptasi dengan perubahan kondisi pasar untuk keuntungan yang stabil.


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "MACD of RSI", overlay = false)

//////////////////////// RSI ///////////////////////////

src = close, len = input(14, minval=1, title="Length")
up = sma(max(change(src), 0), len)
down = sma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))


//////////////////////// RSI   //////////////////////////

//////////////// MACD  ////////////////////////////

sourcemacd = rsi 

fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)


fastMA = ema(sourcemacd, fastLength)
slowMA = ema(sourcemacd, slowLength)

macd = fastMA - slowMA
signal = ema(macd, signalLength)
delta=macd-signal

swap1 = delta>0?green:red

plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20)
p1 = plot(macd,color=blue,title='MACD Line')
p2 = plot(signal,color=red,title='Signal')
fill(p1, p2, color=blue)
hline(0)




/////////////////////////MACD  //////////////////////////


// Conditions



longCond = na
sellCond = na
longCond :=  crossover(delta,0)
sellCond :=  crossunder(delta,0)




monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  longCond  ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( sellCond   ) 

    strategy.close("BUY")







Lebih banyak