我已将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有“买”和“卖”......
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“被替换”并且由系统选择“Price”
答案 0 :(得分:1)
很难理解你的问题究竟是什么:“没有进入信号”,“订单有买卖”(无论这意味着什么),“order.prices被设置为0”......
我看到你正在使用自己的订单大小调整功能,它可能与它有关吗?您可以尝试删除测试的订单大小调整功能,只是为了检查您的输入订单是否正在执行。
否则我建议您提供一个完整的示例,以便我可以运行并检查。
请注意,quantstrat正处于大量开发阶段,并且代码几乎每天都会打补丁,尽管版本号可能并不总是被提升。因此,请确保始终下载最新代码。
HTH,
Jan Humme。