Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Vues:
29
Note:
(2)
Publié:
\MQL5\Include\
JAson.mqh (30.59 KB) afficher
fast_json.mqh (39.86 KB) afficher
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

JSON haute performance (v3.5.0)

Une bibliothèque JSON conçue pour les LLM, le trading autonome et l'ultra faible latence.

Le problème

Lors de l'intégration de modèles d'IA (GPT-4o, Claude 3.5, DeepSeek) dans MetaTrader 5, les bibliothèques standard de la communauté ont échoué sur deux points critiques : l'allocation de mémoire et la latence de sérialisation. L'utilisation excessive de la récursivité et des chaînes temporaires a transformé le traitement des réponses de l'IA (appel de fonction) en goulots d'étranglement qui ont gelé le terminal. La "douleur" de perdre des ticks pendant que le Garbage Collector nettoyait les chaînes de caractères est ce qui a motivé cette architecture.

Architecture fast_json

Réécrite à partir de zéro avec un souci obsessionnel de performance :

  1. Architecture à allocation zéro: analyse via Tape (tampon contigu long[] ) et sérialisation directe dans le tampon uchar[] . Nous éliminons les intermédiaires : la charge utile passe directement de la prise à la structure de données sans créer des milliers d'objets.
  2. Analyse numérique hybride: dans la version 3.4.0, nous avons introduit l'accumulation d'entiers via long (ALU native) et les tables de recherche statiques Exp10 pour une précision maximale en virgule flottante.
  3. Machine d'état itérative: adieu la récursion. Un analyseur linéaire permet d'éviter les débordements de pile, même dans les JSON profondément imbriqués.
  4. Analyse SWAR: lecture SIMD (8 octets par cycle) pour ignorer les espaces blancs et les longues chaînes de caractères.

Performances

Tests effectués sur du matériel standard (x64) avec une charge utile complexe de 50 000 nœuds :

Opération (fast_json) Ancienne librairie (JAson) Avantage
Analyse 137 ms 1540 ms 11,2 fois plus rapide
Sérialisation 264 ms 568 ms 2,1x plus rapide
Total (aller-retour) 401 ms 2129 ms 5.3x plus rapide

> Résultats vérifiables via le script TestJsonBenchmark.mq5 inclus dans le package.

Repère



Caractéristiques principales

  • Résilience HFT: Allocation de mémoire déterministe. Le ramasse-miettes n'intervient pas pendant l'analyse.
  • Introspection O(1): vérification des clés HasKey() ou des tableaux Size() instantanément, sans balayage linéaire.
  • Sécurité des types: accès strict aux types ( GetInt , GetDouble , GetString ). Pas de variantes magiques qui provoquent des bogues silencieux.
  • Rapport d'erreur précis: en cas d'échec, renvoie la ligne et la colonne exactes.

Exemple d'utilisation : lecture de la réponse de l'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);
    }
}

Exemple : Construction d'une requête (Optimised Builder)

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

Développé par Jonathan Pereira en tant qu'infrastructure de base du cadre AI-Toolkit.

Traduit du portugais par MetaQuotes Ltd.
Code original : https://www.mql5.com/pt/code/68596

Timeframe Quality Analyzer Timeframe Quality Analyzer

Trouver la période idéale pour trader

VR Rsi Robot - Stratégie de trading multi-timeframes VR Rsi Robot - Stratégie de trading multi-timeframes

Seulement deux timeframes — H1 et D1 — travaillent en synergie pour filtrer le bruit et capturer uniquement les forts retournements du RSI depuis les zones de surachat et de survente. Pas d'entrées aléatoires, seulement une confirmation claire de la direction par le "grand frère".

OHLCMTF Scalper EA - Multi-Timeframe Price Action OHLCMTF Scalper EA - Multi-Timeframe Price Action

A strict Multi-Timeframe Price Action Expert Advisor that trades based on precise OHLC conditions across different timeframes simultaneously. It features pending order entries, role reversals, and dynamic risk management without using any lagging indicators.

Convertisseur NeuroPro Convertisseur NeuroPro

Convertisseur de verbalisation NeuroPro pour MQL5