2026-08-28 08:28:39 -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
|
2026-08-28 11:16:09 -05:00 | | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | //#define JSONBENCH_RUN_PARSE
|
2026-08-28 08:28:39 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | #include "Def.mqh"
|
2026-08-28 11:16:09 -05:00 | | | #include "..\\Other\\ClaudeJson.mqh"
|
| | |
|
| | | #define LIBNAME "ClaudeFableJson-3+Pass"
|
2026-08-28 08:28:39 -05:00 | | |
|
2026-08-28 11:16:09 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
2026-08-28 08:28:39 -05:00 | | | // 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
|
2026-08-28 11:16:09 -05:00 | | | usar ahora mismo en 2026...
|
2026-08-28 08:28:39 -05:00 | | | 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
|
2026-08-28 11:16:09 -05:00 | | | que optimize.... aparte note qeu al no haber mucho contenido con el cual se hayan entrneando y lamaotira de dicho
|
2026-08-28 08:28:39 -05:00 | | | contenido con el qeu se entrenaon no es de buena calidad (si lo comparasmo con libs serias de json)
|
2026-08-28 11:16:09 -05:00 | | | etnoces claude por lo visto tiene a aplicar una idea "general" de como hacer un json json en mq5 de forma rapida
|
2026-08-28 08:28:39 -05:00 | | | 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...
|
2026-08-28 11:16:09 -05:00 | | | Ahora sobre su json lo estuve viendo y esta iben sinamtne buen maneja o de rreos etc...
|
2026-08-28 08:28:39 -05:00 | | | 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;
|
2026-08-28 11:16:09 -05:00 | | |
|
| | | //--- Parseo
|
| | | #ifdef JSONBENCH_RUN_PARSE
|
2026-10-18 17:51:52 -05:00 | | | ArrayCopy(json.Buffer, g_json_data, 0, 0);
|
2026-08-28 11:16:09 -05:00 | | |
|
| | | //Sleep(10);
|
2026-08-28 08:28:39 -05:00 | | |
|
| | | ulong a = GetMicrosecondCount();
|
2026-08-28 11:16:09 -05:00 | | | for(int i = 0; i < JSONBENCH_TOTAL_ITER_PARSE; i++)
|
2026-08-28 08:28:39 -05:00 | | | {
|
| | | json.Parse();
|
| | | }
|
2026-08-28 11:16:09 -05:00 | | | ulong b = GetMicrosecondCount();
|
2026-08-28 08:28:39 -05:00 | | |
|
2026-08-28 11:16:09 -05:00 | | | //Sleep(250);
|
2026-08-28 08:28:39 -05:00 | | |
|
2026-08-28 11:16:09 -05:00 | | | 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++)
|
2026-08-28 08:28:39 -05:00 | | | {
|
2026-08-28 11:16:09 -05:00 | | | keys[i] = json.NodeKey(wide_object[i].m_idx);
|
2026-08-28 08:28:39 -05:00 | | | }
|
2026-08-28 11:16:09 -05:00 | | |
|
| | | //-- Random
|
2026-09-17 21:24:16 -05:00 | | | TSN::CRandom<Xoshiro256> xo;
|
2026-08-28 11:16:09 -05:00 | | | 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);
|
2026-10-03 17:00:34 -05:00 | | | const int s = root["array_of_objects"].At(k)["tags"].Size();
|
| | | tin += StringLen(root["array_of_objects"].At(k)["tags"].At(k % s).ToString());
|
2026-08-28 11:16:09 -05:00 | | | }
|
| | |
|
| | | 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 08:28:39 -05:00 | | | }
|
| | | //+------------------------------------------------------------------+
|
2026-08-28 11:16:09 -05:00 | | | /*
|
| | | 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 17:00:34 -05:00 | | | 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
|
2026-08-28 11:16:09 -05:00 | | |
|
| | | */
|
| | | //+------------------------------------------------------------------+
|