Quantstrat:在下一个柱线卖出(自定义)

Quantstrat: sell at next bar (custom)

我正在修改 quantstrat 中与止损限价相关的内置函数。我想测试一个仅在收盘价低于止损限价时才卖出的系统。我能够更改比较数据,以便它在 close < stoplimit.

时销售

但是,销售交易发生在收盘触发销售的同一天。这是我正在解决的问题。

如何更改此代码为次日卖出?

 if(orderType == 'stoplimit')
                         txnprice <- min(orderPrice, Op(mktdataTimestamp)[,1])
                     else
                         txnprice <- orderPrice
                     txntime = timestamp

这是我用来控制订单价格的代码:

txnprice = try(getPrice(x=mktdata[curIndex+1L], prefer=prefer)[,1])

+1L在getPrice作用于curIndex的前一天增加。这很好,因为它也需要 prefer。

我还没有想出如何将 txntime 更改为下一个交易日。我可以延迟一天:

txntime = timestamp+1

来自 Ilya Kipnis 的消息:

ordertype 参数是订单类型。对于我迄今为止展示的大部分演示,我主要使用最简单的“市场”类型订单。市价订单在收到信号后在下一根柱线执行。它们不在信号柱上执行,而是在信号柱之后的柱上执行。在每日数据上,这可能会导致一些 P/L 由于缺口,但在日内数据上,下一根柱线的开盘价应该与当前柱线的收盘价非常相似。需要注意的一件事是,使用每月数据,quantstrat 使用当前柱执行。