Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если вы хотите отправить Pull Request с этими оптимизациями (или другими, которые вы можете найти), я буду более чем счастлив рассмотреть и объединить их. Всегда приятно сотрудничать с человеком, который глубоко разбирается в технических тонкостях.
В настоящее время мой "реальный" объем работы состоит из LLM API Responses (OpenAI/Anthropic), которые представляют собой глубоко вложенные JSON-структуры, отражающие контекст разговора и вызов функций, а не просто большие плоские массивы данных о тиках.
Это из-за MQL5 такое большое отставание в производительности по сравнению с другими реализациями?
Да, безусловно.
1. Отсутствие интринсиков SIMD:
Библиотеки типа simdjson достигают скорости 4 ГБ/с, обрабатывая 32 или 64 байта за цикл процессора с помощью инструкций AVX-512. В MQL5 нет возможности использовать SIMD-векторы. Моя реализация "SWAR" - это программная имитация SIMD (сканирование 8 байт за раз с помощью ulong ), которая умна, но на порядки медленнее аппаратного SIMD.
2. Проверка границ и безопасность:
MQL5 заставляет проверять границы массива при каждом доступе. В C++ вы можете использовать необработанные указатели, чтобы перемещаться по памяти со скоростью пропускной способности оперативной памяти. В MQL5 каждый буфер[i] несет на себе накладные расходы ВМ по проверке того, что i находится в пределах границ.
3. Модель памяти:
MQL5 не позволяет использовать пользовательские аллокаторы или арифметику указателей. fast_json достигает 300 МБ/с, борясь с языком - используя один большой массив, чтобы обойти GC. Для управляемого языка 300 МБ/с - это очень высокий результат (сравнимый со многими парсерами Java/C# до появления Span<T>).
Так что да, потолок - это среда выполнения. Чтобы работать быстрее, MetaQuotes должен дать нам void* и встроенные Asm/Intrinsics.
Спасибо. Я не программист, поэтому до сих пор не разобрался с Git'ом.
Справедливо. Если вы "не программист" с таким уровнем понимания оптимизаций компилятора и конвейеров процессора, то я просто искушенный тостер. 😂🤣
Я буду следить за комментариями здесь. Ваше понимание ценно, независимо от ярлыка. Спасибо!
Расскажите, пожалуйста, как вы используете эти данные в MetaTrader?
Парсер JSON на самом деле является подкомпонентом более крупного проекта: AI-Toolkit - нативного MQL5-фреймворка, который я разработал для интеграции больших языковых моделей непосредственно в терминал, без Python, DLL и мостов.
Вот упрощенная версия того, как автономный агент работает внутри эксперта:
Именно для этого и был создан fast_json: высокоскоростная сериализация/десериализация в этом узком цикле между терминалом и LLM API.
Я планирую выпустить полный AI-Toolkit с открытым исходным кодом в ближайшее время.
Так что да, потолок - это среда выполнения.
В ближайшее время я планирую выпустить полный AI-Toolkit с открытым исходным кодом.
Если у меня появятся предложения или замечания, я оставлю их в комментариях.
Разве это не излишество?
Вы можете удалить условие из цикла.