Docs / Base de Conhecimento / Machine Learning: Finance
Base de Conhecimento
Conteúdo
Machine Learning: Finance
Parte: Playbooks · Chapter: Playbook: Machine Learning in Finance · Edition: 2026-07-12
Keywords: markets, features, backtest, leakage, risk
Glossary:backtest,leakage,alpha,risk— see GLOSSARY
Em resumo
- Este playbook registra métodos de aprendizado de máquina aplicados a séries temporais financeiras.
- É orientação para ler esses métodos.
- Não é aconselhamento financeiro, jurídico ou de investimento, e não é um sistema de negociação.
Referências online (verificadas)
Instantâneos offline (proteção contra links quebrados)
Instantâneo offline omitido nesta edição web. Instantâneo offline · Quantitative finance · https://en.wikipedia.org/wiki/Quantitative_analysis_(finance) · recuperado em 2026-07-12
Quantitative analysis (finance)
Instantâneo offline omitido nesta edição web. Instantâneo offline · Backtesting · https://en.wikipedia.org/wiki/Backtesting · recuperado em 2026-07-12
Aplicações na Keyne Digital Assets
Modelos preditivos e de séries temporais aparecem em muitos contextos de monitoramento, não só em mercados. Lemos este capítulo por esse quadro metodológico. O Situation Monitor não executa operações de mercado, e não recomendamos nenhum ativo ou estratégia.
Introdução
Aqui estão algumas técnicas bem conhecidas que são usadas para apoiar estratégias de negociação:
-
Modelagem Estatística: Este método envolve a análise de dados para identificar padrões e tendências. Ele é frequentemente usado em conjunção com técnicas de análise gráfica para prever movimentos futuros dos preços.
-
Análise Gráfica: Esta técnica envolve a análise de gráficos de preços para identificar tendências e patamares de compra/saída. Ela é amplamente utilizada em conjunção com técnicas de modelagem estatística para complementar as previsões de movimentos futuros.
-
Inteligência Artificial (IA): Esta técnica envolve a utilização de algoritmos de IA para analisar grandes volumes de dados e identificar padrões e tendências. Ela é frequentemente usada em conjunto com técnicas de análise gráfica para prever movimentos futuros dos preços.
-
Técnicas de Machine Learning: Este método envolve a utilização de algoritmos de aprendizado de máquina para analisar grandes volumes de dados e identificar padrões e tendências. Ele é frequentemente usado em conjunto com técnicas de análise gráfica para prever movimentos futuros dos preços.
Técnicas de Deep Learning: Esta técnica envolve a utilização de redes neurais profundas para analisar grandes volumes de dados e identificar padrões e tendências.
Técnicas de Natural Language Processing (NLP): Esta técnica envolve a utilização de algoritmos de NLP para analisar grandes volumes de texto e identificar padrões e tendências.
Técnicas de Processamento de Linguagem Natural (PLN): Esta técnica envolve a utilização de algoritmos de PLN para analisar grandes volumes de texto e identificar padrões e tendências.
- Algoritmos de Machine Learning: Estes podem variar desde modelos de regressão linear simples para previsão de tendências até redes neurais profundas para reconhecimento de padrões. Os modelos de aprendizado de máquina podem processar grandes conjuntos de dados para identificar tendências do mercado e fazer previsões. Alguns algoritmos populares incluem:
* Sistemas de Suporte a Vizinhos (SVM)
* Árvores de Decisão Random
* Máquinas de Aprendizado de Grama (GBM)
* Deep Learning (por exemplo, redes neurais convolucionais para reconhecimento de padrões baseados em imagens) - Análise de Séries Temporais: Esta envolve analisar pontos de dados do mercado, como preços de ações, em intervalos de tempo sucessivos para prever movimentos futuros. As técnicas incluem:
* ARIMA (AutoRegressive Integrated Moving Average)
Average)
* Modelos GARCH (Generalized Autoregressive Conditional Heteroskedasticity) para previsão de volatilidade
3. Processamento de Linguagem Natural (PLN): Bots podem analisar artigos de notícias, mídias sociais ou relatórios financeiros para avaliar a sensibilidade do mercado. Técnicas incluem:
* Análise de Sentimento
* Modelagem de Tópicos
4. Análise Técnica: Inclui análise de tendências estatísticas coletadas de atividade de negociação, como movimentação de preços e volume. Patrones gráficos e indicadores técnicos são usados, como:
* Médias Móveis
* MACD (Médias Móveis Convergência Divergência)
* RSI (Índice de Força Relativa)
* Retrasos Fibonacci
5. Análise Gráfica: Também conhecida como análise gráfica, onde patrones em gráficos de mercado são usados para prever movimentos de mercado. As técnicas incluem:
* Padrões de Ponteiro de Candelabro
* Padrões de Cabeça e Tênis
* Padrões de Cup e Barril
6. Análise Quantitativa: Inclui a aplicação de técnicas matemáticas e estatísticas para determinar oportunidades de negociação. As técnicas incluem:
* Simulações Monte Carlo
* Estratégias de Reversão de Média
* Arbitragem Estatística
7. Stratégias de Execução Algorítmica: Estas se concentram na execução de negociações, em vez de previsão. Elas desmembram uma grande ordem em partes menores e a executam algorítmicamente para minimizar impacto do mercado. Exemplos incluem:
* VWAP (Preço Médio de Volume)
* TWAP (Time Weighted Average Price)
Peso Médio de Preço)
* Ordem de Cobre
8. Aprendizado de Máquina Reinforcido: Um tipo de aprendizado de máquina onde os algoritmos aprendem a tomar decisões de negociação através de experimentação e erro. Os algoritmos são recompensados por estratégias lucrativas.
9. Indicadores de Sentimento: Derivados de comunicações sociais e outras comunicações públicas, esses indicadores avaliam o humor do mercado em relação a uma ação específica ou a mercado em geral.
10. Algoritmos de Negociação de Frequência Alta (HFT): Usam algoritmos complexos para analisar múltiplas mercados e executar ordens baseadas nas condições do mercado. Eles frequentemente envolvem:
* Arbitragem de Latência
* Negociação de Mercado
* Arbitragem Estatística
Cada uma dessas técnicas pode ser poderosa, mas também tem limitações e requer cuidadosa gestão de riscos. Além disso, a eficácia de um bot de negociação dependerá da qualidade dos dados subtraindo, da adequação dos algoritmos para as condições do mercado, e da velocidade de execução. Além disso, as considerações de compliance regulatório e éticas devem ser levadas em conta ao implementar bots de negociação em mercados reais.
Modelo de regressão linear ML
Desenvolver uma estratégia bem estabelecida para um modelo de regressão linear de aprendizado de máquina (ML) em negociação envolve várias etapas-chave, desde a seleção e pré-processamento de dados até a desenvolvimento do modelo e testes de volta. Vamos descrever uma estratégia que inclui dados de fontes de dados confiáveis, não apenas de preços em dias.
1. Seleção de Dados e Origens
Esta tradução preserva o formato Markdown original, incluindo cabeçalhos, listas, links, imagens, blocos de código, HTML e caminhos de imagens e arquivos GitBook. Não foi necessário traduzir URLs, código, caminhos de arquivo ou conteúdo dos blocos de código.
- Funcionalidades Acima da Preço: Incorporar funcionalidades como volume de negociação, spreads de oferta e demanda, volatilidade histórica, médias móveis, e índice de força relativa (RSI).
- Dados Fundamentais: Indicadores econômicos, relatórios de lucros das empresas, e taxas de juros também podem influenciar.
- Dados Alternativos: Sentimento em redes sociais, análise de sentimentos em notícias, e dados de Trending em Google podem fornecer insights sobre o sentimento do mercado.
- Fontes de Dados em Tempo Real: APIs de dados financeiros como Alpha Vantage, Yahoo Finance, ou Quandl oferecem dados em tempo real e históricos do mercado. Bloomberg e Reuters são também respeitáveis para notícias financeiras em tempo real.
2. Preprocessamento de Dados
- Normalização: Escalhe os dados para garantir que diferentes características contribuam igualmente para o modelo.
- Manejo de Dados Faltantes: Remova ou preencha os valores faltantes de maneira que não introduza bias.
- Engenharia de Features: Crie novas características que possam capturar melhor as dinâmicas do mercado, como indicadores técnicos.
3. Desenvolvimento de Modelos
- Modelo de Regressão Linear: Comece com um modelo de regressão linear simples para estabelecer um ponto de partida.
- Técnicas de Regularização: Implemente o Lasso ou o Ridge regressão para evitar overfitting e melhorar a generalização.
- Validação do Modelo: Use técnicas de validação cruzada para validar a performance do modelo.
4. Incorporando Dados em Tempo Real
- Streaming de Dados: Configurar um sistema para streaming os dados em tempo real para o seu modelo.
- Atualização do Modelo: Implemente uma técnica para atualizar o modelo conforme novos dados chegam, possivelmente usando técnicas como aprendizado online ou reentregas periódicas.
5. Gerenciamento de Riscos
- Stop-Loss e Take-Profit: Definir regras claras para o stop-loss e take-profit para gerenciar os riscos.
- Ajuste de Posições: Use posicionamento prudente para evitar perdas significativas.
6. Testes de Retorno
- Dados Históricos: Teste o estratégia com dados históricos para entender sua performance em diferentes condições de mercado.
- Métricas: Avalie usando métricas como a taxa de Sharpe, o desempenho máximo de deslizamento e o retorno sobre investimento.
7. Execução
- Trading Algorítmico: Integra o modelo com um plataforma de negociação para execução automática.
- Monitoramento: Continue a monitorar o desempenho do modelo e ajuste-o conforme necessário.
8. Considerações de Compliance e Considerações Éticas
- Compliance Regulatória: Certifique-se de que o estratégia atende a todas as regulamentações financeiras.
- Considerações de Privacidade de Dados: Respeite as considerações de privacidade e ética, especialmente quando utiliza dados alternativos.
from keras.models import Sequential from keras.layers import LSTM, Dense model = Sequential() model.add(LSTM(units=50, return_sequences=False, input_shape=(window_size, feature_count))) model.add(Dense(units=1)) model.compile(optimizer=’adam’, loss=’mean_squared_error’) from keras.models import Sequential from keras.layers import LSTM, Dense model = Sequential() model.add(LSTM(units=50, return_sequences=True, input_shape=(window_size, feature_count))) model.add(LSTM(units=50, return_sequences=False)) model.add(Dense(units=1)) model.compile(optimizer=’adam’, loss=’mean_squared_error’)
Este modelo tem duas camadas LSTM coladas. A primeira camada LSTM tem return_sequences=True para passar a sequência para a próxima camada.
Escalonamento de dados
Escolher o melhor método de escalonamento para dados relacionados a ações ou criptomoedas é um passo importante na pré-processagem para várias tarefas de aprendizado de máquina e análise de dados. A escolha do escaler depende da natureza dos seus dados e das exigências específicas de sua análise ou modelo. Aqui estão alguns métodos de escaler comuns:
- Scalador padrão (normalização z-score): Este método transforma os dados para ter uma média de 0 e uma desviância padrão de 1. É útil quando os dados seguem uma distribuição gaussiana, mas é sensível a outliers.
- Scalador min-max: Este scalador transforma os dados para um intervalo especificado, geralmente [0, 1]. É uma boa escolha quando você precisa manter a forma da distribuição original e não tem outliers.
- Scalador robusto: Este método é semelhante ao Scalador padrão, mas usa a mediana e o intervalo interquartil, tornando-o robusto a outliers. É útil quando você tem dados com outliers.
- Transformação logarítmica: Aplicar uma transformação logarítmica pode ajudar a estabilizar a variação dos dados.
A variação de uma série temporal, especialmente em dados financeiros onde podem existir efeitos multiplicativos.
- Transformação de Box-Cox / Yeo-Johnson: Essas são transformações de potência gerais que funcionam para diferentes distribuições de dados de diferentes tipos. Eles podem estabilizar a variação e tornar o dados mais normais (Gaussianas).
- Transformação de Quantil: Este método transforma as características para seguir uma distribuição uniforme ou normal, e, portanto, ele suaviza distribuições incomuns.
- Normalização por Escala Decimal: Esta envolve a deslocar o ponto decimal dos valores. É uma metodologia mais simples, mas menos comummente usada em análises sofisticadas.
- Escaladores Personalizados: Às vezes, uma metodologia de escala personalizada
A melhor abordagem para apropriar-se das características específicas de seu dados pode ser a melhor estratégia.
Para séries temporais de ações e criptomoedas, você geralmente trabalha com dados não estacionários e muitas vezes voláteis. É crucial considerar os seguintes:
- Natureza dos Dados: Se os dados contêm outliers, scalers robustos são preferíveis. Se os dados têm uma distribuição normal, a escalação padrão pode ser adequada.
- Requisitos do Modelo: Alguns modelos exigem que os dados estejam distribuídos normalmente; outros podem precisar de dados dentro de um certo intervalo.
- Objetivo da Análise: Por exemplo, a transformação logarítmica pode ser particularmente útil para análise de tendência em séries temporais.
É comum testar diferentes normalizadores (scalers) e avaliar o desempenho no caso de uso concreto. A validação cruzada e as métricas de desempenho ajudam a escolher a melhor abordagem para o conjunto de dados e os objetivos em questão.
Data Preprocessing for LSTM Model
Option 1: Single Time Step
window_size = 1
X, y = [], []
for i in range(len(data) - window_size):
X.append(data[i:(i + window_size), 0])
y.append(data[i + window_size, 0])
X, y = np.array(X), np.array(y)
This code snippet creates input sequences where each input sequence contains only 1 time step.
#### **Option 2: Multiple Time Steps**
window_size = 2
X, y = [], [] for i in range(len(data) - window_size):
X.append(data[i:(i + window_size), 0]) y.append(data[i + window_size, 0])
X, y = np.array(X), np.array(y)
This code snippet creates input sequences where each input sequence contains 2 time steps.
window_size = 5
X, y = [], [] for i in range(len(data) - window_size):
X.append(data[i:(i + window_size), 0]) y.append(data[i + window_size, 0])
X, y = np.array(X), np.array(y)
Este trecho prepara os dados com uma janela de tamanho 5, ou seja, cada sequência de entrada contém 5 passos de tempo.
Prediction Method
Option 1: Direct Approach
# Predict the next value
next_value = model.predict(X[-1].reshape(1, window_size, feature_count))
Using actual historical data for the next prediction
new_input = np.append(X[-1][1:], next_value).reshape(1, window_size, feature_count)
next_next_value = model.predict(new_input)
Predição do próximo valor
next_value = model.predict(X[-1].reshape(1, window_size, feature_count))
Usando a predição para a próxima predição
new_input = np.append(X[-1][1:], next_value) for i in range(number_of_future_steps):
next_value = model.predict(new_input.reshape(1, window_size, feature_count)) new_input = np.append(new_input[1:], next_value)
Essas exemplos podem ser ajustados conforme as necessidades específicas de seu tópico de previsão de séries temporais.
Camadas
É possível criar uma rede neural, particularmente uma LSTM (Long Short-Term Memory), que inclui camadas com diferentes conjuntos de características, incluindo dados brutos como data, preço de fechamento e volume, bem como camadas com combinações de diferentes indicadores técnicos. Este método é frequentemente usado para capturar várias aspectos da dados, como movimentos de preço brutos e indicadores derivados, que podem fornecer insights adicionais para o tópico de previsão. Aqui está uma visão conceitual de como você poderia estruturar tal modelo:
Camada 1: Dados brutos
- Atributos: data, preço de fechamento e volume.
- Objetivo: esta camada pode captar diretamente os movimentos brutos do mercado.
- Implementação: a data pode ser convertida a um formato numérico (carimbos de tempo, ou componentes separados de ano, mês e dia) para entrar como atributo.
Camada 2: primeiro conjunto de indicadores técnicos
- Atributos: um conjunto escolhido de indicadores técnicos (por exemplo, médias móveis, RSI).
- Objetivo: captar tendências e momentum nos dados.
- Implementação: esses indicadores podem ser calculados com bibliotecas como
ta(Technical Analysis, em Python) e acrescentados como atributos adicionais.
Layer 3: Technical Indicators Set 2
- Características: Outro conjunto de indicadores técnicos (por exemplo, MACD, Bollinger Bands).
- Objetivo: Para fornecer sinais de volatilidade do mercado e possíveis reversões.
- Implementação: Similar ao segundo nível, mas com uma configuração diferente de indicadores.
Estrutura do Modelo
Você poderia estruturar o modelo LSTM para processar essas camadas de maneira sequencial ou paralela:
-
Aproche Sequencial: Cada camada LSTM processa uma instância de características, e o output da camada anterior é passado para a próxima. Isso permite que as camadas superiores aprendam a interpretar os outputs das camadas inferiores.
python from keras.models import Sequential from keras.layers import LSTM, Dense
model = Sequential() model.add(LSTM(units=50, input_shape=(time_steps, features_layer_1))) model.add(LSTM(units=50, input_shape=(time_steps, features_layer_2))) model.add(LSTM(units=50, input_shape=(time_steps, features_layer_3))) model.add(Dense(units=1))
Defina três entradas
input1 = Input(shape=(time_steps, features_layer_1)) input2 = Input(shape=(time_steps, features_layer_2)) input3 = Input(shape=(time_steps, features_layer_3))
Camadas LSTM para cada entrada
lstm1 = LSTM(units=50)(input1) lstm2 = LSTM(units=50)(input2) lstm3 = LSTM(units=50)(input3)
Concatenação dos outputs das camadas LSTM
concatenated = concatenate([lstm1, lstm2, lstm3])
Camada densa para previsão
output = Dense(units=1)(concatenated) model = Model(inputs=[input1, input2, input3], outputs=output)
In ambos os métodos, é crucial garantir que a correspondência de cada camada com os dados esteja corretamente alinhada em termos de passos de tempo. Este setup pode potencialmente melhorar a capacidade do modelo de aprender de forma adequada tanto de dados brutos quanto de características derivadas, o que pode potencialmente melhorar sua precisão preditiva. No entanto, ele também aumenta a complexidade do modelo, então cuidadosa treinamento, validação e teste são essenciais para evitar overfitting e garantir desempenho robusto.
Conclusão
Esta estratégia fornece uma abordagem estruturada para desenvolver um modelo de regressão linear de ML para negociação, incorporando uma variedade de fontes de dados e técnicas. No entanto, é importante notar que a negociação envolve riscos significativos, e os modelos de ML não são exceção. Continuar a avaliação e adaptação são essenciais para manter uma estratégia de negociação bem-sucedida.
Índice da parte
O mapa científico, as equações e o conjunto bibliográfico desta parte da base de conhecimento estão nos índices de parte:
Os retratos da Wikipédia no cartão do capítulo servem de orientação offline; os índices de parte reúnem as trilhas completas de citação.
Nesta página