Porque na demo MT5 só compra e vende na BID? Falha grave ao meu ver!

 

Eu queria tirar a dúvida do título desse post.

Assim como mostra na imagem em anexo da ação GOAU4, por exemplo:

Compra à mercado ou bid a 8,13

Venda à mercado ou ask 8,12

Na conta real, se eu clico no botão de comprar, ele vai comprar a 8,13 nesse caso, e depois se eu clicar no botão de vender, ele vende a 8,12. Na real está certo.

Bom, mas na demo eu notei que ele compra e vende SOMENTE na BID.

No exemplo acima, eu clicando pra comprar a 8,13, ele compraria a 8,13, mas se eu clicar para vender a 8,12, na demo vende a 8,13. E mesmo se nessa configuração eu entrasse vendido primeiro, ou seja clicasse pra vender a 8,12, ele vende a 8,13. Muito bugado isso.

Só que isso gera uma grande ilusão na hora de testar robôs na demo e no backtest.

Porque razão no MT5 na demo é dessa forma? Que custa programar para comprar na bid e vender na ask?

No Tryd, Profit, na demo funciona perfeitamente como deveria ser. Realmente não entendo o porque dessa falha gravíssima, ao meu ver, do MT5.

Se alguém puder me explicar porque é programado assim, agradeço, pois não consigo encontrar razão alguma para ser dessa forma errada.

Arquivos anexados:
 
Deve ser algum problema no seu MT5, comigo sempre foi normal nas contas DEMO como deve ser.
Os problemas de robôs não tem muito a ver com isso. A ilusão existe mas é causada por uma soma de vários fatores. Há maneiras de se programar uma certa margem de erro. (a maioria dos robôs não são programados com essa margem aliás).

Só corrigindo, você inverteu o BID com ASK no seu texto.
BID é o valor mais baixo, melhor oferta de compra, quando vende a mercado você vende o preço BID
ASK é o valor mais alto, melhor oferta de venda, quando compra a mercado você compra o preço ASK

 
 
Isso, confundi os nomes.
De qualquer forma, a situação que coloquei acima não acontece só comigo, e sim com diversas pessoas. Você é o primeiro que me diz que na demo funciona perfeitamente. Aliás, a primeira vez que ouvi falar sobre isso foi num grupo de telegram sobre robôs, onde a pessoa dizia que era assim que era feito nos backtests. Já desinstalei colocando pra excluir todos os dados, limpei o pc com Ccleaner, Revo Uninstaller, reinstalei várias vezes e nada. Um amigo que me chamou a atenção, pois o EA dele estava sempre saindo 1 centavo de diferença na real em relação à demo, e notei isso no meu também. Aí testei fazer na mão, e aconteceu a mesma coisa. Como faço pra resolver? 

 
Olha o vídeo onde mostro que isso acontece na demo. Já na real isso não acontece:

https://drive.google.com/file/d/14pGcSk4s4fJcaubgsUCaj_4E0RlNsq0O/view?usp=drivesdk
 
Roger Oliveira:
Olha o vídeo onde mostro que isso acontece na demo. Já na real isso não acontece:

https://drive.google.com/file/d/14pGcSk4s4fJcaubgsUCaj_4E0RlNsq0O/view?usp=drivesdk

O vídeo está em uma qualidade que não tem como dar opiniões.
Mas antes de tudo.
Conta DEMO de qual corretora?
Está dentro do horário de negociação com ativo fora do leilão? (o meta trader na conta demo não identifica muito bem os leilões da B3)
Sobre o EA sair com diferença é dificil opinar sem saber a programação do EA. Cada EA é programado de uma maneira.


 

Corretora Clear. Sim, estava em horário normal de pregão, era de tarde. Mas no vídeo eu não estava usando EA. Eu clico manualmente em comprar a mercado em 8.18 e o MT5 compra a 8.18. Clico pra vender a mercado à 8.17 e vende a 8.18. Já na conta real se eu fizesse o mesmo procedimento teria vendido a 8.17 corretamente. Resumindo, na demo o MT5 compra a mercado corretamente, mas vende a mercado errado. Isso que não entendo o porquê que acontece. Pelo que me falaram, na demo e em backtest por ticks o MT5 usa o last dos preços, aí por isso dá esse erro. Confere?



 
Roger Oliveira:

Você tem razao. Acabei de checar aqui. As corretoras brasileiras estão com algum problema nesse sentido. Pode ser alguma configuração nos servidores DEMO das corretoras.

 
Roger Oliveira:

Eu queria tirar a dúvida do título desse post.

Assim como mostra na imagem em anexo da ação GOAU4, por exemplo:

Compra à mercado ou bid a 8,13

Venda à mercado ou ask 8,12

Na conta real, se eu clico no botão de comprar, ele vai comprar a 8,13 nesse caso, e depois se eu clicar no botão de vender, ele vende a 8,12. Na real está certo.

Bom, mas na demo eu notei que ele compra e vende SOMENTE na BID.

No exemplo acima, eu clicando pra comprar a 8,13, ele compraria a 8,13, mas se eu clicar para vender a 8,12, na demo vende a 8,13. E mesmo se nessa configuração eu entrasse vendido primeiro, ou seja clicasse pra vender a 8,12, ele vende a 8,13. Muito bugado isso.

Só que isso gera uma grande ilusão na hora de testar robôs na demo e no backtest.

Porque razão no MT5 na demo é dessa forma? Que custa programar para comprar na bid e vender na ask?

No Tryd, Profit, na demo funciona perfeitamente como deveria ser. Realmente não entendo o porque dessa falha gravíssima, ao meu ver, do MT5.

Se alguém puder me explicar porque é programado assim, agradeço, pois não consigo encontrar razão alguma para ser dessa forma errada.

O MT5 sempre foi assim. Conta Real é diferente de Conta DEMO ou Backtest, pois nestes ele não respeita Fila no Book de Ofertas.

E, você está confundindo os conceitos de BID e ASK.

;)

 
Roger Oliveira:

Eu queria tirar a dúvida do título desse post.

Assim como mostra na imagem em anexo da ação GOAU4, por exemplo:

Compra à mercado ou bid a 8,13

Venda à mercado ou ask 8,12

Na conta real, se eu clico no botão de comprar, ele vai comprar a 8,13 nesse caso, e depois se eu clicar no botão de vender, ele vende a 8,12. Na real está certo.

Bom, mas na demo eu notei que ele compra e vende SOMENTE na BID.

No exemplo acima, eu clicando pra comprar a 8,13, ele compraria a 8,13, mas se eu clicar para vender a 8,12, na demo vende a 8,13. E mesmo se nessa configuração eu entrasse vendido primeiro, ou seja clicasse pra vender a 8,12, ele vende a 8,13. Muito bugado isso.

Só que isso gera uma grande ilusão na hora de testar robôs na demo e no backtest.

Porque razão no MT5 na demo é dessa forma? Que custa programar para comprar na bid e vender na ask?

No Tryd, Profit, na demo funciona perfeitamente como deveria ser. Realmente não entendo o porque dessa falha gravíssima, ao meu ver, do MT5.

Se alguém puder me explicar porque é programado assim, agradeço, pois não consigo encontrar razão alguma para ser dessa forma errada.


Conta Demo não respeita book. Com isso você não entra na fila e consegue executar volumes surreais. Ele vai te executar todos os lotes que você quer baseado no último valor negociado. Por exemplo, nesse caso de GOAU4 se tiver no bid 8,13 2mil ações e 8,12, 3mil ações e você pendurar um buy limit em 8,12 de 10mil ações, para o metratrader basta sair qualquer negociação no 8,12 (exemplo alguém agredir 100 ações em 8,12) que a conta demora vai dar como executado sua compra de 10mil ações em 8,12. (Sem respeitar filas e volumes).

Quando você quiser zerar a posição a mercado ele vai olhar qual foi o último preço negociado, se a última negociação ocorreu em 8,12, entretanto o book andou para 8,05 e 8,06 quando clicar em zerar ele vai executar em 8,12 todos seus lotes (pode ser 1 milhão de ações), porque foi o último preço negociado.


Logicamente o Metatrader não é melhor programa para simular o mercado, mas entendendo suas limitação é possível utilizá-lo para operações mais demoradas como: position, swing trade e operações de tendência. Porém para quem quer simular operações rápidas como: scalpers e tape reading em que o ask e bid são cruciais para as operações eu recomendaria outro programa de simulador que respeite o book de negociação e suas filas. 


O mesmo vale para o cenário de backtesting e otimizações, tenham cuidado com os resultados gerados, em operações rápidas e de TPs curtos. Ocorrem falsos resultados.