Discusión sobre el artículo "Qué comprobaciones debe superar un robot comercial antes de ser publicado en el Mercado" - página 4

 

¡Muy bien!

 

Durante la prueba automática del Asesor Experto, se produjo una terminación de emergencia y se recibió el mensaje Error de envío de orden #131: ERR_INVALID_TRADE_VOLUME. En la sección "Cómo detectar y corregir errores rápidamente en un robot de trading" se da la solución del problema en mql5. Pero mi Asesor Experto está escrito en mql4. ¿Cómo puedo hacerlo por él? ¿Cómo debería comportarse el Asesor Experto para pasar la comprobación de corrección de volumen?

 
Sergey Vrady:

Durante la prueba automática del Asesor Experto, se produjo una terminación de emergencia y se recibió el mensaje Error de envío de orden #131: ERR_INVALID_TRADE_VOLUME. En la sección "Cómo detectar y corregir errores rápidamente en un robot de trading" se da la solución del problema en mql5. Pero mi Asesor Experto está escrito en mql4. ¿Cómo puedo hacerlo por él? ¿Cómo debería comportarse el Asesor Experto para pasar la comprobación de corrección de volumen?


Los lenguajes m ql5 y mql4 son casi idénticos, la única diferencia está en los nombres de las funciones,

adjunta el código de tu cálculo de volumen y te ayudarán a traducirlo a mql4.

 

Tal vez en lugar de esto:

//--- comprueba si hay cambios en el nivel de Takeprofit
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-sl)>tp);

esta es la forma de hacerlo:

//--- comprueba si hay cambios en el nivel de Takeprofit
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-tp)>point);

creo que es mejor.

 
Almaz Allaberenov:

Tal vez en lugar de esto:

esta es la forma de hacerlo:

Creo que sería mejor.

Copypaste, lo arreglaremos, gracias.

 

Hola.

Muchas gracias por el artículo.

A lo mejor he entendido algo mal, pero creo que hay una imprecisión en la comprobación de congelar_nivel y paradas_nivel.

Según el test la distancia debería ser "no menor que" nivel y en las tablas también >= , todo cuadra. Pero en el código es sólo >

Por ejemplo

TakeProfit - Bid >= SYMBOL_TRADE_STOPS_LEVEL
TP_check=(TP-Bid>stops_level*_Point);

Entonces, ¿cuál es la forma correcta, >= o > ?

 
Oleksii Chepurnyi:

Según el test la distancia debe ser "no menor que" nivel y en las tablas también >= , todo encaja. Pero en el código es sólo >

Por ejemplo

Entonces, ¿es correcto >= o > ?

Por fiabilidad, es mejor exigir una condición más estricta.
 
Rashid Umarov:
Para mayor fiabilidad, es mejor exigir una condición más estricta.

Bueno, se puede organizar en el Asesor Experto antes de la operación comercial.

¿Es más correcto utilizar >= en la propia función de comprobación? ¿O puede haber algunos problemas?

 
Oleksii Chepurnyi:

Bueno, se puede organizar en el Asesor Experto antes de la operación de comercio.

Pero en la propia función de comprobación >= ¿es más correcto? ¿O puede haber algunos problemas?

A veces hay problemas con stops erróneos. Normalmente compruebo "mayor que stoplevel+1 punto", entonces no hay errores con stops erróneos.
 
Artyom Trishkin:
A veces hay problemas con paradas erróneas. Suelo comprobar "más stoplevel+1 punto", entonces no hay errores con paradas erróneas.
Pero entonces existe la posibilidad de perder un trade....