使用外部提供的quantstrat指标数据

使用外部提供的quantstrat指标数据,r,quantitative-finance,quantstrat,R,Quantitative Finance,Quantstrat,我正在考虑使用R和quantstrat对一些策略进行回溯测试。我看了一些文档和youtube视频,想知道是否可以做我想做的事情。我对R完全陌生,我愿意深入研究必要的文档,但我想得到一个提示,如果我想要的是可能的 我已经用quantstrat做了一些回溯测试的例子,所有这些例子的共同点是,它们都使用基于价格数据的R函数计算的指标 然而,我需要使用的是一些外部计算的指标,这些指标与价格数据一起作为真/假信息。因此,在包含OHLC数据的CSV中,我有许多额外的列,这些列的值在大多数情况下为false,

我正在考虑使用R和quantstrat对一些策略进行回溯测试。我看了一些文档和youtube视频,想知道是否可以做我想做的事情。我对R完全陌生,我愿意深入研究必要的文档,但我想得到一个提示,如果我想要的是可能的

我已经用quantstrat做了一些回溯测试的例子,所有这些例子的共同点是,它们都使用基于价格数据的R函数计算的指标

然而,我需要使用的是一些外部计算的指标,这些指标与价格数据一起作为真/假信息。因此,在包含OHLC数据的CSV中,我有许多额外的列,这些列的值在大多数情况下为false,但在某些行上为true。我想生成信号,例如使用其中两列,并说“如果两者都是真的,在最后一天的高点进行止损买入,止损在最后一天的低点,并计算头寸大小,以便最大损失是基于高低差值的固定金额

关于何时平仓获利、何时调整止损或何时取消未触发的止损单,还有很多规则需要应用,我还必须处理下一天开盘价已经高于止损价的情况,但这是另一回事。此外,我还必须考虑如何对En进行回溯测试只有日终数据的d日策略(接下来的几天,蜡烛可能会同时高出停止买入和停止卖出,并超过其含糊不清的结果)

首先,我想知道是否有可能将这些外部指标数据作为quantstrat战略的来源

如果你说“是”或“否”,可能会帮我找到适用的文档。谢谢你的建议

编辑:

实际上,我现在创建了一个包含OHLC列的CSV文件,并添加了另一个包含1和0的列,就像这个非常简单的示例:

Date,Open,High,Low,Close,SRot
2016-02-01,28,31,20,20,0
2016-01-29,34,35,30,31,1
2016-01-28,22,30,21,28,0
2016-01-27,18,23,17,20,0
2016-01-26,30,32,20,25,0
2016-01-25,30,35,25,32,1
我把它放到一个xts对象中,设置了一个quantstrat策略,在最后一列为1的那几天之后,我成功地触发了止损限制短期订单

add.rule(strategy.st,name = "ruleSignal",
arguments=list(sigcol="srotxsignal",
               sigval=TRUE,
               ordertype="stoplimit",
               orderside="short",
               replace=FALSE,
               prefer="Low",
               orderqty=10,
               tradeSize=tradeSize),
type="enter",path.dep=TRUE,label="normalEntryShort")
在1月25日的第一支蜡烛上,第一个信号已经发出,低点为25,我预计系统将发出价格水平为25的限价卖出指令。这也是订单簿上显示的。然而,第二天,系统实际上以30的水平卖出,这是开盘价。对于最后一天的第二个信号当天,订单被触发,但从未执行。这可能是正确的,因为开盘价已经低于开始时的止损限额水平,但最后一天的价格上涨至31,因此应该触发订单

我想对于第二个信号,我需要更多的逻辑编程,但是对于第一个信号,我不知道为什么命令在30执行

out<-applyStrategy(strategy=strategy.st,portfolios=portfolio.st)
[1] "2016-01-26 00:00:00 adidas 10 @ 30"

 getOrderBook(portfolio.st)
 $dshort
 $dshort$adidas
       Order.Qty Order.Price Order.Type  Order.Side Order.Threshold Order.Status Order.StatusTime      Prefer
2016-01-25 "10"      "25"        "stoplimit" "short"    NA              "closed"     "2016-01-26 00:00:00" "Low" 
2016-01-29 "10"      "30"        "stoplimit" "short"    NA              "open"       NA                    "Low" 

out由于您试图做空,您的订单数量可能应该是负数。

单行建议应该在注释中。@Rumit:好的。SEIndeed是新来的!显然是新来的!这是固定的吗?我刚刚看到了。