Criação de variáveis a partir do volume
Vamos usar modelos não lineares para fazer previsões mais precisas. Com modelos lineares, as variáveis precisam ser linearmente correlacionadas ao alvo. Outros modelos de Machine Learning podem combinar variáveis de formas não lineares. Por exemplo: e se o preço subir quando a média móvel do preço estiver subindo e a média móvel do volume estiver caindo? A única maneira de capturar essas interações é multiplicar as variáveis ou usar um algoritmo de Machine Learning que lide com não linearidade (por exemplo, random forests).
Para incorporar mais informações que possam interagir com outras variáveis, podemos adicionar variáveis com correlação fraca. Primeiro, vamos adicionar dados de volume, que temos em lng_df na coluna Adj_Volume.
Antes de começar, lembre-se de que, para funções do TA-Lib (como SMA()), você precisa fornecer arrays do Numpy, não objetos do pandas. Você pode usar o atributo .values de uma Series ou DataFrame do pandas para retorná-los como um array do Numpy.
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Crie a variação percentual de 1 dia do volume (use
pct_change()do pandas) e atribua-a à colunaAdj_Volume_1d_changeemlng_df. - Crie uma média móvel de 5 dias da variação percentual de 1 dia do volume e atribua-a à coluna
Adj_Volume_1d_change_SMAemlng_df. - Plote histogramas dessas duas novas variáveis que criamos usando a lista
new_features.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Create 2 new volume features, 1-day % change and 5-day SMA of the % change
new_features = ['Adj_Volume_1d_change', 'Adj_Volume_1d_change_SMA']
feature_names.extend(new_features)
lng_df[____] = lng_df['Adj_Volume'].____
lng_df[____] = talib.SMA(____[____].____,
timeperiod=____)
# Plot histogram of volume % change data
lng_df[____].plot(kind='hist', sharex=False, bins=50)
plt.show()