我正在修改quantstrat中与stop-limits相关的内置函数。我想测试一个只在收盘价低于止损限价时卖出的系统。我能够更改比较数据,以便在close < stoplimit
时出售。
然而,销售交易发生在收盘触发销售的同一天。这是我正在努力解决的问题。
如何更改此代码以在第二天销售?
if(orderType == 'stoplimit')
txnprice <- min(orderPrice, Op(mktdataTimestamp)[,1])
else
txnprice <- orderPrice
txntime = timestamp
答案 0 :(得分:0)
这是我用来控制订单价格的代码:
txnprice = try(getPrice(x=mktdata[curIndex+1L], prefer=prefer)[,1])
+ 1L在getPrice作用于curIndex之前一天添加。这很好,因为它也更喜欢。
我还没弄明白如何将txntime改为下一个交易日。我可以延迟一天:
txntime = timestamp+1
答案 1 :(得分:0)
Ilya Kipnis的消息:
ordertype参数是订单类型。到目前为止,对于大多数演示,我大多使用“市场”型订单,这是最简单的。市场订单在收到信号后在下一个柱执行。它们不是在信号条上执行,而是在信号条之后的条上执行。在每日数据上,这可能会由于缺口而导致一些盈亏,但在日内数据上,下一个柱线的开盘价应与当前柱线的收盘价非常相似。需要注意的一件事是,使用每月数据时,quantstrat使用当前柱执行。