Comece agoraComece grátis

Crie recursos de média móvel e RSI

Queremos adicionar dados históricos aos nossos modelos de Machine Learning para fazer previsões melhores, mas incluir muitos passos de tempo históricos é complicado. Em vez disso, podemos condensar informações dos pontos anteriores em um único passo de tempo usando indicadores.

Uma média móvel é um dos indicadores mais simples — é a média dos pontos de dados anteriores. Essa é a função talib.SMA() da biblioteca TAlib.

Outro indicador técnico comum é o índice de força relativa (RSI). Ele é definido por:

\(RSI = 100 - \frac{100} {1 + RS}\)

\(RS = \frac{\text{ganho médio em } n \text{ períodos}} {\text{perda média em } n \text{ períodos}}\)

Os períodos n são definidos em talib.RSI() pelo argumento timeperiod.

Um período comum para o RSI é 14, então vamos usar esse valor como uma das configurações nos nossos cálculos.

Este exercicio faz parte do curso

Machine Learning para Finanças em Python

Ver curso

Instruções do exercicio

  • Crie uma lista de nomes de recursos (comece com uma lista contendo apenas '5d_close_pct').
  • Use períodos de 14, 30, 50 e 200 para calcular médias móveis com talib.SMA() a partir dos preços de fechamento ajustado (lng_df['Adj_Close']).
  • Normalize as médias móveis pelo fechamento ajustado dividindo por Adj_Close.
  • Dentro do loop, calcule o RSI com talib.RSI() a partir de Adj_Close, usando n como o timeperiod.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

feature_names = ____  # a list of the feature names for later

# Create moving averages and rsi for timeperiods of 14, 30, 50, and 200
for n in [____]:

    # Create the moving average indicator and divide by Adj_Close
    lng_df['ma' + str(n)] = talib.SMA(lng_df['Adj_Close'].values,
                              timeperiod=n) / lng_df[____]
    # Create the RSI indicator
    lng_df['rsi' + str(n)] = talib.____(lng_df['Adj_Close'].____, timeperiod=____)
    
    # Add rsi and moving average to the feature name list
    feature_names = feature_names + ['ma' + str(n), 'rsi' + str(n)]

print(feature_names)
Editar e Executar Código