1. terminal, em operação de expedição bem sucedida (a encomenda caiu com sucesso da aeronave, mas não sabemos o que se segue)
2. desculpas pela tautologia, mas vou responder da mesma forma: Sim, o código 10008 é o código de resposta do servidor comercial. Sim, este código é definido pelo terminal no momento de... próximo ponto 1.
Porque é que está a tentar encontrar entre linhas o que já está escrito explicitamente?
O modelo de ordem de comércio assíncrona envolve múltiplos eventos e estados de ordem:
Actualmente em MT5:
- CREATED - o próprio facto da função OrderSendAsync e OrderSend ser chamada (este estado de ordem em MT5 não é de modo algum identificável do exterior).
- Se a encomenda for CANCELADA (o próprio terminal cortou-a através dos seus filtros). Por exemplo, o preço limite é pior do que o preço actual), a resposta é negativa por OrderSend e OrderSendAsync.
- OPENED é o resultado de TRADE_RETCODE_PLACED (a sua encomenda passa com sucesso pelos filtros internos do terminal e é enviada para o servidor) para OrderSendAsync.
- SUBMIT_OK - o servidor aceitou a sua ordem de troca. Se for uma ordem pendente, a OrderSend irá completar a sua execução. Se Mercado - continuar a esperar.
- FILLED - a sua encomenda está em estado de execução (por exemplo, enviou-a através de STP e está à espera de uma resposta). Continuar a esperar.
- FILL_OK - a sua encomenda foi executada. Se Mercado - OrderSend irá completar a sua execução.
Por favor, ver os diagramas acima para mais detalhes.
1. terminal, em operação de expedição bem sucedida (a encomenda caiu com sucesso da aeronave, mas não sabemos o que se segue)
2. desculpas pela tautologia, mas vou responder da mesma forma: Sim, o código 10008 é o código de resposta do servidor comercial. Sim, este código é definido pelo terminal no momento de... próximo ponto 1.
Porque é que está a tentar encontrar entre as linhas do que já está escrito explicitamente?
Não estou à procura de "entre as linhas", mas mais uma vez, estou a tentar compreender as fases de duas (agora) funções comerciais.
No seu comentário à função OrderSendAsync, diz que"a função é semelhante a OrderSend() em finalidade e parâmetros". Mas, a julgar pela sua resposta, a função OrderSendAsync não é exactamente a mesma que a função OrderSendAsync. Este último destina-se a verificar o pedido comercial no servidor, pelo que os códigos devolvidos por OrderSend() são os códigos gerados pelo próprio servidor, e não alguma outra substância. No caso de OrderSendAsync() o código de retorno é gerado pelo terminal, pelo que este código (código 10008) não pode ser considerado como código de retorno do servidor. Isto é "código gerado pelo terminal", mesmo que o inclua formalmente na lista de códigos do servidor.
Por outras palavras, as duas funções são duas abordagens: "Código gerado pelo servidor" versus "Código gerado pelo terminal". A este respeito, as funções não são as mesmas. Conhecer esta subtileza é necessário para compreender correctamente se o "código de retorno" está a vir do servidor ou do terminal.
OPENED é o resultado de TRADE_RETCODE_PLACED for OrderSendAsync.
Podemos concluir que TRADE_RETCODE_PLACED (10008) é de todo inútil em termos das suas expectativas quando se utiliza a função OrderSend original?
Gracias para o diagrama!
Como traduzir correctamente "Order condition gets met met"?
Podemos concluir que TRADE_RETCODE_PLACED (10008) é de todo inútil em termos das suas expectativas quando se utiliza a função OrderSend original?
TRADE_RETCODE_PLACED não tem nada a ver com OrderSend sequenceSend.
Como traduzir correctamente "Order condition gets met met"?
O preço actual satisfaz a condição de encomenda. Em vez de FILLED pode ser CANCELADO, por exemplo, se não houver margem suficiente para executar a ordem.
Mais uma vez, para trabalhar de forma assíncrona, precisamos de um poderoso sistema de eventos, onde à chegada há uma opção a receber:
- A mensagem de texto do evento.
- O tempo da sua criação.
- A que ordem se refere.
- O tipo de mensagem (notícias, ordem, estado da comunicação, etc.)
A arquitectura da própria plataforma deve ser muito bem pensada. Se existem lacunas na fase de concepção da arquitectura, é extremamente difícil contorná-las a fim de se alcançar a universalidade.
hrenfx:
Podemos concluir que TRADE_RETCODE_PLACED (10008) é de todo inútil em termos das suas expectativas quando se utiliza a função OrderSend original?
TRADE_RETCODE_PLACED não tem nada a ver com OrderSend sequenceSend.
Mais uma vez, para trabalhar de forma assíncrona, é necessário um sistema de eventos poderoso onde seja possível recuperar à chegada:
- A mensagem de texto do evento.
- O tempo da sua criação.
- A que ordem se refere.
- Tipo de mensagem (notícias, ordem, estado da comunicação, etc.)
Pronto! Cheguei a isto intuitivamente há cerca de meio ano atrás, e vocês confirmam-no :) Já bom :)
Uma pessoa fica sempre feliz quando alguém confirma a correcção do seu raciocínio. Não importa quão verdade seja.
Deve ser esclarecido:
TRADE_RETCODE_PLACED for OrderSend é a resposta do servidor.
TRADE_RETCODE_PLACED for OrderSendAsync é uma resposta terminal.
Embora os códigos sejam idênticos, eles têm um significado bastante diferente. É muito provável que os criadores resolvam esta ambiguidade.
É por isso que o deve compreender:
TRADE_RETCODE_PLACED к последовательной OrderSend не имеет никакого отношения.
deve ser compreendido no contexto apropriado.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
A descrição diz quea função OrderSendAsync() foi concebida para realizar operações assíncronas sem esperar que o servidor responda ao pedido enviado. Na execução bem sucedida, o código de resposta na variável de resultado contém o valor TRADE_RETCODE_PLACED ( código 10008) - "order placed". Execução bem sucedida de . não nos dá qualquer garantia de que o pedido tenha chegado ao servidor comercial e sido aceite para processamento.
Por um lado, sabemos que o campo retcode contém o código de retorno do servidor comercial - ou seja, assume-se que este código é gerado pelo servidor, e não pelo terminal do utilizador. Por outro lado, o Manual de Referência afirma que paraOrderSendAsync() funciona um dos códigos a ser gerado pelo servidor (código 10008) pode ser devolvido, mesmo que o pedido de troca em si não tenha chegado ao servidor de troca.
Pergunta 1: Onde exactamente (em que fase) é gerado o código 10008 paraa função OrderSendAsync? [Assumindo que este código pode ser devolvido sem que o servidor comercial esteja envolvido].
Pergunta 2: O código 10008 é o código do servidor comercial ou este código é gerado no lado do terminal do cliente antes de o pedido comercial ser recebido pelo servidor?