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

Kru*_*rug 4

我在Quantstrat文档中找不到add.rule参数的定义.我很想知道orderqty,tradeSizemaxSize之间的区别.

quantstrattrader上找到以下相关资料:

orderqty参数仅在没有osFUN指定时适用.它可以采用平坦值(EG 1,2),或者,当规则类型为"退出"时,采用"全部"数量来平展位置.

osFUN指定要使用的订单尺寸功能.该osFUN参数实际上是一个作为参数传入的函数对象.如果您不想使用osFUN,只需使用固定数量,例如100,或者如果使用退出类型订单,请使用"全部"展平仓位.

这是一个add.rule函数的样子:

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

谢谢.

FXQ*_*der 5

@ blackknight316是对的.看一下ruleSignal (print ruleSignal)的代码.你会看到没有正式的论证tradeSize或者maxSize.

然而,该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))
Run Code Online (Sandbox Code Playgroud)

使用...(如同addOrder).

tradeSize并且maxSize包含在add.rule链接代码中可能是因为它们被传递给您链接的示例中使用的orderizing函数.查看osFUN=osDollarATR实际上是一个函数的对象的参数. osDollarATR当然是作者用户定义的.您可能会在另一篇博客文章中找到该函数的定义并查看tradeSize并且maxSize是它的正式参数.