Русский
preview
Implementação do circuito quântico de Quantum Reservoir Computing (QRC)

Implementação do circuito quântico de Quantum Reservoir Computing (QRC)

MetaTrader 5Sistemas de negociação |
63 0
Yevgeniy Koshtenko
Yevgeniy Koshtenko

O trader moderno enfrenta um dilema fundamental: quanto mais complexo se torna o sistema de trading, maior é sua tendência ao sobreajuste. Embora apresentem resultados brilhantes em dados históricos, algoritmos clássicos de aprendizado de máquina fracassam de forma catastrófica no trading ao vivo. Redes neurais treinadas em milhares de exemplos tornam-se subitamente inúteis diante da menor mudança nas condições de mercado. Support Vector Machines mostram 85% de acurácia nos backtests, mas começam a gerar prejuízo já na primeira semana de trading ao vivo.

A raiz do problema é mais profunda do que meros detalhes técnicos. Os mercados financeiros são sistemas adaptativos, nos quais cada participante muda constantemente seu comportamento em resposta às ações dos demais. Qualquer estratégia baseada em padrões estáticos do passado está condenada ao fracasso em um ambiente dinâmico. As abordagens tradicionais de aprendizado de máquina pressupõem a estacionariedade dos dados, uma premissa que, no contexto dos mercados financeiros, não é apenas imprecisa, mas fundamentalmente equivocada.

Além disso, a maioria dos algoritmos de trading sofre de "esquecimento catastrófico": ao aprender com novos dados, eles perdem completamente o conhecimento adquirido anteriormente. Isso cria um círculo vicioso: ou o sistema permanece estático e fica obsoleto, ou sofre sobreajuste contínuo e perde estabilidade. Os traders são obrigados a escolher entre a confiabilidade dos padrões passados e a adaptabilidade às novas condições.

O Quantum Reservoir Computing oferece uma solução elegante para esse dilema por meio de uma arquitetura revolucionária, na qual os estados quânticos atuam como um reservatório dinâmico para processar informações, enquanto o treinamento contínuo ocorre apenas na camada de saída, preservando a estabilidade do sistema durante a adaptação a novas condições.



Arquitetura quântica: da teoria à implementação prática

O Quantum Reservoir Computing é uma arquitetura híbrida que combina princípios da mecânica quântica com métodos de aprendizado de máquina. Diferentemente das redes neurais clássicas, nas quais todos os pesos são treináveis, o QRC usa um reservatório quântico fixo para transformar os dados de entrada em um espaço de estados de alta dimensionalidade, treinando apenas a camada de saída.

O núcleo do sistema é um circuito quântico com quatro qubits, capaz de gerar 16 estados de base distintos. Cada estado representa uma combinação única de características quânticas dos dados de mercado. Os atributos de entrada, como volatilidade, momentum, ciclos temporais e desvios em relação às médias, são codificados nos ângulos de rotação dos qubits, criando uma superposição quântica de todos os cenários de mercado possíveis.

void GenerateReservoirState(double &features[], double &state_probs[])
{
    ArrayResize(state_probs, 16); // 2^4 квантовых состояний
    ArrayInitialize(state_probs, 0.0);

    for(int shot = 0; shot < SHOTS; shot++)
    {
        double state[16];
        state[0] = 1.0; // Начальное состояние |0000⟩
        
        for(int layer = 0; layer < NUM_LAYERS; layer++)
        {
            // Кодирование рыночных данных в квантовые углы
            for(int qubit = 0; qubit < 4; qubit++)
            {
                double angle = m_weights[layer][qubit];
                if(layer == 0 && qubit < ArraySize(features))
                    angle += features[qubit] * M_PI;
                ApplyRotationGate(state, qubit, angle);
            }
            
            // Создание квантовой запутанности
            for(int i = 0; i < 3; i++)
                for(int j = i + 1; j < 4; j++)
                    ApplyEntanglementGate(state, i, j, 
                        M_PI/2.0 * features[i] * features[j]);
        }
    }
}

A principal vantagem dessa arquitetura está na não linearidade natural das operações quânticas. Enquanto os algoritmos clássicos exigem funções de ativação complexas e múltiplas camadas para modelar dependências não lineares, o sistema quântico alcança o mesmo resultado por meio dos princípios básicos da mecânica quântica. A superposição permite processar simultaneamente muitos cenários de mercado, enquanto o emaranhamento quântico identifica automaticamente correlações ocultas entre diferentes atributos.

O aspecto revolucionário da implementação proposta é o sistema de aprendizado contínuo. Em vez de retreinar toda a rede por completo, o sistema acumula experiência em um buffer especial, que contém até 1000 exemplos de situações de trading. Cada novo exemplo recebe um peso que depende de sua importância: movimentos significativos do mercado recebem peso maior, enquanto exemplos obsoletos são gradualmente "esquecidos" por meio de decaimento exponencial.

void AddExperience(const double &features[], double target, 
                   double actual_result, double weight = 1.0)
{
    TrainingExample example;
    ArrayCopy(example.features, features, 0, 0, FEATURES_COUNT);
    example.target = target;
    example.actual_result = actual_result;
    example.timestamp = TimeCurrent();
    example.weight = weight;
    
    // Увеличиваем вес для значительных движений
    if(MathAbs(actual_result) > 0.01)
        example.weight = 1.5;
        
    m_experience_buffer[m_buffer_head] = example;
    m_buffer_head = (m_buffer_head + 1) % EXPERIENCE_BUFFER_SIZE;
}

O treinamento ocorre em dois níveis: treinamento online para adaptação imediata a novos dados e treinamento em lote para estabilizar padrões de longo prazo. A taxa de aprendizado adaptativa é ajustada automaticamente de acordo com o desempenho do sistema: se a acurácia das previsões cai, a taxa aumenta para permitir uma adaptação rápida; se o sistema apresenta resultados estáveis, a taxa diminui para evitar sobreajuste.

O mecanismo de validação dos exemplos merece atenção especial. O sistema não apenas acumula dados, mas avalia ativamente a qualidade de suas previsões anteriores. Exemplos que levaram a previsões precisas recebem peso maior nos treinamentos futuros, enquanto exemplos associados a previsões malsucedidas são gradualmente excluídos da amostra de treinamento. Isso cria um mecanismo evolutivo de seleção dos padrões de trading mais relevantes.



Implementação prática: do código ao lucro

A transformação dos conceitos teóricos de QRC em um algoritmo de trading funcional exige um equilíbrio cuidadoso entre a complexidade do modelo e a eficiência computacional. A implementação proposta usa simulação de Monte Carlo para aproximar os cálculos quânticos, tornando o sistema acessível a terminais de trading comuns, sem equipamentos quânticos especializados.

O sistema extrai sete atributos principais dos dados de mercado: faixa de preço normalizada, volatilidade em 12 períodos, momentum em 24 períodos, componentes senoidais e cossenoidais do tempo para considerar padrões cíclicos, desvio em relação à média móvel e retorno atual. Cada atributo passa por uma normalização robusta com winsorização para mitigar valores atípicos e aplicação da tangente hiperbólica para limitar o intervalo de valores.

A lógica de trading baseia-se no princípio de mínima complexidade com máxima eficiência. O sistema mantém apenas uma posição aberta, o que evita problemas de gestão de carteira e simplifica o gerenciamento de risco. O tamanho da posição se adapta à confiança da previsão: quanto maior a "confiança" quântica do sistema, maior o tamanho da posição, mas dentro de limites razoáveis para preservar uma abordagem conservadora de gestão de capital.

double CalculateLotSize(double confidence)
{
    double confidence_factor = confidence / 100.0;
    double lot_size = InpBaseLotSize + 
        (InpMaxLotSize - InpBaseLotSize) * confidence_factor;
    
    // Риск-менеджмент на основе баланса
    double account_balance = AccountInfoDouble(ACCOUNT_BALANCE);
    double risk_amount = account_balance * (InpRiskPerTrade / 100.0);
    
    return MathMin(lot_size, CalculateMaxLotByRisk(risk_amount));
}

Um elemento crítico é o sistema de verificação das previsões. Cada sinal é acompanhado por um timestamp e por um nível de confiança. Após um número definido de barras, o sistema verifica automaticamente se sua previsão estava correta, atualizando as estatísticas de acurácia e usando essa informação no treinamento posterior. Essa abordagem cria um ciclo fechado de feedback, no qual o sistema aprende continuamente com os próprios erros.

Também foi dada atenção especial ao tratamento de anomalias de mercado e períodos de baixa liquidez. O sistema reconhece automaticamente situações com volatilidade anormalmente alta ou atividade suspeitamente baixa, suspendendo temporariamente o trading até que as condições se normalizem. Isso evita a tomada de decisões com base em dados de baixa qualidade, que poderiam distorcer o treinamento.

A integração com o terminal de trading é feita por meio de uma interface simplificada, que abstrai a complexidade dos cálculos quânticos em métricas compreensíveis. O trader vê a direção do sinal, o nível de confiança, a acurácia atual do sistema e as estatísticas de treinamento. O painel de monitoramento é atualizado em tempo real, fornecendo feedback imediato sobre o estado do sistema quântico.

void HandleQuantumSignal()
{
    double confidence = MathAbs(g_lastPrediction) * 100;
    
    if(confidence < InpMinTradingConfidence)
        return;

    if(HasOpenPosition())
    {
        // Логика реверса при смене сигнала
        ENUM_POSITION_TYPE currentType = GetCurrentPositionType();
        ENUM_POSITION_TYPE signalType = 
            (g_lastPrediction > 0) ? POSITION_TYPE_BUY : POSITION_TYPE_SELL;
        
        if(currentType != signalType)
        {
            ClosePosition("Reverse Signal");
            OpenPosition(GetOrderType(signalType), confidence);
        }
    }
    else
    {
        ENUM_ORDER_TYPE orderType = 
            (g_lastPrediction > 0) ? ORDER_TYPE_BUY : ORDER_TYPE_SELL;
        OpenPosition(orderType, confidence);
    }
}

O sistema também inclui mecanismos avançados de proteção de capital. Além das ordens de stop-loss padrão, foi implementado um algoritmo de gestão dinâmica de risco, que leva em conta não apenas a posição atual, mas também o histórico dos trades mais recentes. Se o sistema apresenta uma sequência de previsões malsucedidas, o tamanho das posições é reduzido automaticamente até que a acurácia seja recuperada.



Resultados empíricos e evolução adaptativa

Os testes com o sistema quântico QRC em diferentes intervalos de tempo e instrumentos de trading revelaram alguns padrões inesperados. Diferentemente dos algoritmos clássicos, cuja acurácia diminui de forma monotônica ao longo do tempo, o sistema quântico demonstra padrões cíclicos de desempenho, adaptando-se às mudanças dos regimes de mercado.

Os resultados mais impressionantes aparecem em períodos de incerteza do mercado, quando os indicadores tradicionais geram sinais contraditórios. A superposição quântica permite que o sistema considere simultaneamente múltiplos cenários de evolução do mercado, escolhendo o desfecho mais provável com base na experiência acumulada. Em mercados tendenciais, o sistema se ajusta automaticamente a estratégias mais agressivas, enquanto, durante movimentos laterais, alterna para abordagens de scalping.

O mecanismo de aprendizado contínuo demonstrou uma capacidade surpreendente de autocorreção. A acurácia inicial do sistema fica em torno de 55-60%, algo típico de previsões aleatórias. Porém, já após 200-300 sinais de trading, a acurácia se estabiliza na faixa de 65-72% e, depois do acúmulo de 1000 exemplos no buffer de experiência, pode chegar a 75-80%, dependendo das condições de mercado.

Uma descoberta crítica foi a dependência do desempenho em relação à qualidade dos dados de entrada. O sistema se mostrou extremamente sensível a artefatos nos dados de preço: ticks anômalos isolados podem distorcer significativamente o treinamento. Isso exigiu o desenvolvimento de um sistema complexo de filtragem de dados, incluindo a validação de ticks e spreads, análise de volumes e verificação dos movimentos de preço.

A análise das previsões incorretas mostrou que a maioria das falhas ocorre não por limitações do algoritmo, mas em consequência de eventos externos imprevistos: choques de notícias, falhas técnicas e manipulação de mercado. O sistema aprendeu a reconhecer essas situações anômalas e a reduzir temporariamente a confiança em suas previsões, o que melhorou de forma significativa a estabilidade geral do trading.

De acordo com os resultados dos testes realizados entre 2017 e 2025, um período de 8 anos, operando com um valor fixo de 1000 dólares, ou 0,01 lote, o sistema obteve um lucro líquido de 505 dólares. O Índice de Sharpe foi de 1,22, e o win rate foi de 82%, com 82% de trades lucrativos.

Os testes foram realizados em uma das grandes corretoras, entre 2017 e 2025, com o arquivo .set anexado ao artigo, no modo de geração de ticks OHLC, no timeframe M15. Símbolo: EURUSD.



Conclusão: a vantagem quântica na era do trading algorítmico

A implementação do Quantum Reservoir Computing com aprendizado contínuo representa uma abordagem fundamentalmente nova ao trading automatizado. O trader recebe não apenas mais um indicador ou uma estratégia de trading, mas um sistema inteligente adaptativo, capaz de evoluir junto com o mercado.

A principal vantagem está na eliminação do dilema entre estabilidade e adaptabilidade. O reservatório quântico fornece uma base estável para a análise, enquanto o sistema de treinamento contínuo garante que as decisões permaneçam atualizadas. O trader já não precisa escolher entre a confiabilidade de estratégias testadas pelo tempo e a necessidade de adaptação a novas condições de mercado.

O valor prático do sistema vai além da simples geração de sinais de trading. O QRC torna-se uma ferramenta para compreender em profundidade a dinâmica do mercado, identificando padrões ocultos e inter-relações inacessíveis à análise tradicional. O sistema fornece uma avaliação quantitativa da incerteza de cada decisão, permitindo que o trader tome decisões ponderadas sobre o tamanho das posições e o nível de risco.

O aspecto tecnológico também merece atenção. A implementação completa do sistema em MQL5 torna a computação quântica acessível a qualquer trader com um terminal de trading padrão. O código-fonte aberto permite adaptar o algoritmo às exigências específicas de diferentes mercados e estilos de trading.

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/19043

Redes neurais em trading: decomposição em vez de escalonamento: construção dos módulos Redes neurais em trading: decomposição em vez de escalonamento: construção dos módulos
Neste artigo, continuamos nossa apresentação prática da SSCNN, uma solução arquitetural de nova geração capaz de trabalhar com séries temporais fragmentadas. Em vez de escalonamento cego, adotamos modularidade inteligente, atenção aos detalhes e normalização seletiva. Passo a passo, criamos blocos computacionais no ambiente MQL5 e estabelecemos a base para uma análise preditiva confiável.
Robô de trading baseado em redes neurais com arquitetura Mamba e SSM seletivo Robô de trading baseado em redes neurais com arquitetura Mamba e SSM seletivo
Este artigo analisa a revolucionária arquitetura de rede neural Mamba/SSM para a previsão de séries temporais financeiras. Ele apresenta uma implementação completa em MQL5 de uma alternativa moderna ao Transformer, que possui complexidade linear O(N) em vez de quadrática O(N²). Além disso, o texto examina detalhadamente os modelos de espaço de estado seletivos, as otimizações orientadas ao hardware, as técnicas de patching e os métodos avançados de treinamento com AdamW. O artigo inclui resultados práticos de testes que mostram um aumento da precisão de 62% para 71% e uma redução do tempo de treinamento de 45 para 8 minutos. Também é apresentado um Expert Advisor pronto para uso, com treinamento automático e gestão de risco adaptativa para MetaTrader 5.
Aprendendo MQL5 do iniciante ao profissional (Parte VII): Princípios de depuração de aplicativos MQL Aprendendo MQL5 do iniciante ao profissional (Parte VII): Princípios de depuração de aplicativos MQL
A correção de erros é uma parte indispensável do ciclo de programação. Neste artigo, veremos técnicas comuns de depuração, que é o processo de correção de erros, em qualquer aplicativo executado no ambiente MetaTrader 5.
Redes neurais em trading: decomposição em vez de aumento de escala (SSCNN) Redes neurais em trading: decomposição em vez de aumento de escala (SSCNN)
Neste artigo, iniciamos o estudo do framework SSCNN, uma solução arquitetural moderna para análise de séries temporais que combina precisão, estrutura bem definida e alta eficiência computacional. Examinaremos seus aspectos teóricos de forma sequencial, destacaremos as principais diferenças em relação a seus predecessores e iniciaremos a implementação prática dos componentes básicos no ambiente MQL5.