PythonでRCI,MACD,移動平均線

RCI

RCIの説明は下記のサイトを参考
QuantXでRCIを実装してみた - Qiita

そのまま実装したのが下記。

# rci_short = get_rci(close,9)    で呼ぶ
# closeは各足の終値

def get_rci(close, period):
    rci = []
    table = [[0] * 4 for i in range(period)]
    df = pd.DataFrame(close, columns=(['close']))


    for i in range(len(close)):
        if i < period:
            rci.append(None)
        else:
            d_ = 0
            for j in range(period):
                table[j][0]=close[i]
                table[j][1]=period - j
            rank_price = df[i - period + 1: i + 1].rank(method='min', ascending = False).values
            for j in range(period):
                table[j][2]=int(rank_price[j])
            for j in range(period):
                d_ = d_ + (table[j][1] - table[j][2]) * (table[j][1] - table[j][2])

            rci.append( 6 * d_  / (period * (period*period -1)))
            rci[i] = (1-rci[i])*100

    return rci

MACD

インストールした際の経緯は下記

orcafamiliar.hatenablog.com

import talib

macd, macdsignal, macdhist = talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)

移動平均線

import talib

sma5 = talib.SMA(infected_count, timeperiod=5)