Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

JSON Library for LLMs - biblioteca para MetaTrader 5

Visualizações:
73
Avaliação:
(1)
Publicado:
Atualizado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

High-Performance JSON

Uma biblioteca JSON projetada para uso massivo de LLMs e menor latência.

O Problema

Ao integrar modelos de IA (Modelos GPT(4/4o/5), DeepSeek, Llama), senti na pele a limitação da bib

lioteca JSON padrão da comunidade (JAson). O uso excessivo de recursão e alocações dinâmicas transformava o processamento de grandes payloads em um pesadelo de performance, causando congelamentos frequentes no terminal. Essa "dor" técnica — a instabilidade em momentos críticos — foi o que me motivou a projetar esta nova versão.

O módulo fast_json.mqh foi escrito do zero no final de 2022 trazendo uma nova arquitetura:

  1. Zero-Allocation Tape: Em vez de criar milhares de pequenos objetos na memória, utilizei um único buffer contíguo ( long[] ). Isso elimina a fragmentação de memória e alivia o Garbage Collector.
  2. Iterative Parser: Substituí a recursão por uma máquina de estados iterativa, prevenindo Stack Overflow mesmo em JSONs profundamente aninhados.
  3. SWAR Scanning: Implementação de leitura SIMD (8 bytes por vez) para processamento de strings em ultra-velocidade.

Além da performance, a versão foca na resiliência:

  • Proteção Stack Overflow: Detecta e aborta aninhamentos abusivos (> 512 níveis) antes de derrubar o terminal.
  • Contexto de Erro: Reporta exatamente a Linha e Coluna onde o parser falhou, facilitando o debug de JSONs quebrados.
  • Pretty Print: Serializador com suporte a indentação humana ( Serialize(true) ).

Performance (Benchmark)

Testes realizados em ambiente controlado (50.000 iterações em Payload Complexo) demonstram consistentemente:

Operação AI-Toolkit Legacy Lib (JAson) Diferença
Parse 137ms 1540ms 11.2x mais rápido
Serialização 264ms 568ms 2.1x mais rápido
Total (Roundtrip) 421ms 2129ms 5.0x mais rápido

Benchmarck

> Resultados obtidos em hardware padrão (x64) via script TestJsonBenchmark.mq5.

Principais Recursos

  • Compliance RFC 8259: Tratamento correto de caracteres de controle e Unicode ( \uXXXX ), essencial para respostas de IA em múltiplos idiomas.
  • Introspecção O(1): Métodos Size() , HasKey(key) otimizados com hash table interna, enquanto bibliotecas legadas recorrem a busca linear O(N).
  • Fluent Builder: API CJsonBuilder para construção de JSONs complexos de forma limpa e segura.
  • Segurança: Parsing imutável (não corrompe o buffer de origem) e validação de tipos estrita.
#include <fast_json.mqh>  //Ajustar caminho conforme sua instalação

void OnStart() {
    string payload = GetOpenAIResponse(); // Retorna JSON gigante
    
    CJson json;
    if(json.Parse(payload)) {
        // Acesso direto performance-critical
        string content = json["choices"][0]["message"]["content"].ToString();
        
        // Verificação segura
            Print("Tokens: ", json["usage"]["total_tokens"].ToInt());
        }
    } else {
        // Debug de Erros com precisão
        int l, c;
        json.GetErrorPos(l, c);
        PrintFormat("Erro JSON na Linha %d, Coluna %d", l, c);
    }
    
    // Pretty Print para Logs
    Print(json.Serialize(true));
}

2. Construção de Request (Builder)

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

string body = b.Build();

Desenvolvido por Jonathan Pereira como parte do framework AI-Toolkit.

iCrosshair - Real-Time Candle Metrics on Hover iCrosshair - Real-Time Candle Metrics on Hover

Passe o mouse sobre qualquer candle para ver o que o MT5 não mostra: Tamanho do intervalo, porcentagem de corpo, proporções de pavio. Inteligente, rápido e personalizável.

Price Action Dynamic Exit Strategy - Profit Shield pro Price Action Dynamic Exit Strategy - Profit Shield pro

Considere-o um guardião dos lucros ou um detector de reversão do mercado. É um script que funciona como uma rede de segurança para proteger os lucros quando você estiver ausente. Em vez de apenas esperar por um nível fixo de Take Profit, ele monitora o comportamento do preço e fecha a negociação se ele mostrar sinais de reversão antes de atingir seu Take Profit.

Accumulation/Distribution Accumulation/Distribution

O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.