复制保真度';在Python中基于14分钟的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

我尝试了两种不同的RSI计算(都非常相似),但我无法得到14分钟的RSI来匹配Fidelity显示的RSI。如果我使用相同的功能并使用每日数据,我可以准确匹配Fidelity的14日RSI。有人能解释一下这些区别吗?忠诚是否在做一些独特的事情?我从我的经纪人Tradier那里获取分钟和每日数据。以下是我的RSI函数示例:

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]