Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
140
Ranking:
(5)
Publicado:
Actualizado:
\MQL5\Include\
JAson.mqh (30.59 KB) ver
fast_json.mqh (39.86 KB) ver
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

JSON de alto rendimiento (v3.5.0)

Una biblioteca JSON diseñada para LLM, comercio autónomo y latencia ultrabaja.

El Problema

Al integrar modelos de IA (GPT-4o, Claude 3.5, DeepSeek) en MetaTrader 5, las librerías estándar de la comunidad fallaban en dos puntos críticos: Asignación de memoria y Latencia de serialización. El uso excesivo de recursividad y cadenas temporales convirtió el procesamiento de las respuestas de la IA (Llamada a Funciones) en cuellos de botella que congelaban el terminal. El "dolor" de perder ticks mientras el Garbage Collector limpiaba cadenas fue lo que motivó esta arquitectura.

arquitectura fast_json

Reescrita desde cero con un enfoque obsesivo en el rendimiento:

  1. Arquitectura de Asignación Cero: Parseo vía Cinta (buffer contiguo long[] ) y Serialización Directa en buffer uchar[] . Eliminamos intermediarios: la carga útil va del socket directamente a la estructura de datos sin crear miles de objetos.
  2. Análisis numérico híbrido: En v3.4.0, hemos introducido la acumulación de enteros mediante long (ALU nativa) y tablas de consulta estáticas Exp10 para obtener la máxima precisión en puntos flotantes.
  3. Máquina de estados iterativa: adiós a la recursión. Un analizador lineal evita Stack Overflow incluso en JSONs profundamente anidados.
  4. Análisis SWAR: lectura SIMD (8 bytes por ciclo) para omitir espacios en blanco y cadenas largas.

Rendimiento

Pruebas realizadas en hardware estándar (x64) con una carga útil compleja de 50.000 nodos:

Operación (fast_json) Lib. heredada (JAson) Ventaja
Parse 137 ms 1540 ms 11,2 veces más rápido
Serialización 264 ms 568 ms 2,1 veces más rápido
Total (ida y vuelta) 401 ms 2129 ms 5,3 veces más rápido

> Resultados verificables mediante el script TestJsonBenchmark.mq5 incluido en el paquete.

Punto de referencia



Características principales

  • Resistencia HFT: Asignación de memoria determinista. El recolector de basura no interviene durante el análisis sintáctico.
  • Introspección O(1): Comprobación instantánea de claves HasKey() o matrices Size(), sin escaneo lineal.
  • Seguridad de tipos: Acceso estricto a tipos ( GetInt , GetDouble , GetString ). Sin variantes mágicas que causan bugs silenciosos.
  • Informe preciso de errores: En caso de fallo, devuelve la fila y columna exactas.

Ejemplo de uso: Lectura de la respuesta de OpenAI

#include <fast_json.mqh>

void OnStart() {
    string payload = GetOpenAIResponse(); // JSON massivo
    
    CJson json;
    if(json.Parse(payload)) {
        // Acesso direto performance-critical (Zero-Copy)
        string content = json["choices"][0]["message"]["content"].ToString();
        
        // Exemplo: Extraindo uso de tokens
        if(json.HasKey("usage")) {
            long tokens = json["usage"]["total_tokens"].ToInt();
            Print("Consumo: ", tokens);
        }
    } else {
        // Debug preciso
        int l, c;
        json.GetErrorPos(l, c);
        PrintFormat("Erro JSON na Linha %d, Coluna %d", l, c);
    }
}

Ejemplo: Construyendo Petición (Constructor Optimizado)

CJsonBuilder b;
b.Obj()
    .Key("model").Val("gpt-4-turbo")
    .Key("messages").Arr()
        .Obj()
            .Key("role").Val("user")
            .Key("content").Val("Analyze EURUSD H1 trend")
        .EndObj()
    .EndArr()
    .Key("temperature").Val(0.7)
.EndObj();

string body = b.Serialization(); // Serialização ultra-rápida

Desarrollado por Jonathan Pereira como infraestructura central del framework AI-Toolkit.

Traducción del portugués hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/pt/code/68596

Timeframe Quality Analyzer Timeframe Quality Analyzer

Encuentre el marco temporal perfecto para operar

VR Rsi Robot - Estrategia de trading multi-timeframe VR Rsi Robot - Estrategia de trading multi-timeframe

Solo dos marcos de tiempo — H1 y D1 — trabajan sincrónicamente para filtrar el ruido y capturar únicamente los fuertes giros del RSI desde zonas de sobrecompra y sobreventa. Nada de entradas aleatorias, solo una clara confirmación de la dirección por parte del "hermano mayor".

Convertidor NeuroPro Convertidor NeuroPro

Convertidor de verbalización NeuroPro para MQL5

SessionRangeBoxes SessionRangeBoxes

Dibuja recuadros de colores para las sesiones de Asia, Londres y Nueva York en cualquier gráfico. Incluye un panel de estadísticas que muestra los rangos medios de la sesión en pips y alertas opcionales de ruptura cuando el precio sale de un cuadro de sesión.