Exclusão de ordens aberto (erro de loop)

 

Boa tarde,

Estou quebrando a cabeça,  tentei diversas combinações, mais acho que a varivel OrdersTotal muda a cada ordem excluida no loop, o código abaixo só funciona para 1 ordem a ser excluída, se tem mais de uma ordem, sempre deixa 1 sem excluir.

 

tmp_quant_ordens = OrdersTotal();

for (tmp_cont=0;tmp_cont<=tmp_quant_ordens;tmp_cont++)
            {
               tmp_tickt=OrderGetTicket(tmp_cont);
               funcao_remove_ordem( tmp_tickt)

            }


Alguém sabe como contornar essa situação?

Grato,

Daniel 

 
Assim, até dei um jeitinho, consigo excluir todas com while (OrdersTotal()>0), só que preciso usar o FOR para poder fazer a consistência de quais ordens excluir de acordo com cada estratégia e ativo. A solução provisória foi repetir o loop 2 vezes, na primeira ele exclui todas menos 1, na segunda exclui a última, mais deve haver uma solução para um único loop.
Razão: