Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 708

 
Rustam Bikbulatov:
Olá, pessoal. Você pode me dizer por que tenho algumas dúzias de pedidos que estão fechados em um pedido escalonado ou em um pedido diferente? Como devo consertá-lo? Existe um método de fechamento imediato?

ao fechar - alterar a ordem dos pedidos

ou seja, o laço deve ser

for(int i=OrdersTotal()-1;i>=0;i--){...}

pelo menos :-)

PS. desde que se tenha pisado no "it" - fechar ordens em uma ordem "escalonada" às vezes pode ser útil.
 
Maxim Kuznetsov:

ao fechar - alterar a ordem dos pedidos

ou seja, deve haver um ciclo

pelo menos :-)

PS. Desde que você pisou de qualquer forma - fechar pedidos em uma ordem "escalonada "às vezes pode ser útil.

Se for um fechamento controlado ;)

Em geral (embora seu comentário esteja correto) a questão era sobre o "método de fechamento imediato", o que não pode ser feito em loop.

Aqui você precisa abrir a posição oposta com um lote igual à soma dos lotes de todas as posições abertas para travamento, e depois fechar silenciosamente a posição oposta.

 
Artyom Trishkin:

Se for um fechamento controlado ;)

E em geral (embora seu comentário esteja correto) a questão era sobre o "método de fechamento imediato", o que não pode ser feito em loop.

Você precisa abrir uma posição oposta com um lote igual à soma de todos os lotes de todas as posições abertas para travamento, e depois fechar silenciosamente o lote oposto.

E o que o impede de fechar os pedidos um a um?

 
Rustam Bikbulatov:

e o que impede que as ordens sejam fechadas em ordem?

Compensação dos índices de ordens na lista de mercado quando elas são eliminadas em um loop direto de zero para OrdensTotal()-1.

 
Rustam Bikbulatov:

o que impede que as ordens sejam fechadas em ordem?

Ou você fecha todas as posições abertas no ciclo reverso de OrderTotal()-1 a >=0 em ordem de sua ordem na lista, ou você abre uma posição oposta para travamento, e então fecha silenciosamente as posições necessárias com uma posição oposta.

 
Obrigado Artem!
 
Artyom Trishkin:

Se for um fechamento controlado ;)

Em geral (embora seu ponto esteja correto) a questão era sobre o "método de fechamento imediato", o que não pode ser feito em loop.

Aqui você precisa abrir a posição oposta com um lote igual à soma de lotes de todas as posições abertas para travamento, e depois já fechar silenciosamente com o balcão

O método de fechamento mais apropriado é chamar seu agente: "John, feche a posição na General Electric, nós concordamos em tudo".

:-)

Nem sempre é possível cobrir com o volume oposto. E desliza com mais força - o volume é grande.

 
Artyom Trishkin:

Offset de índices de ordens na lista de mercado ao excluí-las em seqüência direta de zero para OrdensTotal()-1.

Vi o código de fechamento de ordens em uma seqüência direta e funcionou sem falhas.

Aí só aumentava o contador de laço por um quando um pedido era fechado com sucesso. )))) Ou foi diminuído? Não me lembro exatamente e não posso esforçar meu cérebro.

 
Maxim Kuznetsov:

O método mais correto de fechamento é chamar seu agente: "John, feche a posição na General Electric, nós concordamos em tudo".

:-)

Nem sempre é possível cobrir com contra volume. E desliza com mais força - o volume é alto.

Mas tudo de uma só vez :) E em um loop, um de cada vez.

 
Alexey Viktorov:

Vi o código para fechar pedidos em uma seqüência direta e funcionou sem qualquer falha.

Ele simplesmente aumentou o contador de laço em um quando o pedido foi fechado com sucesso. )))) Ou o diminuiu? Não me lembro exatamente, e não posso esforçar meu cérebro.

Para não sobrecarregar seu cérebro, você pode reunir todas as posições preparadas para exclusão em uma lista na ordem que desejar (em qualquer ordem que desejar), e excluí-las "nome por nome" olhando para a lista. Dessa forma, a ordem correta de eliminação será mantida.