我是 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
我正在尝试构建的贸易
我想测试的(作为一个简单的起点)是:
- 当 XYZ在某一天从开盘价上涨超过n 个基点并以收盘价退出时,做空 XYZ 的盈利能力。
- 当某天下跌超过n 个基点时买入 XYZ 的盈利能力——同样,在收盘时退出。
示例问题
- 在
2014-05-30
以上数据中,开盘价为147.36
. - 如果 XYZ 比其开盘价高 > 50 bps,我想做空(即
147.34*1.005 = 148.08
.148.08
现在是我的“上涨”阈值)。 - 相反,如果 XYZ 从其开始打印(即
147.34*.995 = 146.60
)下降 < -50 bps,我想做多。146.60
现在是我的“下降”阈值)。 - 在这两种情况下,退出都是当天的收盘价。
- 理想情况下,我的代码将评估每分钟柱的收盘价是否 <> 信号阈值价格(源自开盘价),然后他们
blotter
相应地输入交易。 - 对让我开始的任何答案感到高兴,但特别是如果您可以展示一些处理订单大小的玩具示例(即,一旦超过阈值,它可能会在预期的回归发生之前将该动作延长一段时间 - 不知道如何获得quantstrat 来处理)
抱歉,如果这太简单了。我已经尝试过使用不同的示例和演示,但似乎不能完全正确,并且希望获得有关如何正确设置此查询的任何帮助