English Русский 中文 Deutsch Português
preview
Implementación de un circuito cuántico para Quantum Reservoir Computing (QRC)

Implementación de un circuito cuántico para Quantum Reservoir Computing (QRC)

MetaTrader 5Sistemas comerciales |
31 0
Yevgeniy Koshtenko
Yevgeniy Koshtenko

El tráder actual se enfrenta a un dilema fundamental: cuanto más complejo se vuelve un sistema de trading, mayor es su propensión al sobreajuste. Los algoritmos clásicos de aprendizaje automático ofrecen resultados excelentes con datos históricos, pero fracasan estrepitosamente en la operativa real. Las redes neuronales, entrenadas con miles de ejemplos, se vuelven de repente inútiles ante el más mínimo cambio en las condiciones del mercado. Las máquinas de vectores de soporte (Support Vector Machines) muestran una precisión del 85 % en los backtests, pero generan pérdidas ya desde la primera semana de trading en vivo.

La raíz del problema va más allá de los detalles técnicos. Los mercados financieros son sistemas adaptativos en los que cada participante modifica constantemente su comportamiento en respuesta a las acciones de los demás. Cualquier estrategia basada en patrones estáticos del pasado está abocada al fracaso en un entorno que cambia constantemente. Los enfoques tradicionales del aprendizaje automático parten de la hipótesis de la estacionariedad de los datos, una suposición que, en el contexto de los mercados financieros, no solo es inexacta, sino fundamentalmente errónea.

Es más, la mayoría de los algoritmos de trading adolecen de «olvido catastrófico»: al entrenarse con datos nuevos, pierden por completo los conocimientos adquiridos anteriormente. Esto crea un círculo vicioso: o bien el sistema permanece estático y se queda obsoleto, o bien cae constantemente en el sobreajuste y pierde estabilidad. Los tráders se ven obligados a elegir entre la fiabilidad de los patrones del pasado y la capacidad de adaptación a las nuevas condiciones.

La computación de reservorio cuántico ofrece una solución elegante a este dilema mediante una arquitectura revolucionaria en la que los estados cuánticos actúan como un reservorio dinámico para el procesamiento de la información, y el aprendizaje continuo tiene lugar únicamente en la capa de salida, lo que mantiene la estabilidad del sistema mientras se adapta a nuevas condiciones.



Arquitectura cuántica: de la teoría a la implementación práctica

La computación de reservorio cuántico es una arquitectura híbrida que combina los principios de la mecánica cuántica con los métodos de aprendizaje automático. A diferencia de las redes neuronales clásicas, en las que todos los pesos se entrenan, QRC utiliza un reservorio cuántico fijo para transformar los datos de entrada en un espacio de estados de alta dimensionalidad y entrena únicamente la capa de salida.

El núcleo del sistema es un circuito cuántico de cuatro qubits, capaz de generar 16 estados de base diferentes. Cada estado representa una combinación única de características cuánticas de los datos de mercado. Las características de entrada —volatilidad, impulso, ciclos temporales, desviaciones respecto a las medias— se codifican en los ángulos de rotación de los qubits, creando una superposición cuántica de todos los escenarios de mercado posibles.

void GenerateReservoirState(double &features[], double &state_probs[])
{
    ArrayResize(state_probs, 16); // 2^4 estados cuánticos
    ArrayInitialize(state_probs, 0.0);

    for(int shot = 0; shot < SHOTS; shot++)
    {
        double state[16];
        state[0] = 1.0; // Estado inicial |0000⟩
        
        for(int layer = 0; layer < NUM_LAYERS; layer++)
        {
            // Codificación de datos de mercado en ángulos cuánticos
            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);
            }
            
            // Creación de entrelazamiento cuántico
            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]);
        }
    }
}

La ventaja clave de esta arquitectura radica en la no linealidad natural de las operaciones cuánticas. Mientras que los algoritmos clásicos requieren funciones de activación complejas y múltiples capas para modelar dependencias no lineales, el sistema cuántico logra el mismo resultado mediante los principios básicos de la mecánica cuántica. La superposición permite procesar simultáneamente múltiples escenarios de mercado, mientras que el entrelazamiento cuántico detecta automáticamente correlaciones ocultas entre diferentes características.

Un aspecto revolucionario de la implementación propuesta es el sistema de aprendizaje constante. En lugar de reentrenar por completo toda la red, el sistema acumula experiencia en un búfer especial que contiene hasta 1.000 ejemplos de situaciones de trading. Cada nuevo ejemplo recibe un peso que depende de su importancia: los movimientos de mercado significativos reciben un peso mayor, mientras que los ejemplos obsoletos se «olvidan» gradualmente mediante decaimiento 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;
    
    // Aumentamos el peso de los movimientos significativos
    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;
}

El aprendizaje se lleva a cabo en dos niveles: aprendizaje en línea para la adaptación inmediata a los nuevos datos y aprendizaje por lotes para estabilizar los patrones a largo plazo. La tasa de aprendizaje adaptativa se ajusta automáticamente en función del rendimiento del sistema: si la precisión de las predicciones disminuye, la tasa de aprendizaje aumenta para permitir una adaptación rápida; si el sistema muestra resultados estables, la tasa de aprendizaje disminuye para evitar el sobreajuste.

El mecanismo de validación de los ejemplos merece una atención especial. El sistema no solo recopila datos, sino que evalúa activamente la calidad de sus predicciones anteriores. Los ejemplos que han dado lugar a predicciones precisas reciben un peso mayor en el aprendizaje posterior, mientras que los asociados a predicciones erróneas se van excluyendo progresivamente del conjunto de entrenamiento. Esto crea un mecanismo evolutivo de selección de los patrones de trading más relevantes.



Implementación práctica: del código a los beneficios

La conversión de los conceptos teóricos de la computación de reservorio cuántico (QRC) en un algoritmo de trading funcional requiere un equilibrio minucioso entre la complejidad del modelo y la eficiencia computacional. La implementación propuesta utiliza la simulación de Monte Carlo para aproximar los cálculos cuánticos, lo que hace que el sistema sea accesible para terminales de trading convencionales sin necesidad de hardware cuántico especializado.

El sistema extrae siete características clave de los datos de mercado: el rango de precios normalizado, la volatilidad en 12 periodos, el impulso en 24 periodos, los componentes sinusoidales y cosinusoidales del tiempo para tener en cuenta los patrones cíclicos, la desviación respecto a la media móvil y la rentabilidad actual. Cada característica se somete a una normalización robusta con winsorización para eliminar valores atípicos, y se le aplica la tangente hiperbólica para limitar el rango de valores.

La lógica de trading se basa en el principio de mínima complejidad y máxima eficiencia. El sistema solo admite una posición abierta, lo que evita problemas de gestión de la cartera y simplifica la gestión de riesgos. El tamaño de la posición se adapta a la confianza de la predicción: cuanto mayor sea la «confianza» cuántica del sistema, mayor será el tamaño de la posición, aunque siempre dentro de límites razonables para mantener un enfoque conservador de gestión del capital.

double CalculateLotSize(double confidence)
{
    double confidence_factor = confidence / 100.0;
    double lot_size = InpBaseLotSize + 
        (InpMaxLotSize - InpBaseLotSize) * confidence_factor;
    
    // Gestión de riesgos basada en el saldo
    double account_balance = AccountInfoDouble(ACCOUNT_BALANCE);
    double risk_amount = account_balance * (InpRiskPerTrade / 100.0);
    
    return MathMin(lot_size, CalculateMaxLotByRisk(risk_amount));
}

Un elemento de vital importancia es el sistema de verificación de predicciones. Cada señal va acompañada de una marca temporal y un nivel de confianza. Después de un número determinado de barras, el sistema verifica automáticamente la corrección de su pronóstico, actualiza las estadísticas de precisión y utiliza esta información para el aprendizaje posterior. Este enfoque crea un ciclo cerrado de retroalimentación, en el que el sistema aprende constantemente de sus propios errores.

Se presta especial atención al procesamiento de las anomalías del mercado y de los periodos de baja liquidez. El sistema reconoce automáticamente situaciones de volatilidad anormalmente alta o de actividad sospechosamente baja, y suspende temporalmente el trading hasta que las condiciones se normalicen. Esto evita que se tomen decisiones basadas en datos poco fiables, que podrían distorsionar el proceso de aprendizaje.

La integración con el terminal de trading se realiza mediante una interfaz simplificada que oculta la complejidad de la computación cuántica tras métricas comprensibles. El tráder ve la dirección de la señal, el nivel de confianza, la precisión actual del sistema y las estadísticas de aprendizaje. El panel de monitorización se actualiza en tiempo real y proporciona retroalimentación inmediata sobre el estado del sistema cuántico.

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

    if(HasOpenPosition())
    {
        // Lógica de reversión al cambiar la señal
        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);
    }
}

El sistema también incluye mecanismos avanzados de protección del capital. Además de los stop-loss estándar, se ha implementado un algoritmo de gestión dinámica del riesgo que tiene en cuenta no solo la posición actual, sino también el historial de las últimas operaciones. Si el sistema registra una serie de predicciones incorrectas, el tamaño de las posiciones se reduce automáticamente hasta que se recupere la precisión.



Resultados empíricos y evolución adaptativa

Las pruebas realizadas con el sistema cuántico QRC en distintos intervalos temporales y con distintos instrumentos de trading revelaron varios patrones inesperados. A diferencia de los algoritmos clásicos, cuya precisión disminuye de forma monótona con el tiempo, el sistema cuántico muestra patrones cíclicos de rendimiento a medida que se adapta a los cambios en los regímenes de mercado.

El sistema ofrece sus resultados más impresionantes en periodos de incertidumbre del mercado, cuando los indicadores tradicionales emiten señales contradictorias. La superposición cuántica permite al sistema tener en cuenta simultáneamente múltiples escenarios posibles, eligiendo el resultado más probable basándose en la experiencia acumulada. En los periodos de tendencia marcada, el sistema se ajusta automáticamente a estrategias más agresivas, mientras que, durante los movimientos laterales, pasa a utilizar estrategias de scalping.

El mecanismo de aprendizaje continuo ha demostrado una sorprendente capacidad de autocorrección. La precisión inicial del sistema se sitúa entre el 55 % y el 60 %, lo cual es habitual en las predicciones aleatorias. Sin embargo, tras unas 200-300 señales de trading, la precisión se estabiliza en el 65-72 % y, tras acumular 1.000 ejemplos en el búfer de experiencia, puede alcanzar el 75-80 %, dependiendo de las condiciones del mercado.

Un hallazgo de vital importancia fue la dependencia del rendimiento respecto de la calidad de los datos de entrada. El sistema resultó ser extremadamente sensible a los artefactos en los datos de precios: incluso ticks anómalos aislados pueden distorsionar considerablemente el proceso de aprendizaje. Esto requirió el desarrollo de un complejo sistema de filtrado de datos, que incluía la comprobación de la validez de los ticks y los spreads, el análisis de los volúmenes y la verificación de los movimientos de precios.

El análisis de las predicciones erróneas ha mostrado que la mayoría de los errores no se deben a deficiencias del algoritmo, sino a acontecimientos externos imprevistos: shocks por noticias, fallos técnicos o manipulaciones del mercado. El sistema ha aprendido a detectar este tipo de situaciones anómalas y a reducir temporalmente el nivel de confianza en sus predicciones, lo que ha mejorado considerablemente la estabilidad general de la operativa.

Según los resultados de las pruebas realizadas entre 2017 y 2025 (8 años), al operar con un importe fijo de 1.000 dólares (0,01 lote), se logró obtener un beneficio neto de 505 dólares. El coeficiente de Sharpe fue de 1,22 y la tasa de acierto, del 82 % de operaciones rentables.

Las pruebas se llevaron a cabo con uno de los principales brókeres, durante el periodo 2017-2025, con el archivo .set adjunto al artículo, en modo de generación de ticks OHLC y en el marco temporal M15. Símbolo: EURUSD.



Conclusión: la ventaja cuántica en la era del trading algorítmico

La implementación de la computación de reservorio cuántico con aprendizaje continuo supone un enfoque fundamentalmente nuevo para el trading automatizado. El tráder no obtiene simplemente otro indicador ni otra estrategia de trading, sino un sistema inteligente adaptativo capaz de evolucionar junto con el mercado.

La ventaja clave radica en eliminar el dilema entre estabilidad y adaptabilidad. El reservorio cuántico proporciona una base estable para el análisis, mientras que el sistema de aprendizaje continuo garantiza la pertinencia de las decisiones. El tráder ya no se ve obligado a elegir entre la fiabilidad de las estrategias probadas a lo largo del tiempo y la necesidad de adaptarse a las nuevas condiciones del mercado.

El valor práctico del sistema va más allá de la simple generación de señales de trading. La computación de reservorio cuántico (QRC) se convierte en una herramienta para comprender en profundidad la dinámica del mercado, al revelar patrones ocultos e interrelaciones inaccesibles para el análisis tradicional. El sistema ofrece una evaluación cuantitativa de la incertidumbre de cada decisión, lo que permite al tráder tomar decisiones ponderadas sobre el tamaño de las posiciones y el nivel de riesgo.

El aspecto tecnológico también merece atención. La implementación completa del sistema en MQL5 pone la computación cuántica al alcance de cualquier tráder que disponga de un terminal de trading estándar. El código abierto permite adaptar el algoritmo a los requisitos específicos de distintos mercados y estilos de trading.

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/19043

Redes neuronales en el trading: descomposición en lugar de escalado — Construcción de módulos Redes neuronales en el trading: descomposición en lugar de escalado — Construcción de módulos
En este artículo continuamos la familiarización práctica con SSCNN: una solución arquitectónica de nueva generación capaz de trabajar con series temporales fragmentadas. En lugar de un escalado indiscriminado: modularidad inteligente, atención al detalle y normalización selectiva. Paso a paso, creamos bloques computacionales en el entorno MQL5 y sentamos las bases para un análisis predictivo fiable.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 31): Motor de reconocimiento de velas japonesas en Python (I) — Detección manual Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 31): Motor de reconocimiento de velas japonesas en Python (I) — Detección manual
Los patrones de velas japonesas son fundamentales para el trading basado en la evolución de los precios, ya que ofrecen información valiosa sobre posibles reversiones o continuaciones del mercado. Imagina una herramienta fiable que supervise continuamente cada nueva barra de precios, identifique formaciones clave como los patrones envolvente, martillo, doji y estrella, y te avise de inmediato cuando detecte una oportunidad de negociación significativa. Esta es precisamente la funcionalidad que hemos desarrollado. Tanto si eres nuevo en el mundo del trading como si eres un profesional con experiencia, este sistema ofrece alertas en tiempo real sobre patrones de velas japonesas, lo que te permite centrarte en ejecutar operaciones con mayor confianza y eficiencia. Sigue leyendo para descubrir cómo funciona y cómo puede mejorar tu estrategia de trading.
Particularidades del trabajo con números del tipo double en MQL4 Particularidades del trabajo con números del tipo double en MQL4
En estos apuntes hemos reunido consejos para resolver los errores más frecuentes al trabajar con números del tipo double en los programas en MQL4.
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias (3) — Política de votación ponderada Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 8): Análisis de múltiples estrategias (3) — Política de votación ponderada
Este artículo analiza por qué determinar el número óptimo de estrategias en un conjunto puede ser una tarea compleja y cómo el optimizador genético de MetaTrader 5 facilita su resolución. MQL5 Cloud también se utiliza como recurso clave para acelerar las pruebas retrospectivas y la optimización. En síntesis, nuestro análisis aquí sienta las bases para desarrollar modelos estadísticos que permitan evaluar y mejorar las estrategias de negociación a partir de nuestros resultados iniciales del conjunto de estrategias.