Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 73
- Avaliação:
- Publicado:
- Atualizado:
-
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:
- 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.
- Iterative Parser: Substituí a recursão por uma máquina de estados iterativa, prevenindo Stack Overflow mesmo em JSONs profundamente aninhados.
- 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 |
> 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
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
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
O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.
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.
