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
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, danmaxSize.
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")