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
Boa tarde a todos!
Eu tenho uma situação um pouco diferente. Corretor BCS. Uma ordem de mercado não é executada na primeira vez.
Enviando uma ordem de compra no mercado. A função retorna "Pedido feito" e o número do pedido, mas o pedido não é realmente executado!
E assim o robô faz muitas tentativas. Envia uma ordem de compra ao mercado, recebe uma resposta bem-sucedida, mas não negocia. Ao mesmo tempo, o número do pedido na resposta é sempre novo.
Como resultado, a posição será aberta mais cedo ou mais tarde, mas você terá que bombardear o corretor com ordens, o que está claramente errado.
Por favor me ajude, não entendo se meu robô está com bugs ou se o corretor está atrapalhando? Não há reclamações sobre o robô, todas as funções de verificação funcionam conforme o esperado e as respostas são verificadas.
Os corretores ligaram, mas o "consultor" encolheu os ombros, como se um negócio fosse aberto com as mãos, então houvesse um erro no robô , mas aqui eles estão fora do negócio.
Boa tarde a todos!
Eu tenho uma situação um pouco diferente. Meu corretor é a BCS. A ordem de mercado não é executada na primeira tentativa.
Eu envio uma ordem de compra no mercado. A função retorna "Ordem colocada" e o número da ordem, mas na realidade a ordem não é executada!
E assim o robô faz muitas tentativas. Envia uma ordem de compra no mercado, recebe uma resposta bem sucedida, mas sem acordo. O número do pedido na resposta é novo a cada vez.
Como resultado, a posição será aberta mais cedo ou mais tarde, mas tenho que bombardear o corretor com ordens, o que é obviamente errado.
Não sei se meu robô está com defeito ou se meu corretor está com defeito. Eu não tenho nenhuma reivindicação para o robô, todas as rotinas de verificação estão funcionando corretamente e as respostas estão sendo verificadas.
Chamei os corretores, mas o "consultor" apertou suas mãos e disse que se um acordo é aberto à mão, significa que o robô está errado e que eles não têm nada a ver com isso.
Sergiy!
É difícil dizer alguma coisa sem ter visto seu código.
Mas, a julgar pela impressão, você não controla adequadamente a colocação do pedido.
Sergei!
É muito difícil dizer sem ver seu código.
Mas, a julgar pela impressão, você não está controlando corretamente a configuração do pedido.
Mikhail, este é o registro terminal, ou seja, ele aceita o pedido, diz que está correto, devolve o código de sucesso e o número do pedido, ou seja, ele coloca o pedido na fila de execução, mas não executa. E muitas, muitas vezes.
Mas eu acho que já descobri.
De acordo com o algoritmo, o risco permitido permite que você abra uma negociação para todo o depósito. Volume do negócio = fundos disponíveis / GO, ou seja, o depósito é usado quase até o último centavo. (Isto é um erro, é claro, e não deve ser feito desta maneira).
Tecnicamente, temos dinheiro suficiente para abrir um negócio neste volume e o pedido é verificado pelo terminal e aceito pelo kernel MT5(a função OrderSend retorna verdadeiro e o número do pedido),
Mas então a ordem é rejeitada em algum lugar na fila de execução (no corretor ou na porta de entrada com a troca) e não é executada como resultado. É aqui que entra a falha do MT5 no lado da Metacquotes.
O problema é que eu, como cliente, não estou de forma alguma informado sobre isso. Tudo correu bem para o robô, mas na verdade a ordem foi rejeitada pelo corretor/gateway/exchange (eu só posso especular aqui).
A função OrderSend deveria ter rejeitado o pedido e devolvido o código de erro TRADE_RETCODE_NO_MONEY ao robô, mas isso não aconteceu por algum motivo.
Provavelmente, precisamos rastrear a execução da OnTradeTransaction em detalhes.
Michael, é o registro terminal, ou seja, aceita o pedido, diz que está corretamente preenchido, devolve o código de sucesso e o número do pedido, ou seja, coloca o pedido na fila de execução, mas não executa. E muitas, muitas vezes.
Mas eu acho que já descobri.
De acordo com o algoritmo, o risco permitido permite que você abra uma negociação para todo o depósito. Volume de transações = fundos disponíveis / CS, ou seja, o depósito é usado quase até o último centavo. (É claro que isto é um erro, você não pode fazer isso).
Tecnicamente, temos dinheiro suficiente para abrir um negócio neste volume e o pedido é verificado pelo terminal e aceito pelo kernel MT5(a função OrderSend retorna verdadeiro e o número do pedido),
Mas então a ordem é rejeitada em algum lugar na fila de execução (no corretor ou na porta de entrada com a troca) e não é executada como resultado. É aqui que entra a falha do MT5 no lado da Metacquotes.
O problema é que eu, como cliente, não estou de forma alguma informado sobre isso. Para o robô foi um sucesso, mas na verdade a ordem foi rejeitada pelo corretor/gateway/exchange (eu só posso especular aqui).
A função OrderSend deveria ter rejeitado a ordem e devolvido o código de erro TRADE_RETCODE_NO_MONEY ao robô mas por alguma razão não o fez.
Mais uma vez, você não está controlando corretamente a configuração do pedido.
Só porque você recebeu um BILL de um pedido não significa que o pedido é colocado na troca!
Mais uma vez, repito que você não está controlando corretamente a configuração do pedido.
Só porque você recebeu um BILL de um pedido não significa de forma alguma que o pedido tenha sido feito na troca!
Concordo, pois afinal tenho aqui uma lacuna de conhecimento sobre esta questão.
Nunca encontrei tal comportamento antes, eu trivialmente enviei por mercado e sempre abri ou recebi um erro imediatamente.
Eu não precisei entrar em detalhes de nuances de baixo nível de execução de pedidos na fila. E aqui...
De acordo, como acontece, tenho aqui uma lacuna de conhecimento sobre este assunto.
Eu nunca tinha encontrado este comportamento antes, eu trivialmente enviei por mercado e ele sempre se abriu ou recebeu um erro imediatamente.
Geralmente, eu não tinha necessidade de entrar nos detalhes de baixo nível de execução de pedidos na fila. E aqui...
Após receber um pedido, use a função OrderRealSelect()
https://www.mql5.com/ru/forum/67298/page2#comment_2089220
Isto é mais ou menos o que você deve fazer:
Isto é mais ou menos o que você deve fazer:
Aitugan, talvez haja alguns comentários afinal de contas? :((
Compreendo, é claro, que não quero muito distraí-lo de suas férias no Chipre, mas de alguma forma o silêncio se prolongou por um tempo obscenamente longo. :((