Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1058

 

EmMqlTradeResult resultado.preço recebo 0 quando uma ordem limite é executada (BUY STOP no meu caso).

O resto dos campos, tais como volume, ordem, etc., vêm com dados. Porque é que o preço é 0? Ou qual é a forma correcta de o fazer?

p.s. Estou a assistir em debugger sobre a história.

 
leonerd:

EmMqlTradeResult resultado.preço recebo 0 quando uma ordem limite é executada (BUY STOP no meu caso).

O resto dos campos, tais como volume, ordem, etc., vêm com dados. Porque é que o preço é 0? Ou qual é a forma correcta de o fazer?

p.s. Estou a procurar no depurador sobre a história.

Pois bem, faz. Quando ORDER_TYPE_BUY em resultado.preço eu recebo preço, mas quando ORDER_TYPE_BUY_STOP lá recebo 0. Porquê?

 
O preço no comércio confirmado pelo corretor. Depende do campo dodesvio nopedido comercial e/ou do tipo decomércio


Isto é, isto é, isto é apenas para uma transacção. E como obter o preço da encomenda depois de a ter definido através de OrderSend()? Quero dizer através da resposta daMqlTradeResult e não através de quaisquer manipuladores de transacções. Não compreendemos porque é que se houver um acordo, a resposta conterá o preço mas se houver uma ordem limite, o preço não estará lá.

 
leonerd:

Isto é, isto é, isto é apenas para uma transacção. E como obter o preço da encomenda após a sua definição através de OrderSend()? Quero dizer através da resposta daMqlTradeResult e não através de quaisquer manipuladores de transacções. De alguma forma não é claro porque é que se houver uma troca, a resposta conterá o preço, mas se houver uma ordem limite, não veremos o seu preço.

Pedido.preço.

 
fxsaber:

Pedido.preço.

Hipoteticamente o preço do pedido pode ser alterado no servidor e a encomenda pode ser definida com um preço diferente do que o preço da encomenda.

 
leonerd:

Hipoteticamente, o preço do pedido poderia ser alterado no servidor e a encomenda poderia ser definida com um preço diferente do que o preço da encomenda.

Isto só é possível se uma ordem de mercado for enviada com Request.price = 0.

ZZY No MT4 esta questão nunca incomodou ninguém. Porque deveria ser um problema no MT5?
 
fxsaber:

Isto só é possível se uma ordem de mercado for enviada com Request.price = 0.

ZS No MT4 esta questão nunca incomodou ninguém. Por que razão deve surgir no MT5?

Há aqui obviamente algum tipo de erro lógico. MqlTradeResult é o resultado de uma operação comercial. Uma ordem de limite é uma operação comercial? Sim. O volume e outros parâmetros chegam a esta estrutura. Mas porque não o preço? Não é claro.

 
leonerd:

Há aqui obviamente algum tipo de erro lógico. MqlTradeResult é o resultado de uma operação comercial. Uma ordem de limite é uma operação comercial? Sim. O volume e outros parâmetros chegam a esta estrutura. Mas porque não o preço? Não é claro.

Uma ordem pendente não é uma operação comercial. É uma ordem de execução ao preço especificado na ordem. Uma transacção ocorrerá após a execução da ordem - uma transacção que irá gerar uma posição ou modificar uma posição existente, dependendo do tipo de conta (hedge, netting).

 
Artyom Trishkin:

Uma ordem pendente não é uma operação comercial. É uma ordem de execução ao preço especificado na ordem. Uma transacção ocorrerá quando a ordem for executada - uma transacção que originará ou modificará uma posição existente, dependendo do tipo de conta (cobertura, netting).

OK, eu falei mal. Vamos citar a fonte original:

Estrutura do resultado do pedido de comércio (MqlTradeResult)

Emresposta aum pedido de negociação para colocar uma ordem no sistema de negociação, o servidor de negociação devolve dados contendo a informação sobre o resultado do processamento do pedido de negociação como uma estrutura especial pré-definida MqlTradeResult.


p.s. Onde está a citação no editor? Tenho de entrar em html? Que inconveniente.

 

p.s. где ж тут цитирование в редакторе? Мне в хтмл что ли лезть? Как неудобно-то.

encontrado
Razão: