Quantstrat add.rule 参数:orderqty vs tradeSize vs maxSize

Quantstrat add.rule arguments: orderqty vs tradeSize vs maxSize

我在 Quantstrat 文档中找不到 add.rule 参数的定义。我想知道 orderqtytradeSizemaxSize.[=19 之间的区别=]

quantstrattrader 上找到了以下相关 material:

orderqty 参数仅在未指定 osFUN 时适用。它可以采用固定值(例如 1、2),或者当规则类型为“退出”时,数量为“全部”,以平仓。

osFUN 指定要使用的定单大小函数。 osFUN 参数实际上是一个作为参数传入的函数对象。如果您不想使用 osFUN,只需使用固定数量,例如 100,或者如果使用退出类型订单,请使用“全部”平仓。

这是 add.rule 函数的样子:

 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")

谢谢。

我刚看完那个博客,看到了这个问题。我会尽力回答的!

根据Guy Yollin的注释。 orderqty 是主要参数。我没有看到他在他的规则中使用任何其他论点。

希望这能回答您的问题。

@blackknight316 是对的。查看 ruleSignal 的代码(打印 ruleSignal)。您会看到 tradeSizemaxSize 不存在正式参数。

然而 ruleSignal 函数在调用时不会产生错误,因为它使用了省略号参数(即 ...)。在官方 R 语言文档中阅读有关此特殊参数的信息。

打印ruleSignal并查看源代码。这是一部分:

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

它使用 ...(和 addOrder 一样)。

tradeSizemaxSize 包含在 linked 代码的 add.rule 中,可能是因为它们被传递给示例中使用的排序函数 link。请参阅参数 osFUN=osDollarATR,它实际上是一个函数对象。 osDollarATR当然是作者自定义的。您可能会在另一个博客 post 中找到该函数的定义,并看到 tradeSizemaxSize 是它的正式参数。