量化交易中指標(biāo)RSI的Python代碼實(shí)現(xiàn)

最近在學(xué)習(xí)量化交易,需要自己實(shí)現(xiàn)RSI指標(biāo),參考了TA-LIB的實(shí)現(xiàn)方式。
RSI英文全稱:Relative Strength Index
RSI中文名稱:相對(duì)強(qiáng)弱指數(shù)
是衡量?jī)r(jià)格波動(dòng)的一個(gè)重要指標(biāo)。

計(jì)算公式

UP_AVG = UP_AMOUNT/PERIODS (周期內(nèi)上漲數(shù)量平均)
DOWN_AVG = DOWN_AMOUNT/PERIODS(周期內(nèi)下跌數(shù)量平均)
RS = UP_AVG/DOWN_AVG(相對(duì)平均)
RSI  = 100 - 100 / (1 + RS)  (相對(duì)強(qiáng)弱指數(shù))

快速計(jì)算公式

利用前一個(gè)UP_AVG, DOWN_AVG快速計(jì)算當(dāng)前UP_AVG, DOWN_AVG

UP_AVG = (UP_AVG_PREV * (PERIODS - 1) + UP) / PERIODS
DOWN_AVG = (UP_AVG_PREV * (PERIODS - 1) + DOWN) / PERIODS
RS = UP_AVG/DOWN_AVG
RSI  = 100 - 100 / (1 + RS)  

Python代碼實(shí)現(xiàn)

def RSI(t, periods=10):
    length = len(t)
    rsies = [np.nan]*length
    #數(shù)據(jù)長(zhǎng)度不超過(guò)周期,無(wú)法計(jì)算;
    if length <= periods:
        return rsies
    #用于快速計(jì)算;
    up_avg = 0
    down_avg = 0

    #首先計(jì)算第一個(gè)RSI,用前periods+1個(gè)數(shù)據(jù),構(gòu)成periods個(gè)價(jià)差序列;
    first_t = t[:periods+1]
    for i in range(1, len(first_t)):
        #價(jià)格上漲;
        if first_t[i] >= first_t[i-1]:
            up_avg += first_t[i] - first_t[i-1]
        #價(jià)格下跌;
        else:
            down_avg += first_t[i-1] - first_t[i]
    up_avg = up_avg / periods
    down_avg = down_avg / periods
    rs = up_avg / down_avg
    rsies[periods] = 100 - 100/(1+rs)

    #后面的將使用快速計(jì)算;
    for j in range(periods+1, length):
        up = 0
        down = 0
        if t[j] >= t[j-1]:
            up = t[j] - t[j-1]
            down = 0
        else:
            up = 0
            down = t[j-1] - t[j]
        #類似移動(dòng)平均的計(jì)算公式;
        up_avg = (up_avg*(periods - 1) + up)/periods
        down_avg = (down_avg*(periods - 1) + down)/periods
        rs = up_avg/down_avg
        rsies[j] = 100 - 100/(1+rs)
    return rsies  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容