FORTS: Códigos de retorno de OnTradeTransaction() - página 2

 
Михаил:

Tú y yo hablamos "idiomas diferentes".

La orden, puede ser eliminada como resultado de una transacción cruzada,

y el ORDER_STATE_CANCELED vuelve con un código de retorno de "0".

Esto no tiene nada que ver con el corredor.

Entiendes que MT5 es una plataforma universal y al adaptarse a las condiciones de una pasarela concreta, el Broker (cada broker) configura la parte del servidor a su manera.

Lo que el programador del corredor escriba en el servidor, lo devolverá.

Por lo tanto, la pregunta debe ser resuelta directamente con el departamento de soporte técnico del corredor. Sólo ellos tienen los registros del servidor, sólo ellos pueden aclarar la situación.

En este caso, cualquier observador externo no puede ni siquiera estar seguro de que se trata de códigos de retorno reales, está escrito por su código, y el código no se adjunta.

Y el registro de funciones tan rápidas a través de las impresoras suele dar problemas. Sería bueno reproducir la situación (entiendo que es difícil), y preferiblemente con el registro de cadenas seguido de un volcado en un archivo.

En cualquier caso, es imposible averiguarlo sin un CD Broker.

 
Nikolay Demko:

Entiendes que MT5 es una plataforma universal, y al adaptarse a las condiciones de una pasarela concreta, el Broker (cada broker) configura la parte del servidor a su manera.

Lo que el programador del broker escriba el servidor lo devolverá.

Por lo tanto, la pregunta debe ser resuelta directamente con el departamento de soporte técnico del corredor. Sólo ellos tienen los registros del servidor, sólo ellos pueden aclarar la situación.

En este caso, cualquier observador externo no puede ni siquiera estar seguro de que se trata de códigos de retorno reales, está escrito por su código, y el código no se adjunta.

Y el registro de funciones tan rápidas a través de las impresoras suele dar problemas. Sería bueno reproducir la situación (entiendo que es difícil), y preferiblemente con el registro de cadenas seguido de un volcado en un archivo.

En cualquier caso, repito, sin un corredor de CD es imposible de entender.

¡Querido Nikolai!

Si todos los programadores de los corredores escriben "sus" códigos de devolución ....

Piensa en lo que pasaría :)

 
Михаил:

¡Querido Nikolai!

Si todos los programadores escriben "sus" códigos de devolución ....

Piensa en lo que pasaría :)

No exageres, el programador del broker configura el servidor una vez en el prelanzamiento, y no cualquier cosa, sino sólo del conjunto disponible.

Pero la configuración del servidor es una cosa intelectual, el fabricante ha hecho disposiciones para las opciones, pero para desarrollar de antemano algunos esquemas de configuración difícil, depende de qué tipo de condiciones que corredor.

Por lo tanto, la configuración de la parte del servidor se hace en el broker, por un lado. La segunda razón por la que tienes que contactar con el broker es porque él tiene un registro de la parte del servidor, y sólo cuando el broker dice tal o cual cosa, este error del servidor ya es posible para MQ, aunque en este caso, no tienes que preocuparte, ellos mismos se pondrán en contacto con el desarrollador.

 
Nikolay Demko:

No te pases, el programador del broker configura el servidor una vez durante la preparación del pre-lanzamiento, y no cualquier cosa, sino del conjunto disponible.

Pero la configuración del servidor es algo inteligente, el fabricante ha previsto las opciones posibles, pero es difícil elaborar de antemano algunos esquemas de configuración, depende de las condiciones del corredor.

Por lo tanto, la configuración de la parte del servidor se hace en el broker, por un lado. La segunda razón por la que hay que contactar con el broker, es porque tiene un registro del lado del servidor y sólo cuando el broker dice tal o cual cosa, este error del servidor ya es posible para MQ, aunque en este caso, no hay que preocuparse, ellos mismos se pondrán en contacto con el desarrollador.

Respuesta del corredor:

Buenas tardes.

No, este ajuste está en el lado de los desarrolladores.

A finales del año pasado se planteó la siguiente cuestión:

Multas en la Bolsa de Moscú por transacciones erróneas. El reglamento completo puede verse enhttp://fs.moex.com/files/4266

Así, por ejemplo, la bolsa penaliza:

Tipo de transacción*.

Resultado de la ejecución (código de error)*

Puntuación Q

AddOrder

Se producen intercambios comerciales (31)

Q1

Insuficiencia de fondos de clientes (332)

Q2

Fondos insuficientes de la empresa de corretaje (333)

Q3

Oferta FOK no consolidada (4103)

Q4

DelOrder

Pedido no encontrado (14)

Q5

MoveOrder

Se produjeron operaciones cruzadas (31)

Q6

No se ha encontrado ninguna orden (50)

Q7

Insuficiencia de fondos de clientes (332)

Q8

Insuficiencia de fondos de la empresa de corretaje (333)

Q9

DelUserOrders

La transacción se ha completado con éxito,

y no se elimina ninguna orden

Q10

En MT5 no hay otros códigos de devolución en los "códigos de devolución del servidor de operaciones" excepto el código de devolución "no hay suficientes fondos del cliente".

Se recibió la siguiente respuestadeMetaQuotes

Hola,

1. Lamentablemente, el tema de la traducción de los códigos de devolución de cambio de una u otra forma no es sencillo y requiere una serie de cambios. Actualmente estamos buscando la solución más adecuada. Lo más probable es que la funcionalidad requerida se añada durante el próximo año.

2. En cuanto a la tabla de operaciones erróneas - teniendo en cuenta que el servidor de operaciones de MT5 lleva a cabo una comprobación preliminar de las solicitudes de operaciones del cliente (incluyendo el control de los requisitos de margen), el intercambio puede ser rechazado realmente en 2 casos:

Tipo de transacción*

Resultado de la ejecución (código de error)*

Q puntuación

AddOrder

Se produjeron intercambios comerciales (31)

Q1

Insuficiencia de fondos de clientes (332)

Q2

Fondos insuficientes de la empresa de corretaje (333)

Q3

Oferta FOK no consolidada (4103)

Q4

DelOrder

Pedido no encontrado (14)

Q5

MoveOrder

Se produjeron operaciones cruzadas (31)

Q6

No se ha encontrado ninguna orden (50)

Q7

Insuficiencia de fondos de clientes (332)

Q8

Insuficiencia de fondos de la empresa de corretaje (333)

Q9

DelUserOrders

La transacción se ha completado con éxito,

y no se elimina ninguna orden

Q10


Ambas cosas son prácticamente improbables.

Saludos,

Mikhail Baturov

Jefe de Asistencia al Usuario de Sistemas de Comercio

Apoyo a la gestión de los sistemas de comercio

Casa de Correos de Otkritie

 

A veces, los MQ se quedan perplejos en algunas respuestas.

Ejemplo:

MQ:"Ambas cosas son prácticamente improbables."

No es de extrañar el motivo del fracaso.

Hubo un cambio en el símbolo MGNT el 12.05.2015 (el paso de precio se convirtió en 1,

los precios deben ser enteros)

Es probable que el corredor no esté al tanto de los cambios de divisas:

Si no tuviera la protección del código de retorno en mi EA,

entonces obtendría miles de transacciones en pocos segundos:

2015.05.15 10:00:10.051 Forts_trader (MGNT-6.15,H1)     StopTrading: Неправильная цена в запросе

Y esta situación también debería ser "improbable".


 

Queridos desarrolladores

Por favor, responda, ¿cuándo va a pagar finalmente

¿atención a los CÓDIGOS DE RETORNO del servidor de comercio?

Cuando un servidor de MT5 "falla" o una bolsa se bloquea, ocurre lo siguiente:

El Asesor Experto envía órdenes para eliminar una orden EXISTENTE, pero la respuesta es

¡¡¡¡"Solicitud no válida" !!!! Y el Asesor Experto sigue "machacando" al servidor con órdenes de borrado

orden.

//+------------------------------------------------------------------+
// Remove order                                                      |
//+------------------------------------------------------------------+
void COrder::Remove()
{
  if ( ticket > 0 )
  {
    if ( OrderSelect( ticket ) )
    {
      mem_magic = ulong( OrderGetInteger( ORDER_MAGIC ) );
      mem_tick = GetTickCount();
      req_id = 0;
      MqlTradeRequest request = {0};
      MqlTradeResult  result  = {0};
            
      request.action = TRADE_ACTION_REMOVE;
      request.order = ticket;
          
      if ( OrderSendAsync( request, result ) )
      {
        if ( result.retcode == TRADE_RETCODE_PLACED )
        { 
          req_id = result.request_id;
//---          
          switch( order_status )
          {
            case BUY_ORDER:  state = ORD_BUY_DO_CANCEL;
                             break;
                
            case SELL_ORDER: state = ORD_SELL_DO_CANCEL;
                             break;           
          } 
          SetTransCount( true );
        }
        else
        {
          mem_magic = 0;
          mem_tick = 0;
          CheckError( result.retcode, "Remove: Результат удаления ордера не верен! Причина: ", order_status, ticket );
        }  
      }
      else
      {
        mem_magic = 0;
        mem_tick = 0;
        CheckError( result.retcode, "Remove: Ордер не отослан! Причина: ", order_status, ticket );
      }
    }
    else
    {
      ticket = 0;
      modify_count = 0;
    }
  }
  else
  {
    modify_count = 0;
  }
}

¿Cómo puede haber una solicitud errónea si el pedido es ACTIVO?

2015.09.15 15:27:31.402 Trades  'xxxxx': failed modify order #20619541 sell limit 35.00 BR-11.15 at 50.33000 sl: 0.00000 tp: 0.00000 -> 49.19000, sl: 0.00000 tp: 0.00000 [Invalid request]
2015.09.15 15:27:32.611 Trades  'xxxxx': failed cancel order #20619541 sell limit 35.00 BR-11.15 at 50.33000 [Invalid request]
2015.09.15 15:27:34.163 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:42.815 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.006 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.358 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.407 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:44.562 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:44.572 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:45.593 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:45.892 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.007 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.407 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.769 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.789 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.819 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.879 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.900 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:28:04.330 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:28:04.330 Trades  'xxxxx': failed cancel order #20619541 sell limit 35.00 BR-11.15 at 50.33000 [Invalid request]
 

La edición constante del puesto ha comenzado de nuevo. Como si eso hiciera que el tema fuera más visible para los desarrolladores.

Estarías mejor en el servicio de atención al cliente frotándolas todos los días en lugar de actualizar el foro con actualizaciones invisibles...

 
Andrey Khatimlianskii:

La edición constante del puesto ha comenzado de nuevo. Como si eso hiciera que el tema fuera más visible para los desarrolladores.

Será mejor que los restriegues en el servicio de atención al cliente todos los días en lugar de actualizar el foro con actualizaciones invisibles...

¡Buenos días, Andrew!

Allí tampoco responde nadie (todo el mundo está "harto").

 
Y aquí, la comunidad será consciente de los problemas actuales.
 

¿Estás, Andrei, en contra de arreglar los errores en MT5 y

¿Estás en contra de que se solucionen los errores de MT5 y se mejore la funcionalidad de la plataforma?