我已将 quantstrat 软件包从 0.7.7(安装于 2013 年 1 月 7 日)升级到 0.7.8,但是旧代码无法正常工作。看起来我们不能下任何买入或卖出的挂单,只能执行挂单。这是细节。有人知道 add.rule 或 applyStrategy 功能的重大变化或报告了相同的问题吗?
我们通过 add.rule() 设置交易规则
add.rule(f,'ruleSignal',arguments=list(sigcol="DoSell",sigval=TRUE,orderqty=(-1*tradeSize),osFUN='osSUS',ordertype='market',TxnFees="calcTxnFee",prefer='Open'),type='enter',label=gExitLabel)
add.rule(f,'ruleSignal',arguments=list(sigcol="DoBuy", sigval=TRUE,orderqty=tradeSize,osFUN='osBuy',ordertype='market',TxnFees="calcTxnFee",prefer='Price'),type='enter',label=gEnterLabel)
add.rule(f,'ruleSignal',arguments=list(sigcol="DoStop", sigval=TRUE,orderqty=-1*tradeSize,osFUN='osStop',ordertype='stoplimit',threshold='StopLevel',TxnFees="calcTxnFee"),type='risk',label='Stop')
我们遇到的问题是我们在运行 applyStrategy 时没有收到入场信号......似乎 getOrderbook 有“Buy”和“Sell”......
applyStrategy(rs, rs) only applied sell signal ........(not buy)
[1] "2010-11-18 09:00:00 ABC -65660 @ 4.6"
[1] "2010-12-07 09:00:00 ABC -37509 @ 5.17"
但是 getOrderBook() 记录了“买”和“卖”的顺序.....同时order.prices被系统设置为“0”,order.status“replaced”和Prefer“Price”