207 lines
7.9 KiB
MQL5
207 lines
7.9 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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
|
|
|
|
*/
|
|
//+------------------------------------------------------------------+
|