После добавления ordertype=stoplimit
правил для реализации стоп-лосса в демонстрации quantstrat Pair_trade.R (только короткая сторона показана ниже), как,
# 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
? - person Joshua Ulrich   schedule 13.02.2015pairStrat <- strategy('pairStrat')
. Полный код модифицированной демки находится наhttps://bitbucket.org/marital_weeping/pair_trade-modified
- person marital_weeping   schedule 13.02.2015