2017-06-25 1 views
3

Je ne trouve pas dans le Quantstrat documentation la définition des add.rule arguments. Je suis intéressé à savoir quelle est la différence entre orderqty, tradeSize et maxSize.Quantstrat arguments add.rule: OrderQty vs vs tradeSize maxSize

trouvé le matériel connexe suivant sur quantstrattrader:

L'argument orderqty applique seulement quand il n'y a pas osFUN spécifié. Il peut prendre une valeur plate (E.G. 1, 2) ou, lorsque le type de règle est "exit", une quantité de "all" pour aplatir une position.

Le osFUN spécifie la fonction de dimensionnement des commandes à utiliser. L'argument osFUN est en fait un objet fonction qui est passé en argument. Si vous ne souhaitez pas utiliser un osFUN, utilisez simplement une quantité fixe, par exemple 100, ou si vous utilisez des ordres de sortie, utilisez "all" pour aplatir une position.

Voici comment une fonction add.rule ressemble à:

add.rule(strategy.st, name = "ruleSignal", 
      arguments = list(sigcol = "longsig", 
          sigval = TRUE,    
          ordertype = "market", 
          prefer = "Open",    
          orderside = "long", 
          orderqty = 100, 
          replace = FALSE,    
          osFUN = osMaxPos, 
          tradeSize = 100, 
          maxSize = 100), 
      type = "enter") 

Merci.

Répondre

4

@ blackknight316 est droite. Jetez un oeil au code pour ruleSignal (print ruleSignal). Vous verrez aucun argument formel exister pour tradeSize ou maxSize.

Cependant, la fonction ruleSignal ne génère pas d'erreur lorsqu'elle est appelée car elle utilise l'argument ellipses (...). Lisez à propos de ce paramètre spécial dans la documentation officielle du langage R.

Imprimez ruleSignal et jetez un coup d'œil à la source. Ceci est une partie:

orderqty <- osFUN(strategy = strategy, data = mktdata, 
       timestamp = timestamp, orderqty = orderqty, ordertype = ordertype, 
       orderside = orderside, portfolio = portfolio, 
       symbol = symbol, ... = ..., ruletype = ruletype, 
       orderprice = as.numeric(orderprice)) 

qui utilise ... (comme le fait addOrder).

tradeSize et maxSize sont inclus dans add.rule dans le code lié probablement parce qu'ils sont passés à la fonction de classement utilisée dans l'exemple que vous liez. Voir l'argument osFUN=osDollarATR qui est en fait un objet qui est une fonction. osDollarATR est bien sûr défini par l'utilisateur. Vous trouverez probablement la définition de cette fonction dans un autre article de blog et voyez tradeSize et maxSize sont des arguments formels.

3

Je viens de finir de lire ce blog et j'ai vu cette question. Je vais répondre à mon meilleur!

Selon les notes de Guy Yollin. orderqty est l'argument principal. Je ne le vois pas en utilisant d'autres arguments dans sa règle.

Espérons que cela répond à votre question.