Strategi pembalikan RSI dengan indikator MACD


Tanggal Pembuatan: 2024-01-15 12:33:14 Akhirnya memodifikasi: 2024-01-15 12:33:14
menyalin: 0 Jumlah klik: 763
1
fokus pada
1617
Pengikut

Strategi pembalikan RSI dengan indikator MACD

Ringkasan

Strategi ini didasarkan pada nilai RSI dari indikator MACD untuk menilai sinyal beli dan jual. Beli ketika nilai RSI melebihi batas overbought atau oversold, dan hentikan atau berhenti ketika nilai RSI jatuh di bawah batas oversold.

Prinsip Strategi

Strategi ini menggabungkan keuntungan dari MACD dan RSI.

Pertama, hitung tiga garis kurva MACD, termasuk garis DIF, DEA, dan MACD. Kemudian hitung indikator RSI pada garis MACD untuk membentuk RSI of MACD.

Ketika RSI of MACD lebih dari 30 atau 35 dalam kisaran oversold, sinyal beli muncul, menunjukkan bahwa garis MACD memasuki zona oversold, dan tren saham mulai berbalik naik. Ketika RSI of MACD jatuh lagi ke bawah 15 dalam kisaran oversold, sinyal jual muncul, menunjukkan bahwa pembalikan tren berakhir.

Strategi ini juga mengatur stop-loss parsial, yang dapat menjual sebagian posisi untuk mengunci sebagian keuntungan ketika RSI of MACD melebihi 80 di zona overbought.

Analisis Keunggulan

  • Menggunakan indikator MACD untuk menentukan titik balik tren
  • Menggunakan indikator RSI untuk menilai zona overbought dan oversold
  • Dengan menggunakan dua indikator ini, Anda bisa menentukan titik jual beli yang tepat.
  • Setting partial stop untuk mencegah kerugian berkembang

Analisis risiko

  • Parameter indikator MACD tidak disetel dengan benar, sehingga tidak dapat menentukan tren dengan akurat
  • Parameter RSI tidak disetel dengan benar, tidak dapat dengan akurat menilai overbought dan oversold
  • Beberapa penundaan setup terlalu radikal, mungkin akan melewatkan kenaikan yang lebih besar

Solusi:

  • Mengoptimalkan argumen MACD untuk menemukan kombinasi argumen terbaik
  • Optimalkan parameter RSI untuk meningkatkan akurasi
  • Dengan demikian, perusahaan dapat memperoleh keuntungan yang lebih besar dengan mengendurkan beberapa hal.

Arah optimasi

Strategi ini juga dapat dioptimalkan dari beberapa arah:

  1. Meningkatkan strategi stop loss untuk mengendalikan risiko penurunan lebih lanjut
  2. Menambahkan modul manajemen posisi untuk memperbesar posisi seiring dengan pergerakan harga
  3. Model pembelajaran mesin terintegrasi, menggunakan pelatihan data historis, untuk meningkatkan akurasi penilaian titik jual beli
  4. Cobalah untuk berlari dalam periode yang lebih singkat, seperti 15 menit atau 5 menit, untuk meningkatkan frekuensi strategi lebih lanjut

Meringkaskan

Strategi ini secara keseluruhan didesain dengan ide yang jelas, ide inti adalah menggunakan MACD berbalik dalam kombinasi dengan RSI filter untuk menentukan titik jual beli. Dengan cara pengoptimalan parameter, manajemen stop loss, kontrol risiko, dan lain-lain, dapat dijadikan strategi perdagangan kuantitatif yang sangat praktis.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="RSI of MACD Strategy[Long only]",  shorttitle="RSIofMACD" , overlay=false, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

	

/////////////////////////////////////////////////////////////////////////////////



// MACD Inputs ///
fastLen = input(12, title="Fast Length")
slowLen = input(21, title="Slow Length")
sigLen  = input(9, title="Signal Length")

rsiLength  = input(14, title="RSI of MACD Length")




riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)

takeProfit=input(false, title="Take Profit")


[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)

rsiOfMACD = rsi(macdLine, rsiLength)
emaSlow = ema(close, slowLen)



//drawings
/////////////////////////////////////////////////////////////////////////////////


obLevelPlot = hline(80, title="Overbought / Profit taking line",  color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(30, title="Oversold / entry line", color=color.green, linestyle=hline.style_dashed)

exitLinePlot = hline(15, title="Exit line", color=color.red, linestyle=hline.style_dashed)




plot(rsiOfMACD, title = "rsiOfMACD" ,  color=color.purple)


//drawings
/////////////////////////////////////////////////////////////////////////////////




//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


strategy.entry(id="RSIofMACD", long=true,   qty=qty1,  when =  ( crossover(rsiOfMACD, 30) or crossover(rsiOfMACD, 35)  ) and close>=emaSlow )



bgcolor(abs(strategy.position_size)>=1 ? color.blue : na , transp=70)


barcolor(abs(strategy.position_size)>=1 and  ( crossover(rsiOfMACD, 30) or crossover(rsiOfMACD, 35) ) ? color.purple : abs(strategy.position_size)>=1 ? color.blue : na  )


//partial exit
strategy.close(id="RSIofMACD", comment="PExit Profit is "+tostring(close - strategy.position_avg_price,  "###.##")  ,  qty=strategy.position_size/3, when= takeProfit and abs(strategy.position_size)>=1 and close > strategy.position_avg_price and crossunder(rsiOfMACD,80) )

//Close All
strategy.close(id="RSIofMACD", comment="Close All   Profit is "+tostring(close - strategy.position_avg_price,  "###.##"), when=abs(strategy.position_size)>=1 and crossunder(rsiOfMACD,15) ) //and close > strategy.position_avg_price )


//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////