Erros, bugs, perguntas - página 2186

 
fxsaber:

Pergunta MT4.

Já encontrei isto uma vez antes e tropeçei novamente com este insecto num teste HFT.

Eu estabeleço BuyLimit, o preço decompõe-se e fica em baixo durante muitos minutos. Ao mesmo tempo, o BuyLimit é amarelo aceso mas "não executado".


Tentativas de modificação

2018.04.09 19:15:41.242 '89015117': modification of invalid order #108362456

Quando a vi, lembrei-me desta situação há muito tempo atrás. A receita então e como acabou por se revelar agora é sempre a mesma - voltar a ligar. Após o contacto, verifica-se que BuyLimit tem sido há muito tempo (desde o momento da travessia) uma posição Buy.

Ao mesmo tempo, antes do restabelecimento da ligação, podíamos negociar outras encomendas e tudo estava bem com elas, apenas a BuyLimit pairava.


Acontece que não há notificação no terminal MT4 de que BuyLimit se tenha tornado uma posição de compra. E, consequentemente, é uma chatice até se fazer um novo login.

Tenho de me lembrar como resolvi esta situação. Mas tenho 99% de certeza de que em caso de erros ou odores apenas fui forçado a relogar através do WinAPI.

Faz sentido escrever a SD sobre o assunto, uma vez que afinal é MT4? Não tenho notado nada disso em 5.


Parece ser da mesma ideia:

Olá! No MT4, quando se apaga uma ordem de limite colocada dentro do spread, muitas vezes surge uma situação de erro - a ordem a ser apagada fica pendurada, o que só pode ser resolvido recarregando o terminal. Tanto quanto entendi o mecanismo , ele ocorre da seguinte forma:

1 ) Fixamos um limite dentro do spread, próximo do preço Ask (para ordens de compra Limit) ou Bid (para ordens devenda Limit) e após algum tempo tentamos apagá-lo.

2 ) Enviamos um comando OrderDelete(), enquanto este comando vai para o servidor, a ordem pode já ser executada no servidor (está dentro do spread, muito próximo do preço de activação). Parece que quando o comando chega ao servidor, será aplicado à ordem de mercado e obteremos um erro no terminal e uma ordem congelada. Neste caso, a ordem no terminal permanece uma ordem limite (também definida como uma ordem limite pela função OrderType()) e só aparecerá como uma ordem de mercado após um reinício do terminal. Se continuar a apagá-lo como limite , verá um erro no registo do Expert Advisor com o código: 3, e no registo do terminal:[Parâmetrosinválidos ]. Na verdade, não são possíveis acções com tal ordem suspensa - é uma ordem limitada no terminal do cliente e uma ordem de mercado no servidor . A encomenda também não pode ser apagada manualmente.

Anexei uma EA simplificada (apenas para Buy Limit), para reprodução de erros e um perfil com 8 EA instalados em paralelo (o erro aparece mais rapidamente do que se o erro for apanhado por uma EA - embora também ocorra com uma EA instalada). A ordem de compra é fixada em 1 ponto de cinco dígitos abaixo do preço Ask e é removida após 1 segundo após ter sido fixada. Se definir uma encomenda mesmo 5 pontos abaixo do preço de pedido e a eliminar após qualquer número de segundos/minutos/horas, o erro continuará a acontecer de vez em quando, apenas com menos frequência porque o mecanismo da sua aparência não muda.

É necessário iniciar o terminal e aguardar que a ordem pendente apareça. Normalmente não se deve esperar mais do que uma hora, dependendo da actividade do mercado.


Aplicação aberta, Início: 2017.06.06.12:37, #1766459


Em Outubro de 2017, fui escrito por servicedesk que eles conseguiram reproduzir esta situação e que estavam a trabalhar numa solução para o problema. E desde então tem havido silêncio...

 
Pavel Kolchin:

produto não pode ser descarregado do mercado, o que posso fazer?


Tente novamente.

 
zenz:


Isto é da mesma linha, como parece:

Olá! No MT4, quando se apaga uma ordem limite localizada dentro de um spread, há frequentemente uma situação de erro - a ordem apagada fica pendurada, que só pode ser curada reiniciando o terminal. Tanto quanto entendi o mecanismo , ele ocorre da seguinte forma:

1 ) Fixamos um limite dentro do spread, próximo do preço Ask (para ordens de compra Limit) ou Bid (para ordens devenda Limit) e após algum tempo tentamos apagá-lo.

2 ) Enviamos um comando OrderDelete(), enquanto este comando vai para o servidor, a ordem pode já ser executada no servidor (está dentro do spread, muito próximo do preço de activação). Parece que quando o comando chega ao servidor, será aplicado à ordem de mercado e obtemos um erro no terminal e uma ordem congelada. Neste caso, a ordem no terminal permanece uma ordem limite (também definida como uma ordem limite pela função OrderType()) e só aparecerá como uma ordem de mercado após um reinício do terminal. Se continuar a apagá-lo como limite , verá um erro no registo do Expert Advisor com o código: 3, e no registo do terminal:[Parâmetrosinválidos ]. Na verdade, não são possíveis acções com tal ordem suspensa - é uma ordem limitada no terminal do cliente e uma ordem de mercado no servidor . A encomenda também não pode ser apagada manualmente.

Anexei uma EA simplificada (apenas para Buy Limit), para reprodução de erros e um perfil com 8 EA instalados em paralelo (o erro aparece mais rapidamente do que se o erro for apanhado por uma EA - embora também ocorra com uma EA instalada). A ordem de compra é fixada em 1 ponto de cinco dígitos abaixo do preço Ask e é removida após 1 segundo após ter sido fixada. Se definir uma encomenda mesmo 5 pontos abaixo do preço de pedido e a eliminar após qualquer número de segundos/minutos/horas, o erro continuará a acontecer de vez em quando, apenas com menos frequência porque o mecanismo da sua aparência não muda.

É necessário iniciar o terminal e aguardar que a ordem pendente apareça. Normalmente não se deve esperar mais do que uma hora, dependendo da actividade do mercado.


Aplicação aberta, Início: 2017.06.06.12:37, #1766459


Em Outubro de 2017, fui escrito por servicedesk que eles conseguiram reproduzir esta situação e que estavam a trabalhar numa solução para o problema. E, desde então, tem havido silêncio....

Muito bem feito por ter chegado ao fundo da questão, incluindo a reprodução! De facto, o ambiente comercial no Terminal ainda não está sincronizado com o Trade Server.

No entanto, não houve actualizações após Maio de 2017 (build 1090) e o problema foi reproduzido em Outubro. O timing é difícil de dizer, mesmo para o MT5, e ainda mais para o 4.

Aparentemente, os criadores não consideraram este bug crítico. Penso que é inaceitável. Penso que é inaceitável, porque quase ninguém trabalha com ordens de limite e dentro do spread.


ZZY Na sua candidatura à CBO, diga olá da minha parte. Talvez seja banal, eles esqueceram-se.

 
Fast235:

porque diz Backtest quando se guarda um relatório comercial?



Este é o relatório do separador "Backtest" no testador de estratégias, certo?

 
Alexander:

Este é o relatório do separador "Backtest" no testador de estratégias, certo?


É apenas uma forma oculta de promover o seu relatório.

 

Pode dizer-me por favor qual é o erro?

(2018.04.10 15:20:13.844 A versão de depuração do "MQL5\Experts\Probe5.ex5" pode ser optimizada apenas em agentes locais, sem Nuvem, sem Quinta)

Já estou lixado com a optimização. Ou concorda em funcionar na rede local, ou não o faz!

 
AVAAR:

Pode dizer-me por favor qual é o erro?

(2018.04.10 15:20:13.844 A versão de depuração do "MQL5\Experts\Probe5.ex5" pode ser optimizada apenas em agentes locais, sem Nuvem, sem Quinta)

Já estou lixado com a optimização. Ou concorda em funcionar na rede local ou não funciona!

Compilar por F7, não por F5.

 
AVAAR:

Pode dizer-me por favor qual é o erro?

(2018.04.10 15:20:13.844 A versão de depuração do "MQL5\Experts\Probe5.ex5" pode ser optimizada apenas em agentes locais, sem Nuvem, sem Quinta)

Já estou lixado com a optimização. Ou concorda com a rede local, ou não concorda!

O texto destacado é a raiz do seu erro.

É necessário compilar o ficheiro antes de o optimizar.

 
Alexander:

Este é o relatório do separador Backtest no testador de estratégias, certo?

Não, isto é do modo Ferramentas, comércio real, eu queria mostrar o resultado, mas diz Backtest)

do Testador de Estratégia campos adicionais no relatório

 
Vladislav Andruschenko:


É apenas uma forma disfarçada de promover o seu relatório.

pelo menos não é um pipsqueak)