python talib 使用

各种指标

import tushare as ts
df=ts.get_k_data('sh',start='2000-01-01')
df.index=pd.to_datetime(df.date)
df=df.sort_index()
print(df.columns)


def overlap_studies():
    types=['SMA','EMA','WMA','DEMA','TEMA',
    'TRIMA','KAMA','MAMA','T3']
    df_overlap=pd.DataFrame(df.close)
    for i in range(len(types)):
        df_overlap[types[i]]=ta.MA(df.close,timeperiod=5,matype=i)
    print(df_overlap.tail(10))

    df_overlap["SMA5_shift"] = df.close / ta.SMA(df['close'], timeperiod=5) - 1
    df_overlap["SMA10_shift"] = df.close / ta.SMA(df['close'], timeperiod=10) - 1
    df_overlap["SMA20_shift"] = df.close / ta.SMA(df['close'], timeperiod=20) - 1
    df_overlap["SMA30_shift"] = df.close / ta.SMA(df['close'], timeperiod=30) - 1
    df_overlap["SMA60_shift"] = df.close / ta.SMA(df['close'], timeperiod=60) - 1
    df_overlap["SMA120_shift"] = df.close / ta.SMA(df['close'], timeperiod=120) - 1

    H_line, M_line, L_line = ta.BBANDS(df.close, timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
    stds = (M_line - L_line) / 2
    df_overlap['band_shift'] = (df.close - M_line) / stds
    print(df_overlap['band_shift'].tail(10))


def momentum_indicator():
    dif, dea, bar = ta.MACD(df['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
    df["rsi"] = ta.RSI(df.close, timeperiod=14)
    df['roc_5'] = ta.ROC(df.close, timeperiod=5)
    df['roc_10'] = ta.ROC(df.close, timeperiod=10)
    df['roc_20'] = ta.ROC(df.close, timeperiod=20)
    df['cci'] = ta.CCI(df['high'], df['low'], df['close'], timeperiod=14)

你可能感兴趣的:(量化分析,Python,python,开发语言,机器学习)