Menggunakan sigCrossover
Memiliki filter long memang diperlukan, tetapi tidak cukup untuk mengeksekusi transaksi pada strategi ini. Namun, saat kondisi tersebut tidak terpenuhi, strategi tidak boleh menahan posisi apa pun. Pada latihan ini, Anda akan mengimplementasikan kebalikan dari aturan yang disebutkan di atas dengan menggunakan fungsi sigCrossover().
Berbeda dengan sigComparison(), yang selalu menyatakan apakah suatu kondisi terpenuhi atau tidak, sigCrossover() hanya memberikan hasil positif saat sinyal pertama kali muncul, dan tidak mengulanginya lagi. Ini berguna untuk sinyal yang digunakan untuk memulai transaksi, karena dalam banyak kasus Anda hanya menginginkan satu transaksi, bukan transaksi yang berulang terus-menerus.
Dalam kasus ini, Anda akan mengimplementasikan fungsi sigCrossover() dengan menyatakan bahwa SMA50 menembus ke bawah SMA200. Beri label sinyal ini filterexit, karena sinyal ini akan menutup posisi Anda ketika filter moving average menyatakan bahwa kondisi pasar tidak mendukung untuk strategi menahan posisi.
Latihan ini adalah bagian dari kursus
Perdagangan Finansial dengan R
Petunjuk latihan
- Gunakan
add.signal()untuk menambahkansigCrossoveryang menyatakan bahwaSMA50menembus ke bawahSMA200. - Beri label sinyal ini
filterexit.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
# We're interested in the relationship between the SMA50 and the SMA200
arguments = list(columns = c("___", "___"),
# The relationship is that the SMA50 crosses under the SMA200
relationship = "___"),
# Label it filterexit
label = "___")