und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 82
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Leistungsstarkes JSON (v3.5.0)
Eine JSON-Bibliothek, die für LLMs, autonomen Handel und extrem niedrige Latenzzeiten entwickelt wurde.
Das Problem
Bei der Integration von AI-Modellen (GPT-4o, Claude 3.5, DeepSeek) in MetaTrader 5 versagten die Standardbibliotheken der Community in zwei kritischen Punkten: Speicherzuweisung und Serialisierungslatenz. Die übermäßige Verwendung von Rekursionen und temporären Strings machte die Verarbeitung von KI-Antworten (Funktionsaufrufe) zu Engpässen, die das Terminal einfrieren ließen. Der "Schmerz", Ticks zu verlieren, während der Garbage Collector Strings löscht, war der Grund für diese Architektur.
fast_json-Architektur
Von Grund auf neu geschrieben mit dem Fokus auf Leistung:
- Zero-Allocation-Architektur: Parsing über Tape (zusammenhängender Puffer long[] ) und direkte Serialisierung in Puffer uchar[] . Wir eliminieren Zwischenstationen: Die Nutzdaten werden vom Socket direkt in die Datenstruktur übertragen, ohne dass Tausende von Objekten erstellt werden müssen.
- Hybrides Numeric Parsing: In v3.4.0 haben wir die Integer-Akkumulation über long (native ALU) und statische Exp10-Nachschlagetabellen für maximale Präzision bei Fließkommazahlen eingeführt.
- Iterative State Machine: Rekursion ade. Ein linearer Parser verhindert Stack Overflow selbst bei tief verschachtelten JSONs.
- SWAR-Scanning: SIMD-Lesen (8 Byte pro Zyklus) zum Überspringen von Leerzeichen und langen Strings.
Leistung
Die Tests wurden auf Standard-Hardware (x64) mit einer komplexen Nutzlast von 50.000 Knoten durchgeführt:
| Vorgang | (fast_json) | Ältere Lib (JAson) | Vorteil |
|---|---|---|---|
| Parsen | 137 ms | 1540 ms | 11,2x schneller |
| Serialisierung | 264 ms | 568 ms | 2,1x schneller |
| Insgesamt (Roundtrip) | 401 ms | 2129 ms | 5,3x schneller |
> Ergebnisse überprüfbar mit dem im Paket enthaltenen Skript TestJsonBenchmark.mq5.
Wichtigste Merkmale
- HFT-Resilienz: Deterministische Speicherzuweisung. Garbage Collector greift während des Parsens nicht ein.
- O(1) Introspektion: Überprüfen Sie HasKey()-Schlüssel oder Size()-Arrays sofort, ohne lineares Scannen.
- Typsicherheit: Strenger Typenzugriff ( GetInt , GetDouble , GetString ). Keine magischen Varianten, die stille Bugs verursachen.
- Genaue Fehlerberichterstattung: Im Falle eines Fehlers werden genau Row und Column zurückgegeben.
Verwendungsbeispiel: Lesen der OpenAI-Antwort
#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);
}
}
Beispiel: Anfrage erstellen (Optimierter 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
Entwickelt von Jonathan Pereira als Kerninfrastruktur des AI-Toolkit Frameworks.
Übersetzt aus dem Portugiesischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/pt/code/68596
Timeframe Quality Analyzer
Den perfekten Zeitrahmen für den Handel finden
VR Rsi Robot - Multi-Timeframe Trading-Strategie
Nur zwei Zeitrahmen — H1 und D1 — arbeiten synchron, um Rauschen herauszufiltern und nur starke RSI-Umkehrungen aus überkauften und überverkauften Zonen zu erfassen. Keine zufälligen Einstiege, nur eine klare Richtungsbestätigung vom "großen Bruder".
NeuroPro Konverter
NeuroPro Verbalisierungskonverter für MQL5
SessionRangeBoxes
Zeichnet farbige Bereichsboxen für die asiatischen, Londoner und New Yorker Sitzungen auf jedem Diagramm. Enthält ein Statistikfeld, das die durchschnittlichen Sitzungsspannen in Pips anzeigt, sowie optionale Ausbruchswarnungen, wenn der Preis eine Sitzungsbox verlässt.

