ORDER_POSITION_ID - página 4

 
papaklass:

Programadores têm uma regra - discuta o código!

Se você tiver um problema com seu código, DEVE afixar o código onde encontrou o problema. Em tal situação, você certamente encontrará alguém disposto a ajudá-lo. Mas você está inventando algo novo: você está tentando discutir um problema que encontrou "em seus dedos" sem o código.

Não me surpreenderei se, num futuro próximo, suas perguntas ficarem sem resposta não apenas no Service Desk, mas também no fórum.

Tente tirar as conclusões corretas e não seja estúpido. :)

Não tenho problemas com o funcionamento do código!

Eu originalmente prashivala:

QUE USA O SEGUINTE CÓDIGO:

long pos_id = long( OrderGetInteger( ORDER_POSITION_ID ) );

Quando você vai aprender a ler a pergunta?

 
Mikalas:

Não tenho problemas com o funcionamento do código!

Eu originalmente fiz o prasheed:

QUE USA O SEGUINTE CÓDIGO:

Quando você vai aprender a ler a pergunta?

Você também perguntou:

Comigo, quando uma ordem é parcialmente executada, pos_id sempre = 0

Por quê?

 
Contender:

Você também perguntou:

Sim, eu fiz, então não precisei pedir isso mais tarde a alguém que usa esse código.

 
Mikalas:

Comigo, quando uma ordem é parcialmente executada pos_id sempre = 0

Por quê?

Da ajuda da MQ:

ORDER_POSITION_ID

O identificador de posição que é colocado na ordem quando ela é executada. Cada ordem executada gera uma negociação, que abre uma nova posição ou modifica uma já existente. O identificador desta posição é definido para a ordem executada naquele momento.

Isto pode ser devido ao fato de que ela (a ordem) ainda não foi totalmente executada, e é possível que esta ordem participe da formação de outra posição.
 
Yurich:
Talvez isto se deva ao fato de que ela (a ordem) ainda não foi totalmente executada, e é possível que esta ordem participe da formação de outra posição.

É um prazer falar com você, Yurich, bom dia!

Mas a questão é que tenho feito minhas experiências comORDER_POSITION_ID

no demo-server (ninguém está me impedindo de rastrear o programa).

E a chamada de função

long GetOrderPosId( const ulong ticket )

é chamada em uma situação de "satisfação".

E fiquei preocupado com isso, com a sua dica, com a magia, mais uma vez, muito obrigado!

Eu entendo as frases que você destacou, mas então por que você escreveu MQ?

Cadaordem executada gerauma negociação, que abre uma novaposição ou modifica uma já existente

Isso é o que me confunde.

O acordo éORDER_POSITION_ID, talvez eu esteja errado, mas não há resposta mz servicedesk.

Se eu simplesmente cancelar o pedido após ter sido parcialmente executado, ele não teráORDER_POSITION_ID?

O identificador desta posição édefinido para a ordem executada naquele momento.

 
Mikalas:

E a chamada de função

ocorre em uma situação "resolvida".

Você está pedindo a identificação da ordem colocada, não a ordem executada. A ordem executada ficará na história.

 
Mikalas:


Se eu simplesmente cancelar o pedido após ter sido parcialmente executado, ele não teráum ORDER_POSITION_ID?

Em teoria, a história deveria mostrar a parte executada da ordem. Ou não está lá?

Eu lhe fiz uma pergunta que você não notou:https://www.mql5.com/ru/forum/35432/page2#comment_1042916

 
Yurich:

Você está pedindo a identificação da ordem colocada, não a ordem executada. A ordem executada ficará na história.

Isto é,ORDER_POSITION_ID para os dados do histórico?

Mas em Ajuda:

Propriedades dos pedidos

As ordens para a realização de operações comerciais são processadas por ordens. Cada pedido tem muitas propriedades para ler, e as informações sobre eles podem ser obtidas usando as funções OrderGet...() e HistoryOrderGet...().

 
Contender:

Você está observando este mandado parcialmente executado. Onde está? Na lista de comércio ou nos executados?

O pedido está ativo.
 
Mikalas:
Isto é,ORDER_POSITION_ID para dados históricos?
sim