MACD RSI Strategi Dagangan

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

Ringkasan

Strategi ini menggunakan penunjuk MACD untuk menentukan trend penunjuk RSI, menjana isyarat perdagangan.

Logika Strategi

Strategi ini berdasarkan dua penunjuk utama:

  1. RSI Mengira RSI 14 tempoh biasa.

  2. MACD RSI Mengira nilai MACD pada RSI, dengan MA pantas lalai 12, MA perlahan 26, garis isyarat 9.

Apabila MACD RSI melintasi ke atas, MAS yang cepat dan perlahan melintasi emas, ia menentukan trend menaik dan pergi panjang.

Apabila MACD melintasi ke bawah, MA yang cepat dan perlahan melintasi mati, ia menentukan trend menurun dan pergi pendek.

Purata bergerak eksponensial MACD membantu menentukan trend jangka panjang RSI itu sendiri, menghasilkan isyarat yang lebih tepat.

Kelebihan

  • MACD menilai arah trend RSI untuk ketepatan yang lebih tinggi
  • RSI sebagai penunjuk utama, MACD sebagai penunjuk sekunder
  • MAs eksponen menjadikan penentuan trend stabil
  • Gabungan mengesahkan antara satu sama lain, mengelakkan whipsaws
  • Penyesuaian parameter memberikan fleksibiliti untuk pasaran yang berbeza

Risiko

  • Kedua-dua RSI dan MACD boleh ketinggalan, yang membawa kepada isyarat yang tidak tepat
  • Parameter MACD yang salah boleh menghasilkan lebih banyak isyarat palsu
  • Berasaskan indikator semata-mata, sensitif terhadap peristiwa tiba-tiba
  • Mekanisme Stop Loss memerlukan penambahbaikan lanjut
  • Pengoptimuman parameter yang diperlukan untuk produk yang berbeza

Risiko boleh dikurangkan dengan:

  • Mengoptimumkan gabungan parameter RSI dan MACD
  • Menambah penapis lain untuk pengesahan
  • Relaksasi TP/SL untuk mengelakkan keluar awal
  • Mempertimbangkan kemasukan semula
  • Ukuran kedudukan untuk mengehadkan kerugian tunggal

Arahan Peningkatan

Strategi ini boleh ditingkatkan dari:

  1. Ujian gabungan parameter RSI dan MACD

  2. Menambah pengesahan sekunder apabila isyarat MACD

    contohnya corak candlestick, jumlah, Bollinger Bands dan lain-lain

  3. Mengoptimumkan hentian ke hentian penghantar

  4. Menambah peraturan kemasukan semula

    Menetapkan semula kedudukan selepas berhenti jika trend berterusan

  5. Penyesuaian saiz kedudukan mengikut turun naik

    Saiz yang lebih kecil semasa turun naik tinggi, saiz yang lebih besar dalam turun naik rendah

Ringkasan

Strategi ini menggabungkan penunjuk RSI dan MACD untuk mengesahkan antara satu sama lain untuk pengesanan trend yang lebih tepat dan stabil. Tetapi parameter memerlukan pengoptimuman, dan penapis teknikal atau peraturan perdagangan tambahan diperlukan untuk pengesahan, mengelakkan peristiwa tiba-tiba. Juga mekanisme stop loss dan saiz kedudukan dinamik adalah penting. Pembelajaran dan pengoptimuman berterusan adalah penting untuk menyesuaikan diri dengan keadaan pasaran yang berubah 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 lanjut