![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
papaklass, c-4
O modelo de resposta do servidor existente através da OnTradeTransaction
fica-me bem, e funciona no meu EA, MAS
a minha primeira mensagem foi que nenhuma mensagem foi devolvida(de todo) do servidor,
que o negócio foi feito (a ordem foi preenchida por 1) e o segundo erro foi
O segundo erro foi que, em vez de uma resposta de que a encomenda foi colocada uma resposta de que foi parcialmente executada (duplicada).
O problema não foi com o manipulador (não tenho queixas contra ele) mas sim com a resposta do servidor (uma resposta não chegou de todo e a outra estava errada).
O modelo de trabalhar com as respostas do servidor no meu EA NÃO se baseia na sequência de respostas do servidor, MAS a resposta deve ser e ser correcta.
Eis o que aconteceu (foto do primeiro post):
O Conselheiro Especialista fez uma encomenda com um volume de 3.
A ordem foi executada por um - as respostas do servidor estão correctas.
Então o Consultor Especialista modificou a ordem - a resposta do servidor é ORDER_STATE_PARTIAL - e a resposta deveria ter sido ORDER_STATE_PLACED.
Depois a ordem foi executada por mais 1 tempo sem qualquer mensagem do servidor.
Alguns dias depois (imagem abaixo) repeti esta sequência - o resultado mudou (provavelmente os criadores corrigiram alguma coisa),
Recebi uma mensagem de que a transacção ocorreu (segundo 21:15:02.232), mas a mensagem sobre a modificação ainda não estava correcta.
É também muito alarmante que três respostas do servidor tenham vindo ao mesmo tempo (21:14:53.049)!
É evidente que tudo funciona no mesmo fio e que as mensagens se acumulam, mas mesmo assim.... Estou a impedir que a EA funcione,
para receber mensagens.
Papaklass!
A questão é que *.ex5 programas funcionam num único fio, se
haverá muitos manipuladores, será ainda pior.
Agora verifiquei especificamente a operação OnTrade e OnTradeTransaction.
Três manipuladores OnTrade ou quatro manipuladores OnTradeTransaction disparam numa ordem de negociação para abrir uma posição de mercado (uma ordem de mercado). Só preciso de um manipulador OnPositionOpened para accionar.
Para fechar uma posição por um stop loss/stake profit, há 3 manipuladores OnTrade ou 3 manipuladores OnTradeTransaction accionados em vez de um OnPositionClosed. A redundância é óbvia!
Estas respostas múltiplas dos operadores de eventos existentes (OnTrade/OnTradeTransaction) não dão uma resposta clara à pergunta: "Que evento comercial aconteceu e qual é o resultado de uma operação comercial? Isto suscita a questão: "Porquê todo este problema?"
Com este processamento redundante de eventos comerciais, podem facilmente ocorrer colisões de diferentes tipos, que levarão a erros, especialmente durante o envio em massa de ordens comerciais pelos clientes.
Portanto, o que aconteceu no seu caso ou no caso de komposter (timeout) não me surpreende pessoalmente.
A forma como os eventos OnTrade e OnTradeTransaction são implementados lembrou-me um episódio de há 20 anos... Lembro-me de ler resenhas de novos jogos para o Spectrum, especialmente memorável foi uma resenha de um jogo, onde foi escrito assim: "... o som do jogo é bom como se pode desligá-lo...". Tenho sensivelmente a mesma atitude em relação aos eventos OnTrade e OnTradeTransaction, eles são apenas tão bons como não os usar.
Eu, por outro lado, uso (com sucesso) estes dois manipuladores!
Se, por alguma razão, a OnTradeTransaction não funcionar, eu verifico
na OnTrade - muito conveniente porque a OnTradeTransaction,
e depois OnTrade.
Eu, por outro lado, uso (com sucesso) estes dois manipuladores!
Se, por alguma razão, a OnTradeTransaction não funcionar, eu verifico
na OnTrade - muito conveniente porque a OnTradeTransaction,
e depois OnTrade.
Seria realmente conveniente utilizar estes eventos (pelo menos para mim) se o Consultor Especialista gerasse um pedido ao servidor com a frequência necessária para um algoritmo de negociação como este
E o servidor responderia imediatamente a esse pedido com informações completas...
Contudo, assumindo que existem "razões objectivas intransponíveis" que impossibilitam a implementação de tal conveniência, contento-me com o que tenho:)
Quem o pode fazer...:)
A propósito, descarregue o API Plaza II a partir do servidor de troca e compreenderá de onde crescem as "pernas".
Por favor não seja mal-educado! A propósito, já são 10!
E está no seu direito de não ler de todo o que aqui está escrito!
Para que serve então o tema? Só para gritar?
Se achar que existe um erro, confirme-o com registos e código (ninguém irá decifrar as suas fotografias).
Se quiser encontrar uma solução fiável, ouça o que eles dizem (abandonar o modelo do evento e analisar o estado actual).
Utilizaria a OnTradeTransaction ouOnTrade apenas para uma reacção imediata à alteração da situação comercial. Mas todo o processamento seria colocado num único manipulador, como sugerido por Vasiliy(OnRefresh()).
Boa sorte!
Para que serve então o tema? Só para gritar?
Se achar que existe um erro, confirme-o com registos e código (ninguém descodificará as suas fotografias).
Se quiser uma solução fiável, ouça o que eles dizem (abandone o modelo orientado para o evento e analise o estado actual).
Utilizaria a OnTradeTransaction ouOnTrade apenas para uma reacção imediata à alteração da situação comercial. Mas todo o processamento seria colocado num único manipulador, como Vasiliy sugeriu(OnRefresh())).
Boa sorte!
komposter!
Ou lê tudo o que escreveu ou...
2.O que quer que escreva nestas páginas é MEU direito como participante de um fórum,
e Rude ANYTHING está longe de ser apropriado!
3. Onde quer que trate o erro, se a resposta do servidor não for o que deveria ser - o resultado será o mesmo - ERROR!
4. Provavelmente não está a negociar sozinho.
pronych e ....
1.>> LUCKY REMOTE é a resposta a um ataque gritante! Qualquer que seja a pergunta, essa é a resposta. >> Podia ter sido um herói... ))
Provavelmente tem a percepção correcta do mundo à sua volta...
2. VOCÊS são PROGRAMANTES ou são "ESCRITORES"?
3. Alguém responde a uma simples pergunta: O que deve o servidor responder ao comando "Modificar Ordem"?
4. Porquê então documentação? Artigos? Feche os olhos e poupe o que quiser! O CLIENTE PAGA de qualquer maneira (e é ele que deve ser drenado também)!