Códigos de Retorno do Servidor de Negociação

Todas as solicitações para executar operações de negociação são enviadas como uma estrutura de uma solicitação de negociaçãoMqlTradeRequestusando a funçãoOrderSend(). O resultado da execução da função é colocado na estrutura MqlTradeResult, cujo campo retcode contém o código de retorno do servidor de negociação.

Código

Constante

Descrição

10004

TRADE_RETCODE_REQUOTE

Nova Cotação

10006

TRADE_RETCODE_REJECT

Solicitação rejeitada

10007

TRADE_RETCODE_CANCEL

Solicitação cancelada pelo negociador

10008

TRADE_RETCODE_PLACED

Ordem colocada

10009

TRADE_RETCODE_DONE

Solicitação concluída

10010

TRADE_RETCODE_DONE_PARTIAL

Somente parte da solicitação foi concluída

10011

TRADE_RETCODE_ERROR

Erro de processamento de solicitação

10012

TRADE_RETCODE_TIMEOUT

Solicitação cancelada por expiração de tempo (timeout)

10013

TRADE_RETCODE_INVALID

Solicitação inválida

10014

TRADE_RETCODE_INVALID_VOLUME

Volume inválido na solicitação

10015

TRADE_RETCODE_INVALID_PRICE

Preço inválido na solicitação

10016

TRADE_RETCODE_INVALID_STOPS

Stops inválidos na solicitação

10017

TRADE_RETCODE_TRADE_DISABLED

Negociação está desabilitada

10018

TRADE_RETCODE_MARKET_CLOSED

Mercado está fechado

10019

TRADE_RETCODE_NO_MONEY

Não existe dinheiro suficiente para completar a solicitação

10020

TRADE_RETCODE_PRICE_CHANGED

Os preços se alteraram

10021

TRADE_RETCODE_PRICE_OFF

Não existem cotações para processar a solicitação

10022

TRADE_RETCODE_INVALID_EXPIRATION

Data de expiração da ordem inválida na solicitação

10023

TRADE_RETCODE_ORDER_CHANGED

Estado da ordem alterada

10024

TRADE_RETCODE_TOO_MANY_REQUESTS

Solicitações com freqüência em excesso

10025

TRADE_RETCODE_NO_CHANGES

Sem alterações na solicitação

10026

TRADE_RETCODE_SERVER_DISABLES_AT

Autotrading desabilitado pelo servidor

10027

TRADE_RETCODE_CLIENT_DISABLES_AT

Autotrading desabilitado pelo terminal cliente

10028

TRADE_RETCODE_LOCKED

Solicitação bloqueada para processamento

10029

TRADE_RETCODE_FROZEN

Ordem ou posição congeladas

10030

TRADE_RETCODE_INVALID_FILL

Tipo de preenchimento de ordem inválido

10031

TRADE_RETCODE_CONNECTION

Sem conexão com o servidor de negociação

10032

TRADE_RETCODE_ONLY_REAL

Operação é permitida somente para contas reais

10033

TRADE_RETCODE_LIMIT_ORDERS

O número de ordens pendentes atingiu o limite

10034

TRADE_RETCODE_LIMIT_VOLUME

O volume de ordens e posições para o ativo atingiu o limite

10035

TRADE_RETCODE_INVALID_ORDER

Incorreto ou proibida tipo de ordem

10036

TRADE_RETCODE_POSITION_CLOSED

Posição com a especificação POSITION_IDENTIFIER já foi fechado

10038

TRADE_RETCODE_INVALID_CLOSE_VOLUME

O volume que se pode fechar excede o volume da posição atual

10039

TRADE_RETCODE_CLOSE_ORDER_EXIST

Para a posição indicada já existe uma ordem de fechamento. Pode aoontecer no trabalho no sistema de cobertura:

  • ao tentar fechar a posição oposta, se já existir uma ordem para fechamento desta posição
  • ao tentar fechar completa ou parcialmente, se o volume total de ordens existentes para fechamento e o volume total da ordem re-colocada excede o volume da posição atual

10040

TRADE_RETCODE_LIMIT_POSITIONS

O número de posições abertas, que pode estar simultaneamente na conta, pode ser limitado pelas definições do servidor. Quando é atingido o limite, em resposta à colocação de uma ordem, o servidor retorna o erro TRADE_RETCODE_LIMIT_POSITIONS. A restrição opera de forma diferente dependendo do tipo de cálculo para as posições da conta:

  • Sistema de compensação – considera o número de posições abertas. Ao atingir o limite, a plataforma não permite colocar novas ordens, cuja execução pode aumentar o número de posições abertas. Na verdade, a plataforma irá colocar ordens apenas para os símbolos que já têm posições abertas. No sistema de compensação, durante a verificação do limite, não são levadas em conta as ordens pendentes atuais, uma vez que sua execução pode conduzir a uma alteração nas posições atuais, em vez de um aumento do seu número.
  • Sistema de cobertura – além das posições abertas, são consideradas as ordens pendentes colocadas, uma vez que sua execução sempre conduz à apertura de uma nova posição. Ao atingir o limite, a plataforma não permite colocar tanto ordens de mercado para abrir posições quanto ordens pendentes.

10041

TRADE_RETCODE_REJECT_CANCEL

O pedido de ativação da ordem pendente foi rejeitado, e a ordem cancelada

10042

TRADE_RETCODE_LONG_ONLY

O pedido foi rejeitado, porque, no símbolo, foi definida a regra "Somente são permitidas posições longas"  (POSITION_TYPE_BUY)

10043

TRADE_RETCODE_SHORT_ONLY

O pedido foi rejeitado, porque, no símbolo, foi definida a regra "Somente são permitidas posições curtas" (POSITION_TYPE_SELL)

10044

TRADE_RETCODE_CLOSE_ONLY

O pedido foi rejeitado, porque, no símbolo, foi definida a regra "Só é permitido o fechamento de posição"

10045

TRADE_RETCODE_FIFO_CLOSE

O pedido foi rejeitado, porque, no símbolo, foi definida a regra "Só é permitido o fechamento da posição existente segundo o princípio FIFO" (ACCOUNT_FIFO_CLOSE=true)

10046

TRADE_RETCODE_HEDGE_PROHIBITED

O pedido foi rejeitado, porque, no símbolo, foi definida a regra "Proibido abrir posições opostas segundo um mesmo símbolo". Por exemplo, se a conta tiver uma posição Buy, o usuário não poderá abrir uma posição Sell ou colocar uma ordem de venda pendente. A regra só pode ser aplicada em contas com sistema de cobertura (ACCOUNT_MARGIN_MODE=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING).