MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Gunakan add.signal() untuk menambahkan sigCrossover yang menyatakan bahwa SMA50 menembus ke bawah SMA200.
  • 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 = "___")
Edit dan Jalankan Kode