Vigiar
1
0
Derivar
Você já tinha feito uma derivação do repositório JsonParserByLeo, anteriormente
0
JsonParserByLeo/Test/Ben/BenClaude.mq5
2026-10-18 17:51:52 -05:00
//+------------------------------------------------------------------+
//| BenAi.mq5 |
//| Copyright 2026, Niquel Mendoza. |
//| https://www.mql5.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, Niquel Mendoza."
#property link "https://www.mql5.com/"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//#define JSONBENCH_RUN_PARSE
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#include "Def.mqh"
#include "..\\Other\\ClaudeJson.mqh"
#define LIBNAME "ClaudeFableJson-3+Pass"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
// Notas
// Creo que ninguna la ia aqui de claude trabajo bien
// Experiencia de desaroolo
/*
Desde mi punto de vista sincamtne creo qeu es quizas de los mejores modelos en MQL5.. que uno pueda
usar ahora mismo en 2026...
Pero ciertamente si compras la experiendcia de desarollo con CPP se nota que el modelo sabe "menos trucos"
o csas mas espcificas de mql5 o del lengauje... o como hace "x" cosa de la forma mas eficnte mql5
adpatanocos a sus limitaciones.. si no qeu es "mas general" con soluciones "mas generales" pese a que le digas
que optimize.... aparte note qeu al no haber mucho contenido con el cual se hayan entrneando y lamaotira de dicho
contenido con el qeu se entrenaon no es de buena calidad (si lo comparasmo con libs serias de json)
etnoces claude por lo visto tiene a aplicar una idea "general" de como hacer un json json en mq5 de forma rapida
como los concpetos "generales" o basicos dado qeu como no hay una lib "#fast" con la que se haya entrenado entonces eso
Creo qeu esuna limtacion de todos estos modelo sLLm en mql5 y no los culp el lengauje es hostil...
y nicho.. asi que si compras su rencimient con cpp y mql5 veras que en mql5 cualqiue ia rinde peor
se equivoca, o hace las coas "bien" pero mejorables siempre.. .. osea en reumen que en mql5 tiene a ser muy general
y no sabe mucho otpimzar en mql5 solo aplica lo "general" en camibo en cpp\web ahi si...
Ahora sobre su json lo estuve viendo y esta iben sinamtne buen maneja o de rreos etc...
sincmnte podria tirarmen aqui una hora quizas viendo cada punto y que se peude merjoar
pro qeu a simpel vista hay muchas cosas uqe se peuden mejorar... por esjemplo el tape.. y asi un monton..
*/
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
CJson json;
//--- Parseo
#ifdef JSONBENCH_RUN_PARSE
ArrayCopy(json.Buffer, g_json_data, 0, 0);
//Sleep(10);
ulong a = GetMicrosecondCount();
for(int i = 0; i < JSONBENCH_TOTAL_ITER_PARSE; i++)
{
json.Parse();
}
ulong b = GetMicrosecondCount();
//Sleep(250);
Print("@", (b - a));
//---
#else // JSONBENCH_RUN_PARSE
//--- previa
json.ParseText(g_json_test_access);
JsonNode root = json.Root();
//---
string keys[];
JsonNode wide_object = root["wide_object"];
const int n = wide_object.Count();
ArrayResize(keys, n);
for(int i = 0; i < n; i++)
{
keys[i] = json.NodeKey(wide_object[i].m_idx);
}
//-- Random
TSN::CRandom<Xoshiro256> xo;
xo.Seed(JSONBENCH_ACCESO_XHOR_SEED);
// init
double sump = 0.0, profit = 0.0;
long tin = 0;
//--
ulong a = GetMicrosecondCount();
for(int i = 0; i < JSONBENCH_TOTAL_ITER_ACCESO; i++)
{
const string key = keys[xo.RandomInteger(0, n)];
root["wide_object"][key];
}
ulong b = GetMicrosecondCount();
Sleep(100);
JSONBENCH_ACCES_CALL(JSONBENCH_TAGOP_ACCESO_WIDE)
a = GetMicrosecondCount();
for(int i = 0; i < JSONBENCH_TOTAL_ITER_ACCESO; i++)
{
root["deep_object"]["l1"]["l2"]["l3"]["l4"]["l5"]["l6"]["l7"]["l8"]["l9"]["l10"]["target"].ToString();
}
b = GetMicrosecondCount();
Sleep(100);
JSONBENCH_ACCES_CALL(JSONBENCH_TAGOP_ACCESO_DEEP)
a = GetMicrosecondCount();
for(int i = 0; i < JSONBENCH_TOTAL_ITER_ACCESO; i++)
{
const int index = xo.RandomInteger(0, 10000);
tin += root["large_array"].At(index).ToInteger(0);
}
b = GetMicrosecondCount();
Sleep(100);
JSONBENCH_ACCES_CALL(JSONBENCH_TAGOP_ACCESO_LARGE_ARR)
a = GetMicrosecondCount();
for(int k = 0; k < 500; k++)
{
sump += root["array_of_objects"].At(k)["price"].ToDouble(0.0);
profit += root["array_of_objects"].At(k)["profit"].ToDouble(0.0);
const int s = root["array_of_objects"].At(k)["tags"].Size();
tin += StringLen(root["array_of_objects"].At(k)["tags"].At(k % s).ToString());
}
b = GetMicrosecondCount();
Sleep(100);
JSONBENCH_ACCES_CALL(JSONBENCH_TAGOP_ACCESO_MIX)
//----
PrintFormat("sump=%.2f profit=%.2f tin=%d ", sump, profit, tin);
//---
JSONBENCH_FINISH
#endif // JSONBENCH_RUN_PARSE
//--
}
//+------------------------------------------------------------------+
/*
2026.08.28 11:07:00.408 BenClaude (EURUSD,H1) @1171187
2026.08.28 11:07:02.956 BenClaude (EURUSD,H1) @1114912
2026.08.28 11:07:08.898 BenClaude (EURUSD,H1) @1142771
2026.08.28 11:07:14.821 BenClaude (EURUSD,H1) @1114773
2026.10.03 15:13:37.554 BenClaude (EURUSD,H1) [acceso-wide] Time: 311
2026.10.03 15:13:37.665 BenClaude (EURUSD,H1) [acceso-deep] Time: 937
2026.10.03 15:13:37.778 BenClaude (EURUSD,H1) [acceso-array-large] Time: 9758
2026.10.03 15:13:37.888 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 956
2026.10.03 15:13:37.888 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4927909
2026.10.03 15:13:49.684 BenClaude (EURUSD,H1) [acceso-wide] Time: 312
2026.10.03 15:13:49.796 BenClaude (EURUSD,H1) [acceso-deep] Time: 912
2026.10.03 15:13:49.923 BenClaude (EURUSD,H1) [acceso-array-large] Time: 14026
2026.10.03 15:13:50.035 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 1152
2026.10.03 15:13:50.035 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4927909
2026.10.03 15:13:51.452 BenClaude (EURUSD,H1) [acceso-wide] Time: 313
2026.10.03 15:13:51.564 BenClaude (EURUSD,H1) [acceso-deep] Time: 918
2026.10.03 15:13:51.691 BenClaude (EURUSD,H1) [acceso-array-large] Time: 14071
2026.10.03 15:13:51.802 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 1950
2026.10.03 15:13:51.802 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4927909
2026.10.03 15:14:32.418 BenClaude (EURUSD,H1) [acceso-wide] Time: 308
2026.10.03 15:14:32.528 BenClaude (EURUSD,H1) [acceso-deep] Time: 1192
2026.10.03 15:14:32.656 BenClaude (EURUSD,H1) [acceso-array-large] Time: 9976
2026.10.03 15:14:32.766 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 930
2026.10.03 15:14:32.766 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4927909
*/
//+------------------------------------------------------------------+