Tulis indikator Anda sendiri - I
Sejauh ini, Anda telah menggunakan indikator yang sepenuhnya sudah ditulis untuk Anda dengan menggunakan fungsi add.indicator(). Sekarang saatnya Anda menulis dan menerapkan indikator Anda sendiri.
Fungsi indikator Anda akan menghitung rata-rata dari dua indikator berbeda untuk membuat RSI 3,5. Caranya sebagai berikut:
- Menerima deret harga.
- Hitung RSI 3.
- Hitung RSI 4.
- Kembalikan rata-rata dari RSI 3 dan RSI 4.
RSI ini dapat dianggap sebagai RSI 3,5, karena lebih panjang daripada RSI 3 dan lebih pendek daripada RSI 4. Dengan mengambil rata-rata, indikator ini mempertimbangkan dampak harga empat hari yang lalu sambil tetap lebih cepat daripada RSI 4 sederhana, dan juga mengurangi noise dari RSI 3 maupun RSI 4.
Dalam latihan ini, Anda akan membuat fungsi untuk indikator ini bernama calc_RSI_avg() dan menambahkannya ke strategi Anda strategy.st. Semua paket yang relevan juga sudah dimuat untuk Anda.
Latihan ini adalah bagian dari kursus
Perdagangan Finansial dengan R
Petunjuk latihan
- Buat dan beri nama fungsi
calc_RSI_avgdengan tiga argumenprice,n1, dann2, dalam urutan tersebut. - Hitung RSI dengan lookback
n1dan beri namaRSI_1. - Hitung RSI dengan lookback
n2dan beri namaRSI_2. - Hitung rata-rata dari
RSI_1danRSI_2. Sebut sebagaiRSI_avg. - Atur nama kolom
RSI_avgmenjadiRSI_avgmenggunakan colnames(), dan kembalikanRSI_avg. - Tambahkan indikator ini ke strategi Anda dengan masukan
n1 = 3dann2 = 4. Beri label indikator iniRSI_3_4.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Write the calc_RSI_avg function
calc_RSI_avg <- function(price, n1, n2) {
# RSI 1 takes an input of the price and n1
RSI_1 <- RSI(price = price, n = ___)
# RSI 2 takes an input of the price and n2
RSI_2 <- RSI(price = price, n = ___)
# RSI_avg is the average of RSI_1 and RSI_2
RSI_avg <- (___ + ___)/2
# Your output of RSI_avg needs a column name of RSI_avg
colnames(RSI_avg) <- "___"
return(___)
}
# Add this function as RSI_3_4 to your strategy with n1 = 3 and n2 = 4
add.indicator(strategy.st, name = ___, arguments = list(price = quote(Cl(mktdata)), n1 = ___, n2 = ___), label = ___)