Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Библиотека JSON для LLM - библиотека для MetaTrader 5

Просмотров:
231
Рейтинг:
(4)
Опубликован:
Обновлен:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Высокопроизводительный JSON (v3.5.0)

Библиотека JSON, разработанная для LLM, автономной торговли и сверхнизких задержек.

Проблема

При интеграции моделей искусственного интеллекта (GPT-4o, Claude 3.5, DeepSeek) в MetaTrader 5 стандартные библиотеки сообщества не справлялись с двумя критическими задачами: выделение памяти и задержка сериализации. Чрезмерное использование рекурсии и временных строк превратило обработку ответов ИИ (вызов функций) в узкие места, которые приводили к зависанию терминала. Именно "боль" от потери тиков при очистке строк сборщиком мусора послужила стимулом для создания этой архитектуры.

архитектура fast_json

Переписана с нуля с навязчивым вниманием к производительности:

  1. Zero-Allocation Architecture: парсинг через Tape (смежный буфер long[] ) и прямая сериализация в буфер uchar[] . Мы устраняем посредников: полезная нагрузка поступает из сокета прямо в структуру данных без создания тысяч объектов.
  2. Гибридный разбор чисел: в версии 3.4.0 мы ввели целочисленное накопление через long (родной ALU) и статические таблицы поиска Exp10 для максимальной точности при работе с плавающей точкой.
  3. Итеративная машина состояний: прощай рекурсия. Линейный парсер предотвращает переполнение стека даже в глубоко вложенных JSON.
  4. SWAR-сканирование: SIMD-чтение (8 байт за цикл) для пропуска пробельных символов и длинных строк.

Производительность

Тесты проводились на стандартном оборудовании (x64) со сложной полезной нагрузкой в 50 000 узлов:

Операция (fast_json) Legacy Lib (JAson) Преимущество
Разбор 137 мс 1540 мс 11.2x быстрее
Сериализация 264 мс 568 мс В 2,1 раза быстрее
Итого (туда и обратно) 401 мс 2129 мс В 5,3 раза быстрее

> Результаты можно проверить с помощью скрипта TestJsonBenchmark.mq5, входящего в комплект поставки.

Бенчмарк



Ключевые особенности

  • Устойчивость к HFT: детерминированное выделение памяти. Сборщик мусора не вмешивается в процесс разбора.
  • O(1) Интроспекция: проверка ключей HasKey() или массивов Size() мгновенно, без линейного сканирования.
  • Безопасность типов: строгий доступ к типам ( GetInt , GetDouble , GetString ). Никаких магических вариантов, которые приводят к тихим ошибкам.
  • Точный отчет об ошибках: в случае сбоя возвращает точные строки и столбцы.

Пример использования: Чтение ответа 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);
    }
}

Пример: Создание запроса (оптимизированный конструктор)

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

Разработан Джонатаном Перейрой в качестве основной инфраструктуры фреймворка AI-Toolkit.

Перевод с португальского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/pt/code/68596

Timeframe Quality Analyzer Timeframe Quality Analyzer

Найдите идеальный таймфрейм для торговли

WPR With TPSL WPR With TPSL

Индикатор WPR в окне графика с TPSL

SessionRangeBoxes SessionRangeBoxes

Рисует цветные рамки диапазонов для азиатской, лондонской и нью-йоркской сессий на любом графике. Включает панель статистики, показывающую средние диапазоны сессий в пунктах, и дополнительные оповещения о прорыве, когда цена выходит из коробки сессии.

WPR Monitoring MTF Trend WPR Monitoring MTF Trend

мониторинг различных тенденций временных рамок в одной временной рамке