Fazer um serviço de certificação para programadores ... - página 5

 
VOLDEMAR:

Gostaria muito de saber o que há de errado com esta opção ???

Tem uma sequência de n ordens. Seleccionou uma ordem m(m<n) com a função OrderSelect.

Durante o processamento da ordem m, o servidor fecha a ordem m-1, e a posição da ordem m (que está a processar) muda para m-1.

No ciclo seguinte, vai processar a ordem m-1 e pensa que é uma nova ordem, mas não, é a mesma ordem m

Que mudou a sua posição e tomou o lugar da encomenda fechada pelo servidor. Assim, processa duas encomendas de seguida

a mesma ordem, duas vezes seguidas.

Документация по MQL5: Торговые функции / OrderSelect
Документация по MQL5: Торговые функции / OrderSelect
  • www.mql5.com
Торговые функции / OrderSelect - Документация по MQL5
 
MrGold166:
é mql4 ...
Pensei que estávamos no fórum 5 :)
 

Está tudo misturado em casa...

Se a MQL6 for introduzida e a MQL4 ainda não tiver desaparecido, o que acontecerá então?

 
sandex:

Tem uma sequência de n ordens. Seleccionou encomendar m(m<n) com OrderSelect.

Enquanto estiver a processar a ordem m, o servidor fecha a ordem m-1 e a posição da ordem m (que está a processar) muda para m-1.

No ciclo seguinte, vai processar a ordem m-1 e pensa que é uma nova ordem, mas não, é a mesma ordem m

Que mudou a sua posição e tomou o lugar da encomenda fechada pelo servidor. Assim, processa duas encomendas de seguida

a mesma ordem.

Eu não concordo ... E que os utilizadores do fórum nos julguem ....

for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{

Temos 10 encomendas no terminal ... mas na lista as encomendas são 0 1 2 3 4 5 6 7 8 9 Dez ? 0 da programação é difícil de remover.

Então OrdensTotal() terá um valor de 10, mas na contagem inversa tomamos o total de ordens como 10-1, i.e. 9, e quando chegamos a 0, chamamos mais uma integração do laço 0>=0

significa que nos resta 1 ordem, que passamos a examinar neste ponto 0>=0.

Nada é demasiado natural ou errado ....

 

Ahaa! Já percebi o objectivo deste fio!

Ajudará a identificar codificadores que possam estar a dizer disparates ou estúpidos no mesmo fio.

O que significa que passam automaticamente pelo algoritmo: dito estúpido - proibição. :)

Portanto, sinta-se à vontade para expressar os seus pensamentos mais "inteligentes". Talvez tenha sorte ;)

 
sandex:
No pior dos casos, só nos impede se contarmos as encomendas, por exemplo o preço médio, uma encomenda será contada 2 vezes. Mesmo que interfira fortemente nos cálculos, no próximo tick tudo voltará ao seu lugar e nós colocaremos o take profit onde deveria estar. Na minha memória, com mais de 50 ordens e com o pior dos chamados "corretores" asiáticos (sim, sabe a quem me refiro) isto nunca aconteceu depois de a conta ter sido negociada (sabe porquê). Mas também pode ser evitada:

int i,last_ticket;
for(i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS) {
   if(OrderTicket()==last_ticket) continue;
   last_ticket=OrderTicket();
   }
Документация по MQL5: Торговые функции / OrdersTotal
Документация по MQL5: Торговые функции / OrdersTotal
  • www.mql5.com
Торговые функции / OrdersTotal - Документация по MQL5
 
um é melhor do que o outro))))
 
snowman:

um é melhor do que o outro))))
Só pode troll? Ofereça a sua versão com uma explicação ...
 
VOLDEMAR:
Só pode troll ???? Ofereça a sua versão com uma explicação ...
Porquê? Para quem? A sensação de que aqui só se pode discutir sobre como navegar correctamente nas ordens e quem de todos os programadores aqui presentes é digno de trabalhar em Job.
 
snowman:
Para quê? Para quem? Estão todos no mesmo lugar, mas não têm qualquer ideia de como lidar com as encomendas e quem de todos os programadores aqui presentes é digno de trabalhar em Job.
Se não tem nada de bom a dizer, mantenha-se calado ou fale com bom senso, ..... Se soubesse alguma coisa, mostrar-me-ia... Ou desculpe? Ou não sabe nada ....