使用调整后的 vs.anadjusted 价格进行股票策略回测?

Use of adjusted vs.anadjusted prices for stock strategy backtesting?

这更像是一个方法论(而不是编程)问题,但感觉 SO 是合适的地方。在雅虎于 2017 年 5 月更改其默认值以获取每日数据(在 https://github.com/joshuaulrich/quantmod/issues/174, http://blog.fosstrading.com/2017/06/yahoo-finance-alternatives.html and also on SO Why Open,High,Low prices are wrong when using quantmod? 上讨论)之后的起伏之后,我可能不是唯一一个不能 100% 确定在回测过程中使用哪些数据以及 quantmod getSymbols.yahoo和adjustOHLC依然提供质量回测的相关数据。 Quantmod 0.4.11 还包括 AlphaVantage 作为(调整后股票)数据提供者,但我不熟悉它们的可靠性。 如何准备从 getSymbols 调用中获取的(股票和指数)数据?应使用哪些数据((股票和股息)调整或未调整)?您使用哪些转换? adjustOHLC 函数还包含一个错误,因为它没有进行拆分调整(通过调用

在 AAPL 上很容易看到
 getSymbols(AAPL)
 chart_Series(adjustOHLC(AAPL))

并观察到 ​​2014 年的跳跃。

您应该始终使用调整后的价格。大多数情况下,当数据提供商没有调整价格时,通常会调整提供商的收盘价。对原始收盘价数据进行回溯测试毫无意义。我曾经错误地下载收盘价而不是调整后的价格,在回测结束时,我的策略告诉我,在所有标准普尔综合指数中,万事达是表现最差的。查看 MA 图表后,原因显而易见。

由于 2014 年 1 月 22 日的拆分,我的数据比 -90% 多了一个 return!总之,用于回溯测试的原始收盘数据可能会给你完全错误的结果。

分裂如何处理

按拆分比例拆分拆分前的每个价格。例如 Master Card 有 1:10 的拆分比率,因此您应该将 21.01.2014 之前的每个价格除以 10。在数据中找到分裂非常容易,您只需在 -50%.

附近或下方寻找 returns

股息

从每个分红日分红前的价格中减去分红数额。找分红天数需要分红日历,自己找是不可能的。