BaşlayınÜcretsiz Başlayın

Bir kuralı sipariş boyutlama fonksiyonuyla uygulama

quantstrat'ta, gerçekleşen işlemlerdeki varlık miktarı her zaman sabit bir hisse adedi olmak zorunda değildir. quantstrat'ın alınan veya satılan hisse miktarını değiştirmesine olanak tanıyan yapılar sipariş boyutlama (order sizing) fonksiyonları olarak adlandırılır. Uygun bir sipariş boyutlama fonksiyonu yazmak için gereken ek sözdizimi oldukça kapsamlı olduğundan, sıfırdan kendi fonksiyonunu kodlamak bu kursun kapsamı dışındadır.

Ancak, önceden yazılmış bir sipariş boyutlama fonksiyonunu kullanmak oldukça kolaydır. Bilmen gereken ilk şey, bir sipariş boyutlama fonksiyonu kullanırken orderqty argümanının artık geçerli olmadığıdır; çünkü sipariş miktarı boyutlama fonksiyonu tarafından belirlenir. Bir sipariş boyutlama fonksiyonunu add.rule() çağrında kullanmak da oldukça basittir. Sipariş boyutlama fonksiyonunun girdileri, bu bölüm boyunca çalıştığın diğer argümanlarla birlikte aynı argümanlar listesinde yer alır.

Bu egzersizde, osFUN argümanını kullanarak osMaxDollar adlı bir fonksiyonu belirteceksin. Bu bir string olarak değil, doğrudan bir nesne olarak geçirilir. Tek fark, sipariş boyutlama fonksiyonunun adının tırnak içine alınmamasıdır.

Bu fonksiyona eklenecek ek argümanlar tradeSize ve maxSize'tır; ikisi de, önceki bölümlerde tanımladığın tradesize değerini almalıdır. Bu değişken çalışma alanında hazır durumdadır.

Bu egzersiz

R ile Finansal Alım Satım

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Önceki egzersizlerde kullandığın add.rule() komutu çalışma alanında yazdırılmıştır.
  • Bu kurala bir sipariş boyutlama fonksiyonu eklemek için osFUN, tradeSize ve maxSize belirt.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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")
Kodu Düzenle ve Çalıştır