即使在TTR中设定n天,RSI输出也会有所不同

时间:2015-11-11 19:44:30

标签: r quantmod trading

我想获得一些ETF的RSI,所以我运行以下代码

startDate<- '2015-09-01'
endDate<-'2015-11-01'
etfs<-c("XLE")
tickers <- get(getSymbols(etfs, from=startDate, to=endDate, auto.assign=TRUE))
RSIdataset <- RSI(Ad(tickers),n=14)
tail(RSIdataset)

我得到了以下输出:

                EMA
2015-10-23 58.91729
2015-10-26 51.03857
2015-10-27 47.74480
2015-10-28 53.62664
2015-10-29 54.89976
2015-10-30 56.63444

但是当我把开始日改为2015-07-01,并保持其他代码相同时,我得到了:

                EMA
2015-10-23 57.69569
2015-10-26 50.29627
2015-10-27 47.17508
2015-10-28 52.91749
2015-10-29 54.16700
2015-10-30 55.87331

我的问题是,即使设置了n = 14,并且在相同的日期(例如2015-10-30),当startDate改变时RSI输出也不同。应该不仅仅是2015-10-30之前的14天吗?在这种情况下,无论startDate是什么,它都应该是相同的? 提前谢谢你

1 个答案:

答案 0 :(得分:2)

如果更改开始日期并使用默认移动平均线(或任何递归移动平均线),结果将始终不同。请参阅let numbersDictionary = [('I', 1); ('V', 5); ('X', 10); ('L', 50); ('C', 100); ('D', 500); ('M', 1000)] |> Map.ofList let takeVal = function | Some v -> v | None -> 0 let rec evaluate = function | [] -> [] | head::tail -> takeVal (numbersDictionary.TryFind head)::evaluate tail evaluate ['X'; 'V'] // val it : int list = [10; 5] 中的警告部分:

  

使用计算一些指标(例如EMA,DEMA,EVWMA等)   指标&#39;拥有以前的值,因此不稳定   短期的。随着指标接收更多数据,其输出   变得更稳定。见下面的例子。

相关的例子是:

?MovingAverages