MulaiMulai sekarang secara gratis

Tulis indikator Anda sendiri - II

Meskipun RSI cukup baik, indikator ini agak ketinggalan zaman. Pada latihan ini, Anda akan menulis versi sederhana dari indikator lain dari nol. Indikator ini bernama David Varadi Oscillator (DVO), dikembangkan oleh David Varadi, seorang direktur riset kuantitatif.

Tujuan osilator ini mirip dengan RSI, yaitu berupaya menemukan peluang membeli saat terjadi penurunan sementara dan menjual saat terjadi tren naik sementara. Selain data pasar yang wajib, sebuah fungsi osilator menerima dua periode lookback.

Pertama, fungsi menghitung rasio antara harga penutupan dan rata-rata harga tertinggi serta terendah. Selanjutnya, fungsi menerapkan SMA pada besaran tersebut untuk menghaluskan noise, biasanya pada rentang waktu yang sangat pendek, seperti dua hari. Terakhir, fungsi menggunakan runPercentRank() untuk mengambil peringkat persentase berjalan dari rasio rata-rata ini, lalu mengalikannya dengan 100 agar menjadi kuantitas 0–100.

Bayangkan cara siswa mendapatkan skor persentil setelah mengikuti tes standar (misalnya, jika seorang siswa mendapat 800 pada bagian matematika, ia mungkin berada di persentil ke-95 secara nasional). runPercentRank() melakukan hal yang sama, tetapi sepanjang waktu. Indikator ini memberikan peringkat untuk observasi terbaru dalam konteks beberapa periode lampau yang ditentukan pengguna. Sebagai contoh, jika suatu aset memiliki nilai runPercentRank sebesar 0,90 ketika menggunakan periode lookback 126, artinya aset tersebut berada di persentil ke-90 jika dibandingkan dengan dirinya sendiri dan 125 observasi sebelumnya.

Tugas Anda adalah mengimplementasikan indikator ini dan menyimpannya sebagai DVO. Sebagian kode yang diperlukan telah disediakan, dan paket quantstrat, TTR, serta quantmod sudah dimuat ke dalam workspace Anda.

Latihan ini adalah bagian dari kursus

Perdagangan Finansial dengan R

Lihat Kursus

Petunjuk latihan

  • Buat dan beri nama fungsi DVO untuk indikator yang dijelaskan di atas. Tiga argumen fungsi Anda adalah HLC, navg (bawaan 2), dan percentlookback (bawaan 126).
  • Rasio antara harga penutupan (Cl()) dari HLC dibagi dengan rata-rata harga tertinggi (Hi()) dan terendah (Lo()) telah dihitung untuk Anda.
  • Gunakan SMA() untuk menerapkan rata-rata bergerak dari rasio ini, dengan parameter navg. Simpan sebagai avgratio.
  • Gunakan runPercentRank() untuk menerapkan sistem peringkat persentase untuk avgratio.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Declare the DVO function
DVO <- function(___, navg = ___, percentlookback = ___) {
  
  # Compute the ratio between closing prices to the average of high and low
  ratio <- Cl(HLC)/((Hi(HLC) + Lo(HLC))/2)
  
  # Smooth out the ratio outputs using a moving average
  avgratio <- SMA(ratio, n = ___)
  
  # Convert ratio into a 0-100 value using runPercentRank()
  out <- runPercentRank(___, n = percentlookback, exact.multiplier = 1) * 100
  colnames(out) <- "DVO"
  return(out)
}
Edit dan Jalankan Kode