2

ordertype=stoplimitquantstrat の 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

それにもかかわらず、非常によく似たアプローチが、単一の商品ポートフォリオ戦略で成功しました。

ここで何が欠けていますか?

4

1 に答える 1

2

出力を割り当てて戻すと、bitbucket コードが実行されます(デモののすべての呼び出しで行われるように)。add.ruleenable.rulepairStratadd.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")
于 2015-02-13T14:29:32.010 に答える