0

我已将 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”

4

1 回答 1

1

很难准确理解您的问题是什么:“没有入场信号”,“订单簿有买卖”(无论这意味着什么),“order.prices 被设置为 0”......

我看到您正在使用自己的订单大小功能,这可能与此有关吗?您可以尝试删除定单规模功能进行测试,以检查您的挂单是否正在执行。

否则,我建议您提供一个完整的示例,以便我运行并检查。

请注意,quantstrat 正在大力开发中,并且几乎每天都会对代码进行修补,尽管版本号可能并不总是会增加。因此,请确保您始终下载最新的代码。

高温下,

简·休姆。

于 2013-05-23T09:44:30.013 回答