修改ruleSignal的stoplimit类型

时间:2016-01-19 00:43:46

标签: r quantstrat

我想知道是否有人可以帮我修改我的限制(止损)规则。如何将其更改为以低于限价的价格出售,而不是低于限价以下?

> #rules add.rule(strategy.st, name="ruleSignal", 
>          arguments=list(sigcol="buyTrigger", sigval=TRUE, ordertype="market", 
>                         orderside="long", replace=FALSE, prefer="Open", 
>                         osFUN=osDollarATR, tradeSize=tradeSize,
>                         pctATR=pctATR, atrMod="X"), 
>          type="enter", path.dep=TRUE,
>          label="newEntry")
> 
   add.rule(strategy.st, name="ruleSignal", 
         arguments=list(sigcol="buyTrigger", 
                        sigval=FALSE, 
                        ordertype="stoplimit", 
                        orderside="long", 
                        replace=FALSE, 
                        orderqty='all',
                        order.price=quote(mktdata$loss.stopLimit[timestamp]),
                        orderset="orders"),
         type="chain",
         parent="newEntry",
         label="takeProfitLong",
         path.dep=TRUE)

1 个答案:

答案 0 :(得分:0)

我下载了源代码并打开了tar.gz文件夹来修改ruleOrderProc.R。

卸载并重新安装软件包。经过几次尝试,我能够将代码修改为:

if ((orderQty > 0 && orderType != "stoplimit") || 
                    (orderQty < 0 && (orderType == "stoplimit"))) {
                    if ((has.Cl(mktdata) && orderPrice > as.numeric(Cl(mktdataTimestamp)[, 
                      1])) || (!has.Cl(mktdata) && orderPrice > 
                      as.numeric(getPrice(mktdataTimestamp, prefer = prefer)[, 
                        1])))

...