![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Isto porque o valor da tubulação é diferente para pares diferentes.
Acho que o valor do pip é redundante no modo de exibição "lucro em pips
Acho que o valor do ponto é redundante no modo de exibição "lucro em pips
Glitches....
1) Se você remover instrumentos desnecessários do Market Watch e depois adicionar alguns novamente, você obtém uma coisa interessante.
Clique com o botão direito do mouse em um instrumento, selecione "Janela de Gráfico" para abrir um gráfico.
Isto abrirá um gráfico de um instrumento diferente daquele que você selecionou!!!
Para que este erro aconteça, você tem que selecionar uma ferramenta a partir daquela que acabou de acrescentar. (ver screenshots pic1, pic2, pic3)
2) em minha captura de tela você pode ver que o instrumento USDCHF está marcado como selecionado na janela "Symbols", embora não esteja na realidade na "Market Watch". (pic4)
Talvez a primeira falha seja uma conseqüência da segunda, porque a numeração dos instrumentos no Market Watch está errada.
Eu tenho uma Internet muito ruim, por isso todas as capturas de tela estão em arquivo.
Aqui está o linkhttp://www.sendspace.com/file/tbav73
Glitches....
1) Se você remover instrumentos desnecessários do Market Watch e depois adicionar alguns novamente, você obtém uma coisa interessante.
Clique com o botão direito do mouse em um instrumento, selecione "Janela de Gráfico" para abrir um gráfico.
Isto abrirá um gráfico de uma ferramenta diferente daquela que você selecionou!!!
Hoje (ou melhor, ontem) de manhã tive uma estranha falha no MT4 - OrderSelect não encontrou um pedido por número de bilhete em um Expert Advisor.
Dois pedidos pendentes são colocados no EA - BUY_STOP e SELL_STOP, em lados opostos do preço atual. Os números dos bilhetes destes pedidos são armazenados em t1 e t2. O código onde o erro ocorreu, como mostrado abaixo, faz o seguinte: quando uma dessas ordens pendentes é aberta, a segunda é apagada e a próxima ordem pendente com o número t3 é colocada em seu lugar. Se houvesse um erro quando t1 e t2 foram colocados originalmente, o bilhete errado não deveria estar na lista de pedidos. Isto é o que é verificado com (OrderSelect ...) e, em caso de erro, escrevemos uma mensagem no log e saímos da série usando restart().
Hoje a t1 abriu às 6:30. O pedido t2 foi imediatamente eliminado pelo Consultor Especialista (foi eliminado do mercado, mas ficou na história - "cancelado", eu verifiquei). Depois disso, foi colocado o t3. Estes eventos estão todos nos registros da MT e da EA. Então a verificação "OrderSelect(t2, SELECT_BY_TICKET)" retorna FALSE e a série aborta com o erro "Unknown order t2". É estranho, porque o t2 foi definido e apagado sem erros e ficou na história. O modo de histórico em MT é "Todo o histórico". Como a OrderSelect poderia não encontrá-la?
O computador é autônomo, usado apenas para comércio, nada mais. Ninguém toca nele, a não ser eu. A carga da CPU tem uma média de 10%. Memória, espaço em disco, etc. é grande o suficiente.
A versão do MT4 é 402. Há vários meses o Expert Advisor vem trabalhando em diferentes variações em tempo real em uma conta demo em uma MT paralela a três pares diferentes (em três gráficos). Não houve problemas com esta parte do código até esta manhã. Depois disso, tudo correu bem à tarde e à noite para outros pares no mesmo EA. Ou seja, o erro não pode ser reproduzido à vontade.
Pergunta: como isso poderia acontecer? É uma falha na MT ou algo que eu não levei em conta no código?
Este código utiliza as funções OrderDeleteX e OrderSendX - invólucros para OrderDelete e OrderSendX padrão, que adicionam cheques de um tópico de comércio por não estar ocupado e registram eventos como "Deleting order ..." e "Sending order ..." no log do EA.
Eu removi os cálculos de preço para tornar o código mais simples e claro.
Números de ordem em variáveis:
t2 = 119732180
t3 = 119733656
Não consigo encontrar nenhum pedido. Podemos ver pelo relatório DC que a encomenda 67930924 estava aberta.
Estes são negócios fechados na história da conta desde 08.06.11. Como podemos ver, esta ordem não está aqui.
Portanto, deve estar em comércio aberto. A figura abaixo, comércios abertos.
Mas também não está aqui. Pergunto-me que relatório será enviado amanhã pela DC, mas eu quero ouvir a versão dos desenvolvedores de software, como ela pode ser.
E mais uma coisa, talvez não seja importante, mas meu par não está salvo e eu não tenho nenhuma informação sobre isso.
Não consigo encontrar nenhum pedido. Podemos ver pelo relatório DC que a encomenda 67930924 estava aberta.
Estes são negócios fechados no histórico da conta a partir de 08.06.11. Como podemos ver, esta ordem não está aqui.
Portanto, deve estar em comércio aberto. A figura abaixo, comércios abertos.
Mas também não está aqui. Pergunto-me que relatório será enviado amanhã pela DC, mas eu quero ouvir a versão dos desenvolvedores de software, como ela pode ser.
E mais uma coisa, talvez não seja importante, mas meu encontro não é salvo, eu não o salvo e escolho o período sempre pode ser mês.
Como uma continuação do tema "OrderSelect não encontrou um pedido por número de bilhete".
Esta manhã, o mesmo erro ocorreu no mesmo Expert Advisor em outro par. A ordem pendente t2=#119899844 foi colocada com sucesso, depois foi apagada com sucesso também, após o que a ordem pendente t3=#119903758 foi colocada, e depois disso t2 não foi encontrada pela função OrderSelect.
Entre o erro de ontem e o de hoje, o código dado em minha mensagem anterior no Expert Advisor funcionou com sucesso várias vezes sem erros e as ordens eliminadas foram encontradas sem problemas.
Durante vários meses antes disso, o Expert Advisor vinha trabalhando na versão MT4 229. Nada como isto foi observado antes. No fim de semana de 4 dias atrás eu mudei para a versão 402. Não sei se os erros estão relacionados com a nova versão. Não posso voltar à versão antiga, porque a Alpari, onde este Expert Advisor está negociando, mudou o fuso horário das citações, e somente a versão 402 reflete corretamente estas mudanças (assim a Alpari alega).
As questões permaneceram em aberto:
Como isso pôde acontecer, por que a OrderSelect não encontrou a ordem na história, enquanto a história é exibida em sua totalidade, a ordem perdida é visível nela? Isto é uma falha da MT ou estou perdendo algo no código?
Existe uma DLL escrita em Delphi7. Ele tem apenas uma função - verificar se o arquivo existe no caminho especificado.
Aqui está seu código.
Nada de complicado, nada de especial, apenas uma função.
Aqui está o código do Expert Advisor que usa esta função:
e aqui está o código do arquivo de cabeçalho
Aqui está o código do arquivo de cabeçalho. Se houver apenas um Expert Advisor no terminal, tudo funcionará como um relógio.
Se eu tenho dois deles no terminal em janelas diferentes e eles chamam essa função, então a cada poucas horas, tanto os EAs param de funcionar como as mensagens aparecem no diário