Librerías: MultiTester - página 49

 
fxsaber #:
¿Está seguro de que está utilizando la versión actual de MTTester.mqh? El siguiente código está ahí.

Recuerdo que actualicé a la última versión, pero no sé por qué se me pasó actualizar ese archivo. Ahora todo funciona bien.

 
¡Добрый день!

Перестал компилироваться прилагаемый скрипт.
Выдается ошибка:
la conversión del parámetro tipo 'short[260]' a 'ushort[] &' no está permitida MTTester.mqh 156 39
int user32::GetClassNameW(long,ushort&[],int) winuser.mqh 1414 37

Может быть что-то нужно поменять в MTTester.mqh ?

Ранее он прекрасно компилировался.

Не могли бы помочь?

С уважением, Александр
Archivos adjuntos:
_Noc.mq5  62 kb
 
klycko #:
El script adjunto ha dejado de compilarse.

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.

Bibliotecas: MultiTester

fxsaber, 2025.06.08 16:57

De KB descargo los fuentes sólo pinchando en el archivo correspondiente, como en la imagen.

Acabo de descargarlo de esta manera para comprobar - compilado sin errores.

 
fxsaber #:

¡Muchas gracias!

¡Todo funciona de nuevo!

 

Downloaed como se muestra en la imagen de arriba, pero el error en cmopile

Mttester.mqh error de compilacion por favor revise la nueva version MT5 V5 BULD 5142


ERRORES :


parameter convertion type 'short[260]' to 'ushort[] &' is not allowed MTTester.mqh 135 39

'ReadFile' - no se puede aplicar ninguna de las sobrecargas a la llamada de función MTTester.mqh 1283 21


 
dave365 #:

Descargado como se muestra en la imagen de arriba, pero error en cmopile

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading

Bibliotecas: MultiTester

fxsaber, 2025.06.12 14:55

El tamaño de la versión actual del archivo MTTester.mqh es actualmente de 123.822 bytes.

 

Hola @fxsaber

Espero que te vaya bien.

Siguiendo tu trabajo sobre el multitester. He leído los ejemplos y la descripción de la biblioteca sobre cómo usarlo, pero im no es capaz de saber cómo se va a utilizar.

Como tengo la EA que he escrito para probar / optimizar un inidcator más de 9 símbolos. He implementado el código como sigue en una EA.

//+------------------------------------------------------------------+
//|MultiTesterBase.mq5
//|Copyright 2025, MetaQuotes Ltd. |
//| https://www.mql5.com
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#include <fxsaber\MultiTester\MultiTester.mqh>

#define  EA_NAME "IndicatorTesting\\EAs\\ash_indicator_testing.ex5"

// esta función se encarga de generar la lista de tareas
void SetTesterSettings()
{
   TesterSettings.Add(EA_NAME, "EURUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDNZD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "EURGBP", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDCAD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CHFJPY", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CADSGD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "BTCUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "XAUUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "US500", PERIOD_CURRENT);
}
//+------------------------------------------------------------------+

Pero no sé qué hacer después de que yo quiero optimizar los parámetros en contra de los símbolos dados, en el probador que tenía que seleccionar el ea ash_indicator_testing, porque si no lo hago no voy a tener los parámetros de optimización. ¡Despues de hacerlo aplique el fragmento de codigo pegado arriba (multitester ea) en el grafico! Es el curso correcto de acción o estoy haciendo mal? porque yo no era capaz de encontrar suficiente información sobre el uso.

Por favor, guíeme en esto.

Saludos cordiales

 
Hafiz Tamur Ahmed #:

Por favor, indíqueme

Históricamente, MultiTester.m qh no se utiliza para escribir interacciones con Tester, ya que utiliza un modelo de eventos, que es demasiado complejo. Así que de inmediato recomiendo utilizar un enfoque diferente - a través de MTTester.mqh.


He aquí un buen ejemplo.

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.

Bibliotecas: MultiTester

fxsaber, 2024.01.17 12:13 AM

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/es/code/26132

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {"[Tester]\n" +
                       "Expert=Input_String_Example_Alternative.ex5\n" +
                       "Symbol=EURUSD\n" +
                       "Period=M1\n" +
                       "Optimization=2\n" +
                       "Model=4\n" +
                       "FromDate=2023.01.01\n" +
                       "ToDate=2024.01.01\n" +
                       "ForwardMode=0\n" +
                       "Deposit=1000000000\n" +
                       "Currency=USD\n" +
                       "ProfitInPips=1\n" +
                       "Leverage=100\n" +
                       "ExecutionMode=0\n" +
                       "OptimizationCriterion=6\n" +
                       "[TesterInputs]\n" +
                       "inAmount=1||1||1||10||N\n" +
                       "inCount=2||2||1||20||N\n" +
                       "inPeriod=3||3||1||30||N\n" +
                       "inKoef=4.56||4.56||0.456000||45.600000||N\n" +
                       "inLog=7.89||7.89||0.789000||78.900000||N\n" +
                       "inFlag=true||false||0||true||N"
                      };

  for (uint i = ArraySize(Settings); (bool)i--;)
    Run(Settings[i]);
}

Los ajustes del probador se guardan a través de CTRL + C / V. Puede guardarlos en archivos separados y luego llenar la matriz Settings[] en la fuente anterior con los datos de ellos.


Ejemplo adicional.

Optimize EA over a time window
Optimize EA over a time window
  • 2025.06.30
  • Maker
  • www.mql5.com
Is it possible to make the Strategy Tester to Optimize EA running it automatically multiple times over a range of time windows...
 

Gracias por la respuesta, pero im no es capaz de entender la aplicación en el controlador de EA, como la forma en que debe aplicarse y cómo se debe utilizar! la aplicación en el gráfico o ser utilizado en el probador. Porque he estado leyendo el foro, pero no he visto ningún pop up aparecer ni nada de ese tipo lo único que happend en mi lado cuando he aplicado el controlador EA en mi gráfico es una línea que indica a la espera de que el probador y por lo que se está llevando a cabo, y el probador de la estrategia de abajo parpadeando constantemente. Yo no era capaz de hacer nada con el probador!

Sería greate si una guía completa de extremo a extremo se proporciona en los documentos de la biblioteca para que sea fácil para los recién llegados como yo para entender y poner en práctica las cosas de acuerdo a sus escenarios!

Saludos cordiales

CC: @fxsaber

 
Obtener el número de ticks de un mes natural de una forma no estándar.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/es/code/26132

#define  PRINT(A) Print(#A + " = " + (string)(A));

void OnStart()
{
  MqlTick Ticks[];
  
  // Número de ticks para un mes natural por método estatal.
  PRINT(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1));
  
  // El número de ticks por mes natural de forma no estándar.
  PRINT(MTTESTER::GetAmountFileMonthTicks(D'2025.08.01'));
}


Resultado.

CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1) = 10820615
MTTESTER::GetAmountFileMonthTicks(D'2025.08.01') = 10820615