QQQ が SMA 200 を上回ったときに買い、SMA 200 が QQQ を下回ったときに売る戦略をクアンストラトで開発しようとしています。しかし、私の売買シグナルには問題があります。
これがエラーです
sigComparison(label = label, data = data, columns = columns[c(i, : 3 つ以上の列の比較はサポートされていません。sigFormula を参照してください) のエラー
現在のコードは以下です。
add.indicator(strategy=tr1.st2,name='SMA',
arguments=list(x=quote(Cl(mktdata)),n=200),label='SMA 200')
売買シグナルを追加する
add.signal(strategy=tr1.st2,
name='sigThreshold',
arguments=list(threshold=200,column='SMA',relationship='lt'),
label='BuySignal')
add.signal(strategy=tr1.st2,
name='sigThreshold',
arguments=list(threshold=200,column='SMA',relationship='gt'),
label='SellSignal')
開始および終了ルールを追加する
addPosLimit(portfolio=tr1.st2,
symbol='QQQ',
timestamp=start.date,maxpos=10)
add.rule(strategy=tr1.st2,
name='ruleSignal',
arguments=list(sigcol='BuySignal',sigval=T,orderqty=10,
osFUN=osMaxPos,ordertype='market',orderside='long'),
type='enter',
label='EnterRule',enabled=T)
add.rule(strategy=tr1.st2,
name='ruleSignal',
arguments=list(sigcol='SellSignal',sigval=T,orderqty='all',ordertype='market',orderside='long',TxnFees=-6),
type='exit',label='ExitRule',enabled=T)