Fala gurizada.
Observei algo um pouco atípico, no Strategy Tester a rotina funciona conforme esperado. Contudo na conta real, observei que não exluiu as ordens pendentes (BUY LIMIT).
Poderiam verificar o que há de incorreto? Senão fornecer outra rotina para excluir todas as ordens de um simbolo específico?
Esta misturando posicao com ordens. Se voce tem uma posição selecionada, voce pode pegar os dados da posicao com PositionGet*, pra pegar dados de ordens somente via OrderGet* e a mesma regra se aplica. Tu precisa ter dado um orderselect ou orderselectbyticket para pegar os dados corretamente. Assim, se mover a atribuicao do "orderPendingSymbol" pra depois de ter obtido o valor do ticket, já esta tudo bem com esse dado, dai basta corrigir o if para usar essa variavel.
Esta misturando posicao com ordens. Se voce tem uma posição selecionada, voce pode pegar os dados da posicao com PositionGet*, pra pegar dados de ordens somente via OrderGet* e a mesma regra se aplica. Tu precisa ter dado um orderselect ou orderselectbyticket para pegar os dados corretamente. Assim, se mover a atribuicao do "orderPendingSymbol" pra depois de ter obtido o valor do ticket, já esta tudo bem com esse dado, dai basta corrigir o if para usar essa variavel.
Valeu guri.
Encontrei mais um probleminha a corretora (brasileira óbvio, gambiarra sempre há) também havia uma espécie de delay na confirmação para deletar as ordens pendentes. Como a instrução OrderDelete está num loop FOR, o MT5 cliente roda mais rápido do que o servidor da corretora. Observei no LOG que dava erro, "falha para cancelar a ordem", levava quase 100mS para confirmar o cancelamento, sendo o ping é de 15 mS. Bom, o jeito foi fazer uma rotina de scan de verificação.
Mesmo assim, obrigado.
Valeu guri.
Encontrei mais um probleminha a corretora (brasileira óbvio, gambiarra sempre há) também havia uma espécie de delay na confirmação para deletar as ordens pendentes. Como a instrução OrderDelete está num loop FOR, o MT5 cliente roda mais rápido do que o servidor da corretora. Observei no LOG que dava erro, "falha para cancelar a ordem", levava quase 100mS para confirmar o cancelamento, sendo o ping é de 15 mS. Bom, o jeito foi fazer uma rotina de scan de verificação.
Mesmo assim, obrigado.
Tem uma no mercado brasileiro que não devolve cancelamento (se for sincrono vai ficar preso uns 2 minutos acredito), mas ti devolve quase instantaneamente um reject na ordem cancelada (e isso o terminal não entende e fica aguardando o timeout).
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Fala gurizada.
Observei algo um pouco atípico, no Strategy Tester a rotina funciona conforme esperado. Contudo na conta real, observei que não exluiu as ordens pendentes (BUY LIMIT).
Poderiam verificar o que há de incorreto? Senão fornecer outra rotina para excluir todas as ordens de um simbolo específico?