使用osMaxPos
无法正确确定订单大小。我希望如果我的当前头寸为+1,则在发出正确信号后,将以qty == -2的价格提交卖出限价单,以将我的头寸一直反转到最低点设置。但是,它只会提交数量== -1的订单,即使它稍后会提交另一个空头订单来将我的职位提高到-1。
有没有一种方法可以确保我的订单完全反转我的头寸,而不是在反转之前平仓?
addPosLimit(portfolio.st, symbol, startDate, maxpos=1,minpos = -1)
add.rule(strategy.st, name="ruleSignal",
arguments=list(sigcol="signal.ind",
sigval=1,
ordertype="limit",
orderside="long",
order.price=quote(mktdata$dn.ind[timestamp]),
replace=T,
osFUN = osMaxPos,
orderqty=2,
orderset="orders"),
type="enter",
label="Long")
add.rule(strategy.st, name="ruleSignal",
arguments=list(sigcol="signal.ind",
sigval=-1,
ordertype="limit",
orderside="short",
order.price=quote(mktdata$up.ind[timestamp]),
replace=T,
osFUN = osMaxPos,
orderqty=-2,
orderset="orders"),
type="enter",
label="Short")