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

 
Михаил:

Você e eu estamos falando "línguas diferentes".

O pedido, pode ser excluído como resultado de uma transação cruzada,

e um ORDER_STATE_CANCELED com um código de retorno de "0".

Isto não tem nada a ver com o corretor.

Você entende que o MT5 é uma plataforma universal e ao se adaptar às condições de um gateway particular, o Corretor (cada corretor) configura a parte do servidor à sua própria maneira.

O que o programador do corretor escreve no servidor retornará.

Portanto, a questão deve ser resolvida diretamente com o departamento de suporte técnico do corretor. Somente eles têm os logs do servidor, somente eles podem esclarecer a situação.

Neste caso, qualquer observador externo não pode sequer ter certeza de que estes são códigos de retorno reais, eles são escritos por seu código, e o código não está anexado.

E o registro de funções tão rápidas através de impressoras muitas vezes dá uma bagunça. Seria bom reproduzir a situação (eu entendo difícil), e de preferência com o corte de cordas seguido de despejo em um arquivo.

Em qualquer caso, é impossível descobrir isso sem um Corretor de CDs.

 
Nikolay Demko:

Você entende que o MT5 é uma plataforma universal, e ao se adaptar às condições de um gateway em particular, o Corretor (cada corretor) configura a parte do servidor à sua própria maneira.

O que o programador do corretor escreve o servidor retornará.

Portanto, a questão deve ser resolvida diretamente com o departamento de suporte técnico do corretor. Somente eles têm os logs do servidor, somente eles podem esclarecer a situação.

Neste caso, qualquer observador externo não pode sequer ter certeza de que estes são códigos de retorno reais, eles são escritos por seu código, e o código não está anexado.

E o registro de funções tão rápidas através de impressoras muitas vezes dá uma bagunça. Seria bom reproduzir a situação (eu entendo difícil), e de preferência com o corte de cordas seguido de despejo em um arquivo.

Em qualquer caso, repito, sem um corretor de CDs é impossível de entender.

Prezado Nikolai!

Se TODO o pgrammer do corretor escreverá "seus" códigos de retorno....

Pense no que aconteceria :)

 
Михаил:

Prezado Nikolai!

Se TODOS os corretores pgrammer escreverem "seus" códigos de retorno....

Pense no que aconteceria :)

Não exagere, o programador do corretor configura o servidor uma vez no pré-lançamento, e não apenas qualquer coisa, mas apenas a partir do conjunto disponível.

Mas a instalação do servidor é uma coisa intelectual, o fabricante fez provisões para opções, mas para desenvolver antecipadamente alguns esquemas de instalação difícil, depende de que tipo de condições qual corretor.

Portanto, a configuração da parte do servidor é feita no corretor, por um lado. A segunda razão pela qual você tem que entrar em contato com o corretor é porque ele tem um registro da parte do servidor, e somente quando o corretor diz assim e assim, este bug de servidor já é possível para a MQ, embora neste caso, você não precisa se preocupar, eles mesmos entrarão em contato com o desenvolvedor.

 
Nikolay Demko:

Não exagere, o programador do corretor configura o servidor uma vez durante a preparação do pré-lançamento, e não apenas qualquer coisa, mas a partir do conjunto disponível.

Mas a configuração do servidor é uma coisa inteligente, o fabricante forneceu as opções possíveis, mas é difícil desenvolver antecipadamente alguns esquemas de configuração, depende do tipo de condições que um corretor tem.

Portanto, a configuração da parte do servidor é feita no corretor, por um lado. A segunda razão para entrar em contato com o corretor, é porque ele tem um registro do lado do servidor e somente quando o corretor diz assim e assim, este bug de servidor já é possível para a MQ, embora neste caso, não é preciso se preocupar, eles mesmos entrarão em contato com o desenvolvedor.

Resposta do corretor:

Boa tarde.

Não, este cenário está do lado dos desenvolvedores.

No final do ano passado, foi levantada a seguinte questão:

Moscou Multas de câmbio por transações errôneas. O regulamento completo pode ser visto emhttp://fs.moex.com/files/4266

Assim, por exemplo, a troca penaliza:

Tipo de transação*.

Resultado da execução (código de erro)*

Pontuação Q

AddOrder

Ocorreu comércio cruzado (31)

Q1

Insuficiência de fundos do cliente (332)

Q2

Insuficiência de fundos da corretora (333)

Q3

Oferta FOK não consolidada (4103)

Q4

DelOrder

Ordem não encontrada (14)

Q5

MoveOrder

Ocorreram trapaças (31)

Q6

Nenhuma ordem foi encontrada (50)

Q7

Insuficiência de fundos do cliente (332)

Q8

Fundos insuficientes da empresa de corretagem (333)

Q9

DelUserOrders

A transação foi concluída com sucesso,

e nenhuma ordem é excluída

Q10

No MT5 não há outros códigos de retorno no "trade server return codes", exceto o código de retorno "not enough client funds".

A seguinte resposta foi recebidadaMetaQuotes

Olá,

1. Infelizmente, a questão da tradução dos códigos de retorno de intercâmbio de uma forma ou de outra não é simples e requer uma série de mudanças. Estamos atualmente procurando a solução mais apropriada. Muito provavelmente a funcionalidade necessária será acrescentada durante o próximo ano.

2. Com relação à tabela de transações errôneas - levando em conta que o servidor comercial MT5 realiza uma verificação preliminar dos pedidos comerciais do cliente (incluindo o controle dos requisitos de margem), a troca pode ser recusada em 2 casos:

Tipo de transação*

Resultado da execução (código de erro)*

Nota Q

AddOrder

Ocorreu comércio cruzado (31)

Q1

Insuficiência de fundos do cliente (332)

Q2

Insuficiência de fundos da corretora (333)

Q3

Oferta FOK não consolidada (4103)

Q4

DelOrder

Ordem não encontrada (14)

Q5

MoveOrder

Ocorreram trapaças (31)

Q6

Nenhuma ordem foi encontrada (50)

Q7

Insuficiência de fundos do cliente (332)

Q8

Fundos insuficientes da empresa de corretagem (333)

Q9

DelUserOrders

A transação foi concluída com sucesso,

e nenhuma ordem é excluída

Q10


Ambas são praticamente improváveis.

Cumprimentos,

Mikhail Baturov

Chefe de Suporte ao Usuário de Sistemas Comerciais

Gerenciamento de suporte de sistemas comerciais

Otkritie Brokerage House

 

Às vezes, os MQs ficam perplexos em algumas respostas.

Exemplo:

MQ:"Ambos são praticamente improváveis."

Não é de admirar qual foi a razão do fracasso!

Houve uma mudança no símbolo MGNT em 12.05.2015 (a etapa de preço tornou-se 1,

os preços devem ser números inteiros)

O corretor provavelmente não está acompanhando as mudanças de câmbio:

Se eu não tivesse proteção de código de retorno em minha EA,

então eu conseguiria milhares de transações em poucos segundos:

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

E tal situação também deve ser "improvável"!


 

Caros desenvolvedores!

Por favor, responda, quando você finalmente pagará

atenção aos CÓDIGOS DE RETORNO do servidor comercial?

Quando um servidor MT5 "falha" ou uma troca trava, acontece o seguinte:

O Expert Advisor envia ordens para apagar uma ordem EXISTENTE, mas a resposta retorna

"Pedido inválido" !!!! E o Expert Advisor continua "batendo" no servidor com ordens de exclusão

ordem.

//+------------------------------------------------------------------+
// 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;
  }
}

Como pode haver um pedido errado se o pedido é ATIVO?

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]
 

A edição constante do posto começou novamente. Como se isso tornasse o tópico mais visível para os desenvolvedores.

Você estaria melhor no Service Desk esfregando-os todos os dias em vez de atualizar o fórum com atualizações invisíveis...

 
Andrey Khatimlianskii:

A edição constante do posto começou novamente. Como se isso tornasse o tópico mais visível para os desenvolvedores.

É melhor esfregá-los todos os dias no balcão de atendimento ao invés de atualizar o fórum com atualizações invisíveis...

Bom dia, Andrew!

E ninguém responde lá também (todos estão "fartos").

 
E aqui, a comunidade estará ciente dos problemas atuais.
 

Você, Andrei, é contra a correção de bugs no MT5 e

Você é contra corrigir bugs no MT5 e melhorar a funcionalidade comercial da plataforma?