Strategi Histogram MACD RSI

Penulis:ChaoZhang, Tarikh: 2023-12-25 11:45:10
Tag:

img

Ringkasan

Strategi ini menjana isyarat perdagangan berdasarkan MACD penunjuk RSI. Ia menggabungkan keupayaan penunjuk RSI untuk menilai tahap overbought dan oversold di pasaran, serta kelebihan MACD dalam menentukan trend pasaran dan perubahan momentum, untuk merancang strategi yang menggunakan beberapa penunjuk untuk memberikan isyarat perdagangan.

Logika Strategi

Strategi ini mula-mula mengira penunjuk RSI, kemudian mengira MACD berdasarkan penunjuk RSI. Penunjuk RSI dapat menentukan keadaan overbought dan oversold di pasaran, sementara MACD menangkap perubahan dalam trend dan momentum pasaran.

Secara khusus, strategi ini mula-mula mengira penunjuk RSI 14 tempoh. Kemudian berdasarkan RSI, penunjuk MACD dikira, termasuk EMA 12 dan 26 tempoh, serta garis isyarat 9 tempoh. histogram MACD kemudian dikira.

Apabila histogram MACD melintasi di atas 0, isyarat beli dihasilkan. Apabila histogram MACD melintasi di bawah 0, isyarat jual dicetuskan. Dengan cara ini, strategi menggunakan RSI untuk menilai tahap overbought / oversold, sementara juga menggunakan MACD untuk menentukan perubahan trend dan momentum, untuk menghasilkan isyarat perdagangan.

Kelebihan Strategi

Strategi ini menggabungkan kekuatan kedua-dua penunjuk RSI dan MACD, yang membolehkan penilaian keadaan pasaran yang lebih komprehensif, menghasilkan isyarat yang lebih boleh dipercayai.

  1. Menggunakan RSI untuk menilai tahap overbought / oversold membantu dengan pemilihan saham dan mencegah pecah palsu.

  2. Penghakiman MACD terhadap perubahan trend dan momentum menjadikan isyarat perdagangan lebih jelas.

  3. Gabungan RSI dan MACD, dengan penilaian berdasarkan pelbagai faktor, membantu menapis isyarat palsu.

Risiko Strategi

  1. Tetapan parameter untuk RSI dan MACD mempengaruhi prestasi strategi dan memerlukan penyesuaian dan pengoptimuman.

  2. Gabungan pelbagai penunjuk meningkatkan kerumitan strategi dan kebarangkalian kesilapan.

  3. Isyarat perdagangan MACD mungkin ketinggalan dan perlu dilengkapi dengan penunjuk lain.

Arahan pengoptimuman

  1. Mengoptimumkan parameter RSI dan MACD untuk mencari kombinasi parameter terbaik.

  2. Menggabungkan penunjuk lain seperti KDJ, Bollinger Bands untuk membentuk kluster penunjuk dan meningkatkan ketepatan isyarat.

  3. Menggabungkan strategi stop loss untuk mengawal kerugian setiap perdagangan.

  4. Mengoptimumkan logik masuk dan keluar untuk mengelakkan isyarat yang bertentangan.

Kesimpulan

Strategi ini menggunakan kekuatan gabungan penunjuk RSI dan MACD untuk membentuk isyarat perdagangan, menilai tahap overbought / oversold sambil juga mempertimbangkan faktor trend dan momentum, dengan berkesan menapis isyarat palsu dan menyediakan isyarat berkualiti.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 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