Discussão do artigo "Redes neurais em trading: Modelo multidimensional de ponta a ponta para previsão de séries temporais (Componentes principais)"
Artigo muito interessante e uma continuação valiosa da série sobre a implementação do GinAR. A arquitetura chamou nossa atenção porque, atualmente, estamos desenvolvendo uma estrutura de pesquisa mais ampla de aprendizado de máquina em múltiplas etapas para negociação algorítmica, e uma das áreas que estamos investigando ativamente é se a modelagem entre ativos pode agregar informações que não são captadas pelos modelos tradicionais por símbolo.
Nossa estrutura é intencionalmente dividida em camadas independentes: coleta de dados de mercado, engenharia de características, construção de conjuntos de dados históricos, pesquisa de modelos, validação, geração de candidatos e execução. O aprendizado de máquina é tratado como uma camada de evidência, e não como uma fonte de autoridade direta para negociação. Portanto, um modelo não pode influenciar decisões de negociação posteriores simplesmente por apresentar bom desempenho na amostra; ele deve primeiro demonstrar valor incremental estável fora da amostra.
Atualmente, trabalhamos com um universo multiativos que abrange câmbio, ouro, índices dos EUA, ações e instrumentos de energia. Os dados históricos são processados por meio de um fluxo de trabalho Bronze → Prata → Ouro, com controles rigorosos em momentos específicos. As informações disponíveis no momento da decisão são mantidas separadas das informações futuras utilizadas para rotulagem e análise de resultados.
Nosso contrato de treinamento Gold atual contém 142 características de origem por observação, consistindo em 129 características numéricas e 13 categóricas. O conjunto de características inclui volatilidade, tendência, momentum, estrutura de mercado, comportamento de quebra, contexto de ação de preço, condições de liquidez, estado da sessão e outros descritores determinísticos do mercado.
Antes de testar o GinAR, já havíamos construído uma família de modelos de segunda geração utilizando Regressão Logística, XGBoost, LightGBM e CatBoost. Esses modelos foram avaliados por meio de validação cronológica walk-forward, triagem por limiar, análise de estabilidade por bootstrap, verificações de calibração, análise de regime e uma fase de holdout não alterada.
Dez instrumentos alcançaram nosso estágio de candidatos aprovados na Validação Profunda:
GBPUSD, USDCHF, US500, US30, USDCAD, EURUSD, USDJPY, EURGBP, USTEC e XAUUSD.
Esses passaram a constituir o universo inicial de pesquisa para nosso experimento com o GinAR.
O que tornou o GinAR especialmente interessante para nós é que ele introduz algo fundamentalmente diferente de nossos modelos existentes. Nossos modelos GEN2 atuais são, em grande parte, classificadores por símbolo, enquanto o GinAR oferece a possibilidade de aprender relações dinâmicas entre ativos e representações latentes em vários instrumentos simultaneamente.
Isso é particularmente relevante nos mercados financeiros, pois os instrumentos não são independentes. As relações entre moedas, ouro, índices de ações e outros ativos mudam de acordo com o regime de mercado, a volatilidade e a estrutura do pregão. Além disso, um universo de negociação com múltiplos ativos naturalmente contém períodos em que nem todos os instrumentos têm cotações válidas ou pregões ativos ao mesmo tempo.
Por esse motivo, criamos um Ramo de Pesquisa GinAR totalmente separado, sem autoridade de negociação e sem efeito sobre nosso sistema de execução existente.
O objetivo não era reproduzir a implementação deste artigo linha por linha, nem substituir imediatamente nossos modelos existentes. Em vez disso, queríamos responder a uma questão de pesquisa mais específica:
Um modelo de grafo entre ativos no estilo GinAR pode fornecer informações adicionais fora da amostra, além dos nossos modelos GEN2 por símbolo já existentes?
Nossa implementação foi, portanto, um modelo de pesquisa “clean-room” inspirado no GinAR, baseado nas principais ideias arquitetônicas:
- Atenção por Interpolação,
- relações de grafo adaptativas,
- transformações convolucionais de grafo,
- estado de grafo recorrente,
- classificação no nível do nó.
Para o primeiro experimento, utilizamos a parte numérica comum do contrato de características Gold, fornecendo ao modelo 129 características numéricas por nó.
O alvo utilizado neste experimento foi um problema de classificação WHIPSAW de 240 minutos.
A integridade dos rótulos revelou-se uma questão metodológica importante. Nossos rótulos históricos contêm:
WHIPSAW
NO_WHIPSAW
AMBIGUOUS_FIRST_MOVE
e, em alguns casos, INCOMPLETE.
AMBIGUOUS_FIRST_MOVE ocorre quando ambas as barreiras de primeiro movimento são atingidas dentro da mesma barra M1, o que significa que a ordem real dentro da barra não pode ser determinada a partir dos dados de origem disponíveis.
Portanto, utilizamos uma especificação explícita:
AMBIGUOUS_DO_NOT_GUESS
.
O contrato-alvo binário ficou assim:
WHIPSAW = 1
NO_WHIPSAW = 0
enquanto AMBIGUOUS_FIRST_MOVE e INCOMPLETE foram excluídos das métricas binárias de perda e avaliação, em vez de serem forçados a pertencer a uma das duas classes.
Esse ponto foi importante para nós porque converter resultados ambíguos em uma das duas classes introduziria ruído artificial nos rótulos.
Também mantivemos controles rigorosos contra a antecipação.
O protocolo de validação foi:
180 dias de treinamento
30 dias de validação
Etapa de avanço de 60 dias
240 minutos de purga/lacuna
período de retenção final intocado de 60 dias
O conjunto de teste final permaneceu isolado durante o experimento inicial do GinAR.
Evitamos deliberadamente a divisão aleatória entre treinamento e teste.
Outro ponto importante diz respeito às variáveis ausentes. A “Interpolation Attention” do GinAR é potencialmente muito útil para um ambiente de negociação com múltiplos ativos, no qual os instrumentos podem ficar temporariamente indisponíveis devido a diferentes sessões de negociação.
No entanto, não utilizamos o modelo para gerar observações históricas.
As observações de origem ausentes permaneceram ausentes nos conjuntos de dados originais e foram representadas explicitamente por máscaras. A interpolação interna foi utilizada apenas como parte da representação neural. Nenhum valor reconstruído foi gravado de volta em nossos conjuntos de dados Gold.
Em seguida, treinamos o modelo de pesquisa do GinAR em seis dobras cronológicas do método walk-forward.
O número de observações-alvo válidas foi grande e relativamente estável entre as dobras. A avaliação OOF resultante produziu aproximadamente 114.558 previsões fora da dobra.
Os valores de PR-AUC nas seis dobras foram:
Passo 1: 0,6894
Passo 2: 0,6910
Passo 3: 0,6833
Passo 4: 0,6866
Fold 5: 0,6584
Dobradura 6: 0,6999
A maioria das dobras se mostrou razoavelmente estável, embora a Dobra 5 tenha sido visivelmente mais fraca. Consideramos esse período especialmente interessante para uma análise posterior do regime e da estrutura do gráfico.
O próximo passo foi a parte que consideramos mais importante: uma comparação direta com nossos modelos GEN2 de referência já existentes.
Alinhamos as previsões do GinAR OOF com as previsões correspondentes do GEN2 na mesma interseção de símbolo/marca de tempo.
A comparação incluiu 90.122 observações fora de dobra correspondentes.
O resultado foi:
Delta PR-AUC: -0,0161
Delta LogLoss: +0,0059
Como um PR-AUC mais alto e um LogLoss mais baixo são preferíveis, o resultado atual favoreceu claramente os modelos GEN2 existentes.
Em outras palavras, em nosso primeiro experimento, o GinAR não superou nossa família de modelos existente de Regressão Logística / XGBoost / LightGBM / CatBoost como um classificador WHIPSAW independente.
Portanto, não promovemos o GinAR como substituto do GEN2.
No entanto, não acho que esse resultado torne o GinAR desinteressante para aplicações financeiras.
Na verdade, o experimento pode sugerir que a parte mais valiosa da arquitetura não é necessariamente o classificador autônomo final.
O GinAR cria uma representação latente entre ativos que nossos modelos independentes por símbolo não possuem naturalmente.
Por esse motivo, estamos mantendo o GinAR como um codificador de pesquisa e alterando a próxima questão de pesquisa de:
“O GinAR pode substituir o GEN2?”
para:
“O GinAR pode fornecer informações complementares entre ativos para o GEN2?”
Nosso próximo experimento planejado é, portanto:
linha de base do GEN2
versus
GEN2 + GinAR com representações entre ativos
utilizando empilhamento fold-safe, análise de discordância de probabilidade, análise de regime, análise de estabilidade de grafos e testes de ablação.
Estamos particularmente interessados em examinar casos em que o modelo GEN2 líder esteja errado enquanto o GinAR estiver correto, e vice-versa. Se esses conjuntos de erros forem suficientemente diferentes, a representação do GinAR ainda poderá ser útil como uma camada adicional de características, mesmo que seu PR-AUC isolado seja menor.
Também planejamos examinar se a matriz de adjacência aprendida permanece estável ao longo do tempo ou se as relações entre os instrumentos mudam significativamente em diferentes regimes de volatilidade e de mercado.
É nesse ponto que acreditamos que os modelos baseados em grafos possam se tornar particularmente úteis em sistemas de negociação.
Por exemplo, a relevância de relações como:
Ouro ↔ USD,
Câmbio ↔ índices dos EUA,
USDCAD ↔ energia,
ou USTEC ↔ grandes ações do setor de tecnologia
não deve necessariamente ser considerada constante ao longo do tempo.
Um modelo capaz de aprender essas relações dinamicamente pode oferecer um contexto valioso, mesmo que seu módulo de classificação direta não seja o melhor preditor isolado.
Também vale a pena mencionar uma lição metodológica de nosso experimento: é muito fácil julgar uma nova arquitetura neural com base apenas na perda de treinamento ou em um único backtest. Nossos resultados mudaram a interpretação do modelo assim que o comparamos com um benchmark existente nas mesmas observações fora do conjunto de treinamento.
Para nós, esse tipo de comparação é essencial.
Um novo modelo não deve ser considerado útil simplesmente porque produz uma métrica razoável. Ele deve demonstrar:
- melhor desempenho preditivo,
- melhor calibração,
- melhor robustez,
- erros complementares,
- representações latentes úteis,
- ou valor incremental mensurável quando combinado com um sistema existente.
Nesta fase, nossa conclusão é, portanto:
O GinAR não é, atualmente, um classificador autônomo melhor do que nossos modelos GEN2, mas continua sendo um candidato promissor como camada de representação e geração de características entre ativos.
Mantivemos deliberadamente o conjunto de teste final intacto e isolado até que esta próxima etapa da pesquisa seja definida, a fim de evitar o uso repetido do conjunto de teste para decisões de desenvolvimento de modelos.
Eu teria muito interesse em ver os próximos experimentos do autor com dados reais de mercado, particularmente:
- como o GinAR se comporta sob validação walk-forward,
- como as variáveis ausentes são tratadas em diferentes sessões de negociação,
- se a estrutura de grafo aprendida permanece estável entre regimes,
- se a arquitetura é mais eficaz para previsão ou classificação,
- e se as incorporações de grafos agregam valor adicional quando combinadas com modelos baseados em árvores mais robustos.
Agradecemos pela publicação desta série. É uma das direções mais interessantes que encontramos para a aplicação do aprendizado multivariável baseado em grafos a séries temporais financeiras.
Embora nossa primeira comparação independente não tenha mostrado uma vantagem isolada em relação ao GEN2, o experimento abriu uma direção de pesquisa nova e potencialmente mais útil para nós: usar o GinAR como uma camada de inteligência entre ativos, em vez de simplesmente mais um classificador.
Estou ansioso pelo próximo artigo e teria muito interesse em comparar nossas descobertas com os resultados do autor baseados em dados de mercado.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Redes neurais em trading: Modelo multidimensional de ponta a ponta para previsão de séries temporais (Componentes principais) foi publicado:
O mecanismo Interpolation Attention ocupa um lugar central na arquitetura; não se trata de um núcleo clássico de Self-Attention, mas de um módulo adaptativo completo, capaz de levar em conta tanto as dependências globais entre as variáveis quanto o contexto local das observações. Na prática, isso significa que o modelo é capaz, por exemplo, de prever o valor de um indicador financeiro mesmo quando suas últimas medições estão ausentes, utilizando a estrutura dos indicadores vizinhos e o quadro geral do mercado. Essa abordagem é fundamental em condições reais, nas quais os dados frequentemente chegam com atraso, de forma irregular ou com grandes lacunas.
Uma característica do GinAR é a capacidade de reconfigurar dinamicamente a estrutura em grafo durante o treinamento. Ao contrário da maioria dos modelos baseados em grafos, em que a estrutura é fixada antecipadamente, aqui ela é formada durante o processo de treinamento. Isso permite levar em conta mudanças nas condições de mercado, nas correlações e nos fatores ocultos. O modelo decide de forma autônoma quais variáveis devem ser conectadas entre si, quais devem ter essa conexão enfraquecida e quais devem ser destacadas como centrais para o contexto atual. Assim, obtém-se uma arquitetura flexível, capaz de se adaptar aos regimes de mercado e à sua dinâmica.
Na parte prática do artigo anterior, realizamos um volume significativo de trabalho, estabelecendo a base para os cálculos no lado do programa OpenCL. Foram implementadas todas as funções-chave, desde reduções locais e cálculo de SoftMax até a propagação para frente e a propagação reversa no módulo Interpolation Attention. Foi dada atenção especial ao processamento correto da memória local, à sincronização das threads e à estabilidade numérica, algo especialmente importante ao trabalhar com séries temporais incompletas em condições de computação paralela.
Essa preparação nos abre o caminho para a próxima etapa, a integração do núcleo do modelo ao programa principal. É aqui que o algoritmo começará a ganhar vida: os dados virão do ambiente de trading, serão processados com dispositivos OpenCL, passarão pelo modelo e retornarão na forma de previsões e decisões de trading. Essa ponte entre a lógica de alto nível e os cálculos acelerados de baixo nível é uma parte fundamental de toda a nossa implementação da arquitetura GinAR.
Autor: Dmitriy Gizlyk