在 quantstrat 中执行止损限价单时出错
Error implementing a stoplimit order in quantstrat
在 quantstrat 的 pair_trade.R 演示中添加 ordertype=stoplimit
止损实施规则后(仅如下所示的空头),
# stop loss for short order (child)
add.rule(strategy=pairStrat, name = 'ruleSignal', arguments=list(sigcol='short',
sigval=TRUE,
replace=FALSE,
orderside='short',
ordertype='stoplimit',
tmult=TRUE,
prefer='Close',
TxnFees='TxnCost',
threshold=quote(.stoplossPercent),
orderqty='all',
orderset='ocoshort'),
type='chain', parent='Enter_Short',
label='StopLoss_Short',
enabled=FALSE)
并通过以下方式启用它:
enable.rule(pairStrat,'chain',"StopLoss_Long","StopLoss_Short")
我收到错误:
Error in if (grepl(label, strategy$rules[[type]][[i]]$label)) strategy$rules[[type]][[i]]$enabled <- enabled :
argument is of length zero
尽管如此,一种非常相似的方法在单一工具组合策略中还是取得了成功。
我在这里错过了什么?
如果我将 add.rule
和 enable.rule
的输出分配回 pairStrat
,您的 bitbucket code 会为我运行(就像对所有其他 add.rule
在演示中调用)。
# wrong
add.rule(strategy=pairStrat, ...)
enable.rule(pairStrat,'chain',"StopLoss_Long","StopLoss_Short")
# correct
pairStrat <- add.rule(strategy=pairStrat, ...)
pairStrat <- enable.rule(pairStrat,'chain',"StopLoss_Long","StopLoss_Short")
在 quantstrat 的 pair_trade.R 演示中添加 ordertype=stoplimit
止损实施规则后(仅如下所示的空头),
# stop loss for short order (child)
add.rule(strategy=pairStrat, name = 'ruleSignal', arguments=list(sigcol='short',
sigval=TRUE,
replace=FALSE,
orderside='short',
ordertype='stoplimit',
tmult=TRUE,
prefer='Close',
TxnFees='TxnCost',
threshold=quote(.stoplossPercent),
orderqty='all',
orderset='ocoshort'),
type='chain', parent='Enter_Short',
label='StopLoss_Short',
enabled=FALSE)
并通过以下方式启用它:
enable.rule(pairStrat,'chain',"StopLoss_Long","StopLoss_Short")
我收到错误:
Error in if (grepl(label, strategy$rules[[type]][[i]]$label)) strategy$rules[[type]][[i]]$enabled <- enabled :
argument is of length zero
尽管如此,一种非常相似的方法在单一工具组合策略中还是取得了成功。
我在这里错过了什么?
如果我将 add.rule
和 enable.rule
的输出分配回 pairStrat
,您的 bitbucket code 会为我运行(就像对所有其他 add.rule
在演示中调用)。
# wrong
add.rule(strategy=pairStrat, ...)
enable.rule(pairStrat,'chain',"StopLoss_Long","StopLoss_Short")
# correct
pairStrat <- add.rule(strategy=pairStrat, ...)
pairStrat <- enable.rule(pairStrat,'chain',"StopLoss_Long","StopLoss_Short")