
Strategi ini menggabungkan dua indikator kekuatan, yaitu Moving Average Coherence Index (MACD) dan Relative Strength Index (RSI), untuk menetapkan kondisi beli dan jual untuk menangkap peluang reversal harga saham.
Hitung indikator MACD, termasuk garis cepat, garis lambat, dan garis sinyal. Garis cepat dan garis lambat bersilang sebagai sinyal jual beli.
Menghitung indikator RSI, mengatur zona overbought dan zona oversold. Indikator RSI dapat menilai situasi overbought dan oversold.
Dengan menggunakan sinyal overbought dan oversold dari MACD dan RSI untuk menentukan kondisi buy dan sell:
Kondisi pembelian: MACD yang melintasi garis cepat untuk membentuk garpu emas, sementara RSI baru saja kembali dari zona oversold, dengan sinyal reversal;
Kondisi jual: MACD di bawah garis cepat melewati garis lambat untuk membentuk dead fork, sementara RSI masuk ke zona overbought, dengan sinyal reversal.
Indikator MACD dapat menentukan tren harga saham dan waktu untuk membeli dan menjual. Indikator RSI dapat menentukan situasi overbought dan oversold. Kombinasi keduanya dapat meningkatkan akurasi pembelian dan penjualan.
Dengan menggunakan dua indikator untuk memfilter sinyal, sinyal palsu yang dihasilkan oleh satu indikator dapat dihindari.
MACD dengan RSI, dapat dibeli sebelum titik balik, dijual setelah titik balik, dan menangkap peluang untuk berbalik.
Strategi ini beroperasi dengan frekuensi sedang, dapat melacak tren, menangkap reversal, dan fleksibel.
Indikator MACD mudah menghasilkan sinyal palsu dalam situasi yang bergolak. Pengaturan parameter indikator RSI perlu dioptimalkan, jika tidak, sinyal palsu juga akan muncul.
Harga saham dapat berfluktuasi dalam jangka pendek, dan stop loss yang jatuh dari strategi menyebabkan kerugian.
Pengaturan parameter RSI dan MACD perlu dioptimalkan, jika tidak, mungkin ada terlalu banyak sinyal atau kurang sinyal.
Dalam perdagangan saham, manajemen modal dan pengendalian risiko yang ketat diperlukan.
Mengoptimalkan pengaturan rata-rata MACD parameter untuk mencari kombinasi parameter yang optimal.
Optimalkan overbought dan oversold di RSI untuk mencegah sinyal palsu.
Masuk ke dalam mekanisme stop loss untuk mengendalikan kerugian tunggal.
Anda dapat mempertimbangkan untuk menambahkan indikator lain, seperti pita Brin, KDJ, dan lain-lain, untuk membentuk multi-filter.
Anda dapat menguji strategi jual beli yang berbeda, seperti strategi penembusan, strategi pelacakan tren, dan sebagainya.
Strategi ini menggunakan MACD dan RSI, dua indikator kekuatan, membeli dan menjual di titik balik, memiliki nilai nyata yang kuat. Tetapi perlu terus mengoptimalkan parameter pengaturan, melakukan manajemen dana yang ketat, untuk mendapatkan efek yang baik di pasar nyata. Strategi ini secara keseluruhan lebih fleksibel, dapat beradaptasi dengan berbagai situasi, layak untuk verifikasi pasar dan pelacakan jangka panjang.
/*backtest
start: 2022-11-13 00:00:00
end: 2023-11-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)
//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought
[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)
avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na
strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)