
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¡Gracias por su ayuda en las pruebas! Actualizado MTTester.mqh publicado.
Muchas gracias por la biblioteca
Este Asesor Experto presiona el botón Start cada tres segundos, si no es Stop. Me las arreglé para presionarlo - verdadero, de lo contrario - falso.
Situación estándar.
Presionado Inicio - el cálculo comenzó.
Esta acción tarda ~125 ms.
No es raro.
Pulse Inicio - se inicia el cálculo instantáneo o el Comprobador informa de que no puede realizar el cálculo (por ejemplo, FromDate >= ToDate).
Esta acción dura aproximadamente un segundo. La librería se alertará, pero devolverá true - el botón fue presionado.
Situación poco frecuente.
No se ha pulsado Start. Esto sólo puede solucionarse reiniciando el Terminal.
No tengo registros de esta situación. Tomará <10 segundos identificar tal situación. Habrá una alerta como esta.
Devuelve false - el botón no fue presionado.
Es una situación rara.
No se pulsa Start. Esto sólo se puede curar reiniciando el Terminal.
Una máquina WinServer remota estaba continuamente haciendo cientos de pasadas individuales sin ningún fallo.
Tan pronto como me conecté (RDP) a esta máquina, el botón de Inicio dejó de pulsarse. La cura, como siempre, es reiniciar la Terminal.
Parece que este comportamiento tiene algo que ver con inicios de sesión similares en la máquina. Puedes iniciar sesión a través de RDP docenas de veces - todo funciona bien. Pero algún inicio de sesión se vuelve fatal para el Probador.
Los que se encuentran con el Start-bug - prestar atención a la relación entre el inicio de sesión en la máquina y el botón Inicio.
ZY Coincidencia o no, WinServer ofreció comprobar sus actualizaciones durante este inicio de sesión en la máquina.
Buena biblioteca.
¿Es posible especificar qué archivo *.set con ajustes de parámetros se debe pasar mediante programación para la prueba?
Por defecto sólo se utilizan los mismos ajustes, lo que no es muy conveniente.
¿Es posible especificar qué archivo *.set con la configuración de parámetros se debe pasar mediante programación para la prueba?
Ejemplo.
Gracias.
¿Es mejor pasar Configuración en una sola línea con filas separadas por el carácter \n.
o un array de filas como en el ejemplo?
Y es posible modificar en
clase MTTester el método estático Run
static bool Run( const string ExpertName = NULL,
const string Symb = NULL,
const ENUM_TIMEFRAMES period = PERIOD_CURRENT,
const datetime iBeginTime = 0,
const datetime iEndTime = 0 )
¿añadir una cadena de parámetros ( o una matriz de cadenas ) que especifique *.set EA settings?
Gracias.
¿Es mejor pasar Ajustes en una sola línea con filas separadas por el carácter \n?
¿O en un array de filas como en el ejemplo?
GetSettings es CTRL+C en Tester.
SetSettings es CTRL+V en Tester.
Vea con qué datos funciona CTRL+C/V.
Y si es posible modificar en
método estático de la clase MTTester Run
Yo no uso este método. Se queda como historia.
El ejemplo muestra todos los métodos MTTESTER que se necesitan.
¿Es posible especificar qué archivo *.set con la configuración de parámetros se debe pasar mediante programación para la prueba?
Validate trabaja con archivos ini completos del Comprobador y una versión reducida - archivos set para el Comprobador.
Si necesitas ejecutar muchos archivos ini/set, Validate lo hace de inmediato. Utilícelo.
Validate funciona con los archivos ini completos de Tester y con una versión simplificada: set-files para Tester.
Si necesitas ejecutar muchos archivos ini/set, Validate lo hace de inmediato. Utilícelo.
Gracias.
Encontré una solución a partir de este comentario donde el archivo set se carga en el formato requerido como una matriz de cadenas.
https://www.mql5.com/ru/forum/318305/page34#comment_51842356
También he sustituido
typedef bool (*INITDEINIT)( void );
puntero de llamadas de retorno en la inicialización y desinicialización de cada ejecución
a la interfaz
interfaz InitDeInit {
bool RunInit();
bool RunDeInit();
};
que se implementa en un heredero
de una clase similar a la estructura SETTINGS
y así en el método RunInit().
Cargo el fichero set de la herramienta requerida.
typedef bool (*INITDEINIT)( void ); - este puntero no permite saber que herramienta se está inicializando/desinicializando, por lo que es mejor utilizar un puntero a la interfaz, ya que los punteros a métodos aún no están soportados por MQL.
Con este enfoque no hay necesidad de modificar el método MTTester::Run.