问题:
即使使用相同的设置,我的系统和银行之间的计算 RSI 怎么会有差异?两个系统的源数据 (OHLC) 相同。我故意省略了“maType”,因为默认值为“MA”。
迄今为止的观察:
阅读此链接:https ://quant.stackexchange.com/questions/30134/r-rsi-calculation-ttr-package
标准 TTR RSI 似乎使用 Wilder EMA。我认为这可能是 RSI 结果不同的原因。
当前故障排除状态:
做了一些添加 wilder = FALSE 的测试,这使得 RSI 值接近银行值,但不准确。我还注意到,无论您添加 emaType 还是忽略它,RSI 结果都会有所不同,这似乎是一个错误,因为忽略它应该使用 emaType="EMA"。
场景:
使用 R R6 创建面向对象的类并使用 TTR 创建 RSI 指标结果:
create_indicator_result_data = function() {
self$rsi_result_column <- round(
RSI(
price = decisions$mktdata_decision_map$Close,
n = 14
), digits = 2
)
},
专有系统的结果(使用“要价”)。
OHLC 数据(从银行 API 下载)+“RSI 结果”:
Date / Time / Open / High / Low / Close / RSI_result
2019-07-16 13:12:00 1623.37 1623.50 1623.25 1623.50
2019-07-16 13:14:00 1623.37 1623.75 1623.37 1623.75
2019-07-16 13:15:00 1623.62 1623.75 1623.50 1623.50
2019-07-16 13:16:00 1623.62 1623.75 1623.50 1623.75
2019-07-16 13:17:00 1623.87 1624.00 1623.50 1623.50
2019-07-16 13:18:00 1623.62 1623.75 1623.50 1623.75
2019-07-16 13:19:00 1623.62 1623.75 1623.50 1623.75
2019-07-16 13:20:00 1624.00 1624.25 1624.00 1624.25
2019-07-16 13:21:00 1624.12 1624.25 1624.00 1624.00
2019-07-16 13:22:00 1624.12 1624.50 1624.12 1624.50
2019-07-16 13:23:00 1624.75 1625.00 1624.75 1624.75
2019-07-16 13:24:00 1624.87 1625.00 1624.75 1624.75
2019-07-16 13:25:00 1625.00 1625.25 1625.00 1625.00
2019-07-16 13:26:00 1625.12 1625.75 1625.00 1625.50
2019-07-16 13:27:00 1625.62 1625.75 1625.50 1625.50 78.57
2019-07-16 13:28:00 1625.62 1625.75 1625.62 1625.75 80.10
2019-07-16 13:29:00 1625.50 1627.00 1625.50 1626.75 84.78
2019-07-16 13:30:00 1627.25 1627.75 1626.75 1627.75 87.86
2019-07-16 13:31:00 1627.87 1628.75 1627.50 1628.37 89.30
2019-07-16 13:31:00 1627.87 1628.75 1627.50 1628.25 87.14
银行图形上的结果:银行也使用 period = 14 和“要价”。
Date / Time / RSI result
2019-07-16 13:27:00 73.96
2019-07-16 13:28:00 76.01
2019-07-16 13:29:00 82.09
2019-07-16 13:30:00 85.93
2019-07-16 13:31:00 86.30