Ayuda para comprender el (los) código (s) de error en MT4
Ayuda para comprender el (los) código (s) de error en MT4

 

Publi

Resultados 1 al 9 de 9

Tema: Ayuda para comprender el (los) código (s) de error en MT4

  1. #1

    Cita Iniciado por ;
    También en su impresión, utiliza GetLastError (). Cuando check = GetLastError (); se ejecuta, GetLastError () se restablece a 0. Esto significa que el código de error se imprimirá como 0, sin importar cuál fue el error. He modificado la impresión para usar el cheque en lugar de GetLastError () Tenga en cuenta que he modificado el código para verificar el error solo si el OrderModify falla
    Eso fue probablemente parte del problema original. Gracias.

  2.                         
    Publicidad
  3. #2

    Cita Iniciado por ;
    He editado tu código para que sea más fácil de leer (para mí, al menos)
    No probé eliminando el redundante de OrdersTotal () gt; 0) (OrderSymbol () == Trade) como usted y Cyber1 han sugerido, sin embargo, como dije por última vez, está probando perfectamente ahora, incluso con el redundante OrdersTotal () gt; 0) (OrderSymbol () == Trade) En cuanto a los valores de HardTP, HardSL, están bien. Gracias.

  4. #3

    Cita Iniciado por ;
    {quote} - Desafortunadamente, no publicó toda la función, así que no estoy muy seguro de por qué tiene este corchete abierto aquí: if (! OrderSelect (i, SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent (), TIME_SECONDS), CHECK Function gt;, __FUNCTION__, !!!!!, Error code =, GetLastError ()); } int resultado; cheque int {aparte de algunos de los problemas con el uso de este bloque varias veces: OrdersTotal () gt; 0) (OrderSymbol () == Comercio) no especificó si se están configurando las paradas, sospecho que no lo están. Me gustaría añadir información adicional ...
    Gracias ... el soporte abierto se cierra más tarde, no mostré el resto de la función de gestión de riesgos porque algunos de los otros algos asociados con ella son propietarios. No probé eliminando el redundante de OrdersTotal () gt; 0) (OrderSymbol () == Comercio) como usted y Gumrai han sugerido, sin embargo, como dije por última vez, está probando perfectamente ahora, incluso con el redundante OrdersTotal () gt; 0) (OrderSymbol () == Trade) En cuanto a los valores de HardTP, HardSL, están bien. Gracias.

  5. #4
    He editado su código para facilitar la lectura (al menos para mí) Código insertado void set_stop_tp () {int check; int totalorders = OrdersTotal (); for (int i = totalorders-1; igt; = 0; i--) {si (! (OrderSelect (i, SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent (), TIME_SECONDS), CHECK Function gt;, __ FUNCTION__, !! !!!, Código de error =, GetLastError ()); } else if (OrderSymbol () == Trade) {//Modifique Stop y TP en el Servidor si no durante la Entrada de Order if ((OrderStopLoss () == 0 || OrderTakeProfit () == 0) UseHardStop) {//Modifique ambos SL y TP si ambos aún no están establecidos si (OrderType () == OP_BUY OrderStopLoss () == 0 OrderTakeProfit () == 0) if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - HardStop, OrderOpenPrice ( ) HardTP, 0,0)) {check = GetLastError (); Imprimir (Error durante la modificación de la parada y TP de la orden de compra! Código de error:, check,, ErrorDescription (check)); } if (OrderType () == OP_SELL OrderStopLoss () == 0 OrderTakeProfit () == 0) if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () HardStop, OrderOpenPrice () - HardTP, 0,0 )) {check = GetLastError (); Imprimir (Error durante la modificación de la parada y TP de la orden de venta! Código de error:, check,, ErrorDescription (check)); }/Modificar TP solo si aún no está configurado si (OrderType () == OP_BUY OrderStopLoss ()! = 0 OrderTakeProfit () == 0) if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss (), OrderOpenPrice ( ) HardTP, 0,0)) {check = GetLastError (); Imprimir (Error durante la modificación del TP de la orden de compra! Código de error:, check,, ErrorDescription (check)); } if (OrderType () == OP_SELL OrderStopLoss ()! = 0 OrderTakeProfit () == 0) if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss (), OrderOpenPrice () - HardTP, 0,0)) {check = GetLastError (); Imprimir (Error durante la modificación del TP de la orden de venta! Código de error:, check,, ErrorDescription (check)); }/Modificar SL solo si todavía no se ha establecido si (OrderType () == OP_BUY OrderStopLoss () == 0 OrderTakeProfit ()! = 0) if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - HardStop, OrderTakeProfit (), 0,0)) {check = GetLastError (); Imprimir (Error durante la modificación de la parada de la orden de compra !!! Código de error:, check,, ErrorDescription (check)); } if (OrderType () == OP_SELL OrderStopLoss () == 0 OrderTakeProfit ()! = 0) if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () HardStop, OrderTakeProfit (), 0,0)) {check = GetLastError (); Imprimir (Error durante la modificación de la orden de detención de venta!Código de error:, check,, ErrorDescription (check)); }}}}} Como se mencionó en cyber1, no es necesario realizar comprobaciones repetidas de OrdersTotalgt; 0, ya que el ciclo no se ejecutará si no hay órdenes abiertas. He movido OrderSymbol () == Intercambiar, ya que solo necesita verificarse una vez. Utiliza result = OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - HardStop, OrderOpenPrice () HardTP, 0,0); pero en realidad no se comprueba el valor. El último error podría deberse a algún otro lugar de su código, ya que no depende de si la modificación falla o no. También en su impresión, utiliza GetLastError (). Cuando check = GetLastError (); se ejecuta, GetLastError () se restablece a 0. Esto significa que el código de error se imprimirá como 0, sin importar cuál fue el error. He modificado la impresión para usar el cheque en lugar de GetLastError () Tenga en cuenta que he modificado el código para verificar el error solo si el OrderModify falla

  6. #5

    Cita Iniciado por ;
    a veces la lógica del código es extraña ... MT4 es realmente extraño a veces ... Cambié una línea de código y eliminé las líneas redundantes y generé el error más veces ... Cambié la misma línea de código y guardé las líneas redundantes y la error de compra lateral desapareció. void set_stop_tp () {int totalorders = OrdersTotal (); para (int i = totalorders-1; igt; = 0; i--) {si (! (OrderSelect (i, SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent (), TIME_ SEGONDS), CHECK Function gt;, __FUNCTION__,! !!!!, Código de error =, GetLastError ()); } int resultado; int check = GetLastError (); ...
    Pipólogo: desafortunadamente, no ha publicado toda la función, por lo que no estoy seguro de por qué tiene este corchete abierto aquí: if (! OrderSelect (i, SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent (), TIME_SECONDS), Función CHECK gt;, __FUNCTION__, !!!!!, Código de error =, GetLastError ()); } int resultado; cheque int {aparte de algunos de los problemas con el uso de este bloque varias veces: OrdersTotal () gt; 0) (OrderSymbol () == Comercio) no especificó si se están configurando las paradas, sospecho que no lo están. Yo agregaría información adicional a la declaración Print () no solo en cuál de las diferentes condiciones se está produciendo el error, sino también en el resultado de las paradas que ha calculado: por ejemplo, ¿cuál es el resultado de OrderOpenPrice () HardTP si HardTP es igual a 50 por ejemplo y OrderOpenPrice () = 1.536 el resultado sería 51.536

  7. #6
    a veces la lógica del código es extraña ... MT4 es realmente extraño a veces ... Cambié una línea de código y eliminé las líneas redundantes y generé el error más veces ... Cambié la misma línea de código y guardé las líneas redundantes y la error de compra lateral desapareció. void set_stop_tp () {int totalorders = OrdersTotal (); para (int i = totalorders-1; igt; = 0; i--) {si (! (OrderSelect (i, SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent (), TIME_ SEGONDS), CHECK Function gt;, __FUNCTION__,! !!!!, Código de error =, GetLastError ()); } int resultado; int check = GetLastError (); ------ gt; gt; gt; gt; se modificó y se agregó = a GetLastError () {//Modifique Stop y TP en el servidor si no es así durante la entrada del pedido si (((OrderStopLoss () == 0) || (OrderTakeProfit () == 0)) (OrdersTotal () gt ; 0) (UseHardStop == true)) {RefreshRates ();/Modifique ambos SL y TP si ambos aún no están establecidos si ((OrderType () == OP_BUY) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ( ) == 0))) resultado = OrderModify (OrderTicket (), OrderOpen Price (), OrderOpenPrice () - HardStop, OrderOpenPrice () HardTP, 0, 0); check = GetLastError (); ------- gt; gt; gt; gt; Se guardó el redundante = en GetLastErrors () en todas las modificaciones si (¡verifique! = 0) {Imprimir (Error durante la modificación de la parada y TP de la orden de compra! Código de error:, GetLastError (),, ErrorDescription (verificar)); } el código de error en el lado de compra solo desapareció, no estoy seguro de por qué se requiere la redunidad pero ahora funciona de forma limpia.

  8. #7

    Cita Iniciado por ;
    No puedo hablar por todos los demás, tal vez porque tengo una pequeña pantalla de computadora. Pero para mí, intentar leer tu código requiere mucho desplazamiento de izquierda a derecha y viceversa. Con tener que desplazarme, no puedo seguir el código. ¿Alguien más tiene este problema?
    Creo que es un problema con el cuadro de código de FF. Tengo el mismo problema. Publicaremos de nuevo arriba.

  9. #8
    No puedo hablar por todos los demás, tal vez porque tengo una pequeña pantalla de computadora. Pero para mí, intentar leer tu código requiere mucho desplazamiento de izquierda a derecha y viceversa. Con tener que desplazarme, no puedo seguir el código. ¿Alguien más tiene este problema?

  10. #9
    En el comprobador, obtengo SOLAMENTE un error interno de Código de error 0 en COMPRAR órdenes secundarias y no vender órdenes secundarias.

    2 preguntas:

    1. ¿Qué es un error interno vinculado al código de error 0 que pensé que no era un error?

    2. ¿Por qué recibo este error solo en órdenes de compra?

    El resultado específico que se imprime es: ¡Error durante la modificación de la parada y TP de la orden de compra! Código de error: 0 error interno
    Lo que corresponde a la primera modificación. Por lo que puedo decir, el código del lado de compra es correcto.
    Aquí está el código que se usa para la función a continuación ... el código puede parecer reduny, sin embargo, está diseñado para asegurarse de que se envíen y publiquen detenciones estrictas después de que se haya completado el pedido de los corredores de tipo ecnstp.


    Código insertado void set_stop_tp () {int totalorders = OrdersTotal (); for (int i = totalorders-1; igt; = 0; i--) {si (! (OrderSelect (i, SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent (), TIME_SECONDS), CHECK Function gt;, __FUNCTION__, !! !!!, Código de error =, GetLastError ()); } int resultado; cheque int {//Modifique Stop y TP en el servidor si no lo hace durante la entrada del pedido if (((OrderStopLoss () == 0) || (OrderTakeProfit () == 0)) (OrdersTotal () gt; 0) (UseHardStop == true) ) {RefreshRates ();/Modifique ambos SL y TP si ambos aún no están establecidos si ((OrderType () == OP_BUY) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ( ) == 0))) resultado = OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - HardStop, OrderOpenPrice () HardTP, 0,0); check = GetLastError (); if (check! = 0) {Print (Error durante la modificación de la parada y TP de la orden de compra !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); } if ((OrderType () == OP_SELL) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit () == 0)) resultado = OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice () HardStop, OrderOpenPrice () - HardTP, 0,0); check = GetLastError (); if (check! = 0) {Print (Error durante la modificación de la parada y TP de la orden de venta !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); }/Modificar TP solo si aún no está configurado si ((OrderType () == OP_BUY) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss ()! = 0) (OrderTakeProfit () = = 0))) resultado = OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss (), OrderOpenPrice () HardTP, 0,0); check = GetLastError (); if (check! = 0) {Print (Error durante la modificación del TP de la orden de compra !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); } if ((OrderType () == OP_SELL) (OrdersTotal () gt; 0) (OrderSymbol () == Comercio) ((OrderStopLoss ()! = 0) (OrderTakeProfit () == 0)) resultado = OrderModify ( OrderTicket (), OrderOpenPrice (), OrderStopLoss (), OrderOpenPrice () - HardTP, 0,0); check = GetLastError (); if (check! = 0) {Print (Error durante la modificación del TP de la orden de venta !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); }/Modificar SL solo si aún no está configurado si ((OrderType () == OP_BUY) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0))) resultado = OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - HardStop, OrderTakeProfit (), 0,0); check = GetLastError (); if (check! = 0) {Print (Error durante la modificación de la parada de la orden de compra !!! Código de error:, GetLastError (),, ErrorDescription (check)); } if ((OrderType () == OP_SELL) (OrdersTotal () gt; 0) (OrderSymbol () == Comercio) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0)) resultado = OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice () HardStop, OrderTakeProfit (), 0,0); check = GetLastError (); if (check! = 0) {Print (¡Error durante la modificación de la orden de venta! Código de error:, GetLastError (),, ErrorDescription (cheque)); }}

    Código reposicionado fuera de la casilla de código FF:
    *******************************

    void set_stop_tp ()
    {
    int totalorders = OrdersTotal ();
    para (int i = totalorders-1; igt; = 0; i--)
    {
    si (! OrderSelect (i, SELECT_BY_POS)) {
    Imprimir (TimeToStr (TimeCurrent (), TIME_SECONDS), CHECK Function gt;, __FUNCTION__, !!!!!, Código de error =, GetLastError ()); }
    resultado int
    cheque int
    {

    //Modificar Stop y TP en el servidor si no es durante la entrada del pedido
    if (((OrderStopLoss () == 0) || (OrderTakeProfit () == 0)) (OrdersTotal () gt; 0) (UseHardStop == true)) {RefreshRates ();
    //Modificar tanto SL como TP si ambos aún no están configurados
    if ((OrderType () == OP_BUY) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit () == 0)))
    result = OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - HardStop, OrderOpenPrice () HardTP, 0,0);
    check = GetLastError ();
    if (check! = 0) {Print (Error durante la modificación de la parada y TP de la orden de compra !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); }

    if ((OrderType () == OP_SELL) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit () == 0)))
    result = OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () HardStop, OrderOpenPrice () - HardTP, 0,0);
    check = GetLastError ();
    if (check! = 0) {Print (Error durante la modificación de la parada y TP de la orden de venta !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); }

    //Modificar TP solo si aún no está configurado
    if ((OrderType () == OP_BUY) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss ()! = 0) (OrderTakeProfit () == 0)))
    result = OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss (), OrderOpenPrice () HardTP, 0,0);
    check = GetLastError ();
    if (check! = 0) {Print (Error durante la modificación del TP de la orden de compra !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); }

    if ((OrderType () == OP_SELL) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss ()! = 0) (OrderTakeProfit () == 0)))
    result = OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss (), OrderOpenPrice () - HardTP, 0,0);
    check = GetLastError ();
    if (check! = 0) {Print (Error durante la modificación del TP de la orden de venta !!! Código de error:, GetLastError (),, ErrorDescription (cheque)); }

    //Modificar SL solo si aún no está configurado
    if ((OrderType () == OP_BUY) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0)))
    result = OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - HardStop, OrderTakeProfit (), 0,0);
    check = GetLastError ();
    if (check! = 0) {Print (Error durante la modificación de la parada de la orden de compra !!! Código de error:, GetLastError (),, ErrorDescription (check)); }

    if ((OrderType () == OP_SELL) (OrdersTotal () gt; 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0)))
    result = OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () HardStop, OrderTakeProfit (), 0,0);
    check = GetLastError ();
    if (check! = 0) {Print (¡Error durante la modificación de la orden de venta! Código de error:, GetLastError (),, ErrorDescription (cheque)); }
    }

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.