如何在quantstrat中实施“以开盘价在下一栏买入”?
这是我对maCross.R示例的实验。
添加prefer='Open'RuleSignal
stratMACROSS <- add.rule(strategy = stratMACROSS, name='ruleSignal',
arguments = list(sigcol="ma50.gt.ma200", sigval=TRUE, orderqty=100000, ordertype='market', orderside='long', prefer='Open'), type='enter')
stratMACROSS <- add.rule(strategy = stratMACROSS, name='ruleSignal',
arguments = list(sigcol="ma50.lt.ma200", sigval=TRUE, orderqty=-100000, ordertype='market', orderside='long', prefer='Open'), type='exit')
Run Code Online (Sandbox Code Playgroud)订单以当前Open价格生成,但在下一个栏执行Close。
> orders <- getOrderBook(portfolio.st)
> head(orders)
Order.Qty Order.Price Order.Type Order.Side Order.Threshold Order.Status Order.StatusTime
2011-05-22 00:00:00 "0" NA "init" "long" "0" "closed" "2011-05-22"
2011-05-24 04:30:00 "1e+05" "1.61297" "market" "long" NA "closed" "2011-05-24 05:00:00"
2011-05-25 03:00:00 "-1e+05" "1.61523" "market" "long" NA "closed" …Run Code Online (Sandbox Code Playgroud)