//+------------------------------------------------------------------+ //| 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 StringToCharArray(g_json_data, json.Buffer); //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 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); tin += root["array_of_objects"].At(k)["tags"].Size(); } 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.08.28 11:12:40.643 BenClaude (EURUSD,H1) [acceso-wide] Time: 305 2026.08.28 11:12:40.752 BenClaude (EURUSD,H1) [acceso-deep] Time: 996 2026.08.28 11:12:40.880 BenClaude (EURUSD,H1) [acceso-array-large] Time: 10482 2026.08.28 11:12:40.991 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 444 2026.08.28 11:12:40.991 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4925578 2026.08.28 11:12:44.441 BenClaude (EURUSD,H1) [acceso-wide] Time: 307 2026.08.28 11:12:44.553 BenClaude (EURUSD,H1) [acceso-deep] Time: 922 2026.08.28 11:12:44.679 BenClaude (EURUSD,H1) [acceso-array-large] Time: 14111 2026.08.28 11:12:44.791 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 381 2026.08.28 11:12:44.791 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4925578 2026.08.28 11:12:47.086 BenClaude (EURUSD,H1) [acceso-wide] Time: 305 2026.08.28 11:12:47.198 BenClaude (EURUSD,H1) [acceso-deep] Time: 1200 2026.08.28 11:12:47.311 BenClaude (EURUSD,H1) [acceso-array-large] Time: 9738 2026.08.28 11:12:47.421 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 377 2026.08.28 11:12:47.421 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4925578 2026.08.28 11:12:55.116 BenClaude (EURUSD,H1) [acceso-wide] Time: 306 2026.08.28 11:12:55.227 BenClaude (EURUSD,H1) [acceso-deep] Time: 898 2026.08.28 11:12:55.354 BenClaude (EURUSD,H1) [acceso-array-large] Time: 14187 2026.08.28 11:12:55.464 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 352 2026.08.28 11:12:55.464 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4925578 2026.08.28 11:12:57.902 BenClaude (EURUSD,H1) [acceso-wide] Time: 301 2026.08.28 11:12:58.013 BenClaude (EURUSD,H1) [acceso-deep] Time: 1018 2026.08.28 11:12:58.123 BenClaude (EURUSD,H1) [acceso-array-large] Time: 10154 2026.08.28 11:12:58.234 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 525 2026.08.28 11:12:58.234 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4925578 2026.08.28 11:13:00.573 BenClaude (EURUSD,H1) [acceso-wide] Time: 302 2026.08.28 11:13:00.684 BenClaude (EURUSD,H1) [acceso-deep] Time: 932 2026.08.28 11:13:00.794 BenClaude (EURUSD,H1) [acceso-array-large] Time: 9789 2026.08.28 11:13:00.905 BenClaude (EURUSD,H1) [acceso-mixed-trading] Time: 413 2026.08.28 11:13:00.905 BenClaude (EURUSD,H1) sump=537.48 profit=-337.50 tin=4925578 */ //+------------------------------------------------------------------+