Error de validación al lanzar el robot de trading al mercado. - página 4

 

¡Hola!

Hoy el validador ha empezado a dar un mensaje:

Comprobado con tres examinadores, 10 segundos y falla. ¿Cuál puede ser el problema? ¡Tal vez tenga algo con el software!

P.D. He puesto para las comprobaciones en OnTick() la primera línea de la impresión:

¡¡No puede ser un informe de pruebas en blanco!! Mis registros están llenos:


 
Andrey Kaunov:

Hoy, el validador ha empezado a dar un mensaje:

Fue, pasó. Error del validador.

 
Andrey Kaunov:

¡Hola!

El validador ha empezado a dar un mensaje hoy:

Gracias por su mensaje. Corregido.

 

Sí, el Validador está en funcionamiento. Pero ahora hay otra cosa extraña. El validador utilizado para dar este resultado

Al mismo tiempo en mi probador va todo bien. He puesto una muletilla para comprobar el código (división por cero):


Y lo conseguí:

Resulta que, durante la prueba, el validador sigue dejando en la función de apertura de pedidos. No está en absoluto claro por qué da:ninguna operación comercial

 
Andrey Kaunov:

Sí, el Validador está en funcionamiento. Pero ahora hay otra cosa extraña. El validador utilizado para dar este resultado

Al mismo tiempo en mi probador va todo bien. Puse una muletilla para comprobar el código (división por cero):


Y lo conseguí:

Resulta que, durante la prueba, el validador sigue dejando en la función de apertura de pedidos. No entiendo por qué el analizadorno generaoperaciones comerciales.

Lo más probable es que se produzca un error al enviar una orden y el registro contenga algo como GetLastError. Sería genial si se añadiera a MQL una función del tipo Throw(code) que llevara a una parada como la división por cero pero que devolviera el código y entonces podríamos escribir Throw(GetLastError()) para obtener una pista en el registro. Por cierto, existe la función TerminalClose(retcode) - puedes intentar usarla, pero sospecho que simplemente está desactivada en el autotester.

 

Estoy totalmente de acuerdo.

Lo ideal, por supuesto, sería que el validador enviara registros de las pruebas y no sólo un informe de tres líneas. Entonces habría una oportunidad de averiguar qué es lo que está mal en lugar de señalar con el dedo al cielo.

Por favor, piénsalo.

 
Andrey Kaunov:

Estoy totalmente de acuerdo.

Lo ideal, por supuesto, sería que el validador enviara registros de las pruebas y no sólo un informe de tres líneas. Entonces habría una oportunidad de averiguar qué es lo que está mal en lugar de señalar con el dedo al cielo.

Por favor, piénsalo.

Más bien, habrá formas de sortear (ocultar) un determinado error en lugar de redactar correctamente la lógica de las funciones comerciales. No debería haber errores de validación si los parámetros de entrada "idiotas" se contabilizan y manejan correctamente, o si las condiciones de negociación se calculan incorrectamente para la operación.

 

Aquí no hay ningún error, no entiendo en absoluto lo que está pasando. Puse una muleta (división por cero) antes de la función de comercio:

Funciona:

Si lo saco, me da lo mismo

No hay operaciones comerciales.

No entiendo qué es lo que impide al validador de OrderSend(). Al fin y al cabo, si le llega, debe haber errores de facturación (aunque los he arreglado todos) 130, 131, 134, ..., pero no"no hay operaciones comerciales". Lo único que tengo que hacer ahora es insertar en OnInit() una orden pendiente en algún lugar alejado de ella, no sé cómo luchar con ella.

 
Andrey Kaunov:

No hay error, no entiendo lo que está pasando aquí. Puse una muleta (división por cero) antes de la función de comercio:

Funciona:

Si lo saco, me da lo mismo

No hay operaciones comerciales.

No entiendo qué es lo que impide al validador de OrderSend(). Al fin y al cabo, si le llega, debe haber errores de facturación (aunque los he arreglado todos) 130, 131, 134, ..., pero no"no hay operaciones comerciales". Lo único que tengo que hacer ahora es insertar en OnInit() una orden pendiente en algún lugar alejado de ella, no sé cómo luchar con ella.

Buenas tardes. Intenta añadir la función que escribí aquí antes.
 
Probablemente sea sólo ella.