MulaiMulai sekarang secara gratis

Menerapkan rule dengan fungsi penentuan ukuran order

Dalam quantstrat, jumlah aset yang ditransaksikan tidak selalu berupa kuantitas tetap terkait lembar saham yang sebenarnya. Konstruksi yang memungkinkan quantstrat mengubah jumlah saham yang dibeli atau dijual disebut order sizing functions (fungsi penentuan ukuran order). Karena sintaks tambahan yang cukup luas untuk membuat fungsi penentuan ukuran order yang tepat, menulis fungsi tersebut dari nol berada di luar cakupan kursus ini.

Namun, menggunakan fungsi penentuan ukuran order yang sudah tersedia cukup mudah. Hal pertama yang perlu diketahui adalah saat menggunakan fungsi ini, argumen orderqty tidak lagi relevan, karena kuantitas order ditentukan oleh fungsi penentuan ukuran order. Memanggil fungsi penentuan ukuran order bersama pemanggilan add.rule() cukup langsung. Input untuk fungsi ini dicampurkan dengan input lainnya di dalam argumen-argumen yang telah Anda gunakan sepanjang bab ini.

Dalam latihan ini, Anda akan menggunakan argumen osFUN untuk menentukan fungsi bernama osMaxDollar. Ini tidak diberikan sebagai string, melainkan sebagai objek. Satu-satunya perbedaannya adalah nama fungsi penentuan ukuran order tidak diapit tanda kutip.

Argumen tambahan untuk fungsi ini adalah tradeSize dan maxSize, yang keduanya harus diisi dengan tradesize, yang telah Anda definisikan beberapa bab sebelumnya. Variabel tersebut telah tersedia di workspace Anda.

Latihan ini adalah bagian dari kursus

Perdagangan Finansial dengan R

Lihat Kursus

Petunjuk latihan

  • Perintah add.rule() yang digunakan pada latihan sebelumnya telah ditampilkan di workspace Anda.
  • Tambahkan fungsi penentuan ukuran order ke rule ini dengan menentukan osFUN, tradeSize, dan maxSize.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Add a rule that uses an osFUN to size an entry position
add.rule(strategy = strategy.st, name = "ruleSignal",
         arguments = list(sigcol = "longentry", sigval = TRUE, ordertype = "market",
                          orderside = "long", replace = FALSE, prefer = "Open",
                          
                          # Use the osFUN called osMaxDollar
                          osFUN = ___,
                          
                          # The tradeSize argument should be equal to tradesize (defined earlier)
                          tradeSize = ___,
                          
                          # The maxSize argument should be equal to tradesize as well
                          maxSize = ___),
         type = "enter")
Edit dan Jalankan Kode