3

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

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

我的问题/TL;DR

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

数据结构

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

XYZ 存储为xts日内 (1 分钟) OHLC 数据的对象。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

其中,通过,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

我正在尝试构建的贸易

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

  1. 当 XYZ在某一天从开盘价上涨超过n 个基点并以收盘价退出时,做空 XYZ 的盈利能力。
  2. 当某天下跌超过n 个基点时买入 XYZ 的盈利能力——同样,在收盘时退出。

示例问题

  1. 2014-05-30以上数据中,开盘价为147.36.
  2. 如果 XYZ 比其开盘价高 > 50 bps,我想做空(即147.34*1.005 = 148.08.148.08现在是我的“上涨”阈值)。
  3. 相反,如果 XYZ 从其开始打印(即147.34*.995 = 146.60)下降 < -50 bps,我想做多。146.60现在是我的“下降”阈值)。
  4. 在这两种情况下,退出都是当天的收盘价。
  5. 理想情况下,我的代码将评估每分钟柱的收盘价是否 <> 信号阈值价格(源自开盘价),然后他们blotter相应地输入交易。
  6. 对让我开始的任何答案感到高兴,但特别是如果您可以展示一些处理订单大小的玩具示例(即,一旦超过阈值,它可能会在预期的回归发生之前将该动作延长一段时间 - 不知道如何获得quantstrat 来处理)

抱歉,如果这太简单了。我已经尝试过使用不同的示例和演示,但似乎不能完全正确,并且希望获得有关如何正确设置此查询的任何帮助

4

0 回答 0