复制保真度';在Python中基于14分钟的RSI计算
我尝试了两种不同的RSI计算(都非常相似),但我无法得到14分钟的RSI来匹配Fidelity显示的RSI。如果我使用相同的功能并使用每日数据,我可以准确匹配Fidelity的14日RSI。有人能解释一下这些区别吗?忠诚是否在做一些独特的事情?我从我的经纪人Tradier那里获取分钟和每日数据。以下是我的RSI函数示例:复制保真度';在Python中基于14分钟的RSI计算,python,trading,Python,Trading,我尝试了两种不同的RSI计算(都非常相似),但我无法得到14分钟的RSI来匹配Fidelity显示的RSI。如果我使用相同的功能并使用每日数据,我可以准确匹配Fidelity的14日RSI。有人能解释一下这些区别吗?忠诚是否在做一些独特的事情?我从我的经纪人Tradier那里获取分钟和每日数据。以下是我的RSI函数示例: def RSI(prices, n): deltas = np.diff(prices) seed = deltas[:n + 1] up = seed
def RSI(prices, n):
deltas = np.diff(prices)
seed = deltas[:n + 1]
up = seed[seed >= 0].sum() / n
down = -seed[seed < 0].sum() / n
rs = up / down
rsi = np.zeros_like(prices)
rsi[:n] = 100. - 100. / (1. + rs)
for i in range(n, len(prices)):
delta = deltas[i - 1] # The diff is 1 shorter
if delta > 0:
upval = delta
downval = 0.
else:
upval = 0.
downval = -delta
up = (up * (n - 1) + upval) / n
down = (down * (n - 1) + downval) / n
rs = up / down
rsi[i] = 100. - 100. / (1. + rs)
return rsi[-1]
def RSI(价格,n):
增量=np.差异(价格)
种子=三角洲[:n+1]
up=seed[seed>=0].sum()/n
down=-seed[seed<0].sum()/n
rs=上升/下降
rsi=np.类零(价格)
rsi[:n]=100100. / (1.+rs)
对于范围(n,len(价格))内的i:
delta=delta[i-1]#差值短1
如果增量>0:
upval=delta
downval=0。
其他:
upval=0。
downval=-delta
up=(up*(n-1)+upval)/n
向下=(向下*(n-1)+向下值)/n
rs=上升/下降
rsi[i]=100100. / (1.+rs)
返回rsi[-1]