Como verificar se um pedido é selecionado - página 3

 
FAQ:

ordenar por seleção e nada mais.

O selecionador de pedidos não sabe se um pedido é selecionado no momento, e qual pedido é selecionado no momento se for selecionado, então você está completamente errado.

 
Ant_TL:

O seletor de pedidos não sabe se um pedido é selecionado no momento, então você está completamente errado.

Olhe para qualquer EA! Você é o primeiro a tentar selecionar por conta própria! Aprenda! Por que você está tão envergonhado em todo o fórum?
 

Para os que estão no tanque :

1) há muito tempo, em uma função distante, você selecionou um pedido e fez algum trabalho sobre ele.

2) Depois de muito tempo, você quer acessá-la novamente e descobrir mais sobre seu destino.

3) você contacta o pedido e o terminal diz: não há pedido (ou seja, o pedido ainda não foi selecionado, você o colocou e esqueceu com sucesso seu nome (bilhete)). == erro

O que impede que você selecione o pedido, no momento em que já o escolheu, para armazenar seu nome (bilhete) em uma variável global, e então, em vez de retornar a ele usando um nome há muito esquecido (bilhete), selecione-o usando o valor desta variável global.

Se ele contém o nome do pedido, então você terá uma resposta positiva de que não o esqueceu, e poderá aprender seu destino ou fazer qualquer ação com ele.

Mas se você esqueceu seu nome, basta obter uma resposta negativa da função de seleção da ordem, e perceber que a ordem deve ser procurada novamente na lista.

Whew... isso é muito texto...

 
borilunad:
Olhe para qualquer EA! Você é o primeiro a tentar selecioná-lo a seu próprio critério! Aprenda! Por que você tem tanta vergonha de si mesmo em todo o fórum?

Não sou eu quem está envergonhado, são aqueles que não entendem as coisas básicas sobre as quais estou escrevendo (mas estão tentando "ensinar" de forma bastante agressiva).

O que significa "verificar se um pedido foi selecionado"?

Isso significa que em qualquer momento da execução de um programa em mql4, existe uma construção interna, como a ordem atualmente selecionada. Apenas usando OrderSelect, podemos fazer qualquer pedido aberto/fechado selecionado por bilhete ou número na lista.

Entretanto, não podemos verificar se um pedido está selecionado no momento e qual é seu número via OrderSelect, mas apenas selecionar um pedido usando os dados que já conhecemos, tais como seu bilhete ou seu número na lista.

 
FAQ:

para aqueles que estão no tanque :

Para aqueles que estão no tanque, é claro que posso escrever minha própria função OrderSelect, que além de selecionar uma ordem irá escrever seu bilhete para o global e depois determinar este bilhete se eu precisar saber se a ordem é selecionada, mas isto é chamado de solução simples de problemas através da ...

 
FAQ:

Para os que estão no tanque :

1) Há muito tempo, em uma função distante, você selecionou um pedido e fez algum trabalho sobre ele.

2) Depois de muito tempo, você quer acessá-la novamente e descobrir mais sobre seu destino.

3) você contacta o pedido e o terminal diz: não há pedido (ou seja, o pedido ainda não foi escolhido, você o colocou e esqueceu com sucesso seu nome (bilhete)). == erro

Se esta mensagem realmente impedir que você selecione o pedido, seu nome (bilhete) será armazenado em uma variável global e, em vez de retornar a ela (busca) usando um nome há muito esquecido (bilhete),

Se tiver o nome do pedido, você receberá uma resposta positiva de que não o esqueceu, e poderá descobrir o que aconteceu com ele ou fazer algo com ele.

Mas se você esqueceu seu nome, você recebe apenas uma resposta negativa da função de seleção da ordem e descobre que a ordem tem que ser procurada na lista novamente.

Whew... isso é muito texto...

Ele provavelmente acha que devemos procurar o bilhete pelo número que o CD nos dá e vemos na tabela?
 
Ant_TL:

O erro é "assustador" porque não deveria haver erro

A ordem pode executar, e pode retornar um erro, e você não pode evitar este erro.

 
Figar0:

Mas não é um erro de programação, e pior, você não pode passar sem tais "erros" na MQL. A ordem pode executar, mas pode retornar um erro, e você não pode evitar este erro.

É isso mesmo. Mas não concordo que não possamos ir a lugar algum sem tais erros. Deixar tais erros em código é apenas um código ruim. É uma situação em que não se pode passar sem gerar erros - um defeito do conjunto de ferramentas. Os erros de execução são uma coisa bem diferente, não são realmente erros do Consultor Especialista, mas é uma indicação para o Consultor Especialista de outras ações a serem tomadas.

 

Na verdade, tem havido muita demagogia.

bool OrderSelect( int index, int select, int pool=MODE_TRADES)
A função seleciona uma ordem para trabalhar com ela. Devolve VERDADEIRO se a função for concluída com sucesso. Devolve FALSO se a função falhar. Ligue para GetLastError() para obter informações sobre o erro.

Tudo o que você precisa saber se um pedido é escolhido ou não.

Ant_TL:

Se você o diz, justifique seu ponto de vista

void SomeFunс()

{

int tick=OrderTicket(); // Поразумевает ордер выбраный посредством OrderSelect  (ну или ошибку)

// ..... 

if(tick>0) OrderSelect(tick,SELECT_BY_TICKET);  // Так зачем его еще раз выбирать??? 
} 
 
borilunad:
Ele provavelmente acha que devemos procurar o bilhete pelo número que o CD nos dá e vemos na tabela?

Não, ele está realmente no tanque.
Razão: