quantstrat包中的简单日内信号处理代码

时间:2014-07-17 04:05:52

标签: r xts quantmod quantitative-finance quantstrat

我是R和quantstrat的新手,所以感谢您的耐心等待。

我注意到很多用于quantstrat的网络上的演示/示例文件都提供了使用TA规则的很好的例子。

我的问题/ TL; DR

如何在不使用开盘价和随后的日内数据的情况下使用任何TA构建quantstrat中的简单日内阈值交叉规则?

数据结构

假设该工具是具有股票代码XYZ

的股票

XYZ存储为日内(1分钟)OHLC数据的xts对象。 IE:

2014-05-30 15:55:00 148.6231 148.6239 148.6632 148.7173
2014-05-30 15:56:00 148.7574 148.7373 148.7976 148.7976
2014-05-30 15:57:00 148.7775 148.7844 148.7976 148.7775
2014-05-30 15:58:00 148.7574 148.7443 148.7706 148.8246
2014-05-30 15:59:00 148.7574 148.8115 148.9586 148.9051
2014-05-30 16:00:00 148.8649 148.8919 148.9586 148.8919

,via,to.daily(),看起来像这样:

2014-05-23   145.5871   146.8550  145.5196    146.0925
2014-05-26   146.2252   146.3783  145.7475    145.7497
2014-05-27   145.8070   146.1233  145.4283    145.7542
2014-05-28   146.0079   146.2983  145.5477    145.7511
2014-05-29   147.3544   147.7388  147.1623    147.4640
2014-05-30   147.3642   148.8919  147.4933    148.8919

交易I尝试构建

我想测试的(作为一个简单的起点)是:

  1. 当XYZ在给定日期离开开盘价超过 n bps并以收盘价退出时,卖空XYZ的盈利能力。
  2. 当XYZ在某一天下跌超过 n bps时的盈利能力 - 再次,在收盘时退出。
  3. 示例问题

    1. 在上述数据中2014-05-30,开盘价为147.36
    2. 如果XYZ是>我想缩短从其开头打印50 bps(即147.34*1.005 = 148.08148.08现在是我的" up"阈值)。
    3. 相反,如果XYZ是<从打开的打印件开始下降-50 bps(即147.34*.995 = 146.60)。 146.60现在是我的" down"阈值)。
    4. 在这两种情况下,退出都是当天的收盘价。
    5. 理想情况下,我的代码会评估每个分钟栏的关闭是否为<>信号门槛价格(来自开盘价)并相应地将交易输入blotter
    6. 对于让我开始的任何答案感到高兴,但特别是如果你能展示处理订单大小的一些玩具示例(即,一旦达到阈值,它可能会在预期的回归发生之前延长一段时间 - 不确定如何让quantstrat来处理它)
    7. 如果这很愚蠢,请道歉。我尝试过使用不同的示例和演示,但似乎无法做到正确,并希望有关如何正确设置此查询的任何帮助

0 个答案:

没有答案