Colocar ordem SL na pedra, servidor B3.

 

Bom dia,

De forma nativa acho que o metatrader não tem essa opção.

Você pode programar um EA que deixe a ordem sem SL e ele gerencie a emissão da ordem na pedra.

At.

Daniel

 

Até onde sei, a B3 não aceita ordem do tipo "stop-loss", ou seja ordens de compra (ou de venda) que são executadas somente depois que o preço de mercado atingir um valor pré-determinado acima do ASK atual (ou abaixo do BID atual).

As ordens "stop-loss" são gerenciadas pelo servidor MT5 hospedado na corretora. Na hora em que o gatilho de preço é atingido, o servidor MT5 manda uma ordem a mercado para a B3, que será imediatamente executada pelo melhor preço que estiver disponível no momento em que chegar a vez dela de ser processada. Se o mercado estiver calmo e houver liquidez, a ordem stop-loss será executada pelo valor exato configurado no stop-loss, mas se houver um grande fluxo de ordens naquele momento e/ou a liquidez não estiver boa, pode ocorrer desvio (slippage) no preço de execução.

Uma alternativa a usar o stop-loss nativo do MT5 seria enviar ao servidor MT5, juntamente com a ordem principal, uma ordem pendente do tipo "buy stop" ou "sell stop" no sentido oposto à ordem principal, no nível de preço desejado para o "stop-loss".

No entanto, vejo os seguintes inconvenientes nessa alternativa:

1) A lógica operacional do seu EA tem que se responsabilizar por cancelar a ordem "stop" caso a ordem principal seja cancelada, fechada por take-profit ou zerada por qualquer outra operação no sentido oposto, para evitar que sua ordem "stop" permaneça no servidor e acabe sendo executada indevidamente em algum momento posterior. No caso do "stop-loss" nativo do MT5 você não se preocupa com isso, pois o próprio servidor se encarrega de eliminar a ordem "stop" no momento em que a ordem principal deixar de existir por qualquer razão.

2) Você tem que se preocupar também em ajustar o volume da ordem "stop" no caso de uma execução parcial da sua ordem principal.

Por essas razões, não vejo motivo para alguém preferir gerenciar o stop-loss "por fora" em vez de usar a funcionalidade nativa do MT5.

ps: já não digo o mesmo a respeito do take-profit. Acho bem melhor usar uma ordem pendente direto na pedra (lá na B3) no lugar do take-profit, não só devido à maior rapidez e confiabilidade na execução da ordem (ela já estará lá na fila do book da B3 e não dependerá da estabilidade do link entre a corretora e a B3), mas principalmente pela vantagem de executar a compra pelo BID (ou venda pelo ASK), em comparação com o take-profit nativo, que emite uma ordem a mercado e portanto vende pelo BID (ou compra pelo ASK).

 
Trader_Patinhas:

Até onde sei, a B3 não aceita ordem do tipo "stop-loss", ou seja ordens de compra (ou de venda) que são executadas somente depois que o preço de mercado atingir um valor pré-determinado acima do ASK atual (ou abaixo do BID atual).

As ordens "stop-loss" são gerenciadas pelo servidor MT5 hospedado na corretora. Na hora em que o gatilho de preço é atingido, o servidor MT5 manda uma ordem a mercado para a B3, que será imediatamente executada pelo melhor preço que estiver disponível no momento em que chegar a vez dela de ser processada. Se o mercado estiver calmo e houver liquidez, a ordem stop-loss será executada pelo valor exato configurado no stop-loss, mas se houver um grande fluxo de ordens naquele momento e/ou a liquidez não estiver boa, pode ocorrer desvio (slippage) no preço de execução.

Uma alternativa a usar o stop-loss nativo do MT5 seria enviar ao servidor MT5, juntamente com a ordem principal, uma ordem pendente do tipo "buy stop" ou "sell stop" no sentido oposto à ordem principal, no nível de preço desejado para o "stop-loss".

No entanto, vejo os seguintes inconvenientes nessa alternativa:

1) A lógica operacional do seu EA tem que se responsabilizar por cancelar a ordem "stop" caso a ordem principal seja cancelada, fechada por take-profit ou zerada por qualquer outra operação no sentido oposto, para evitar que sua ordem "stop" permaneça no servidor e acabe sendo executada indevidamente em algum momento posterior. No caso do "stop-loss" nativo do MT5 você não se preocupa com isso, pois o próprio servidor se encarrega de eliminar a ordem "stop" no momento em que a ordem principal deixar de existir por qualquer razão.

2) Você tem que se preocupar também em ajustar o volume da ordem "stop" no caso de uma execução parcial da sua ordem principal.

Por essas razões, não vejo motivo para alguém preferir gerenciar o stop-loss "por fora" em vez de usar a funcionalidade nativa do MT5.

ps: já não digo o mesmo a respeito do take-profit. Acho bem melhor usar uma ordem pendente direto na pedra (lá na B3) no lugar do take-profit, não só devido à maior rapidez e confiabilidade na execução da ordem (ela já estará lá na fila do book da B3 e não dependerá da estabilidade do link entre a corretora e a B3), mas principalmente pela vantagem de executar a compra pelo BID (ou venda pelo ASK), em comparação com o take-profit nativo, que emite uma ordem a mercado e portanto vende pelo BID (ou compra pelo ASK).

Obrigado pela explicação! Meu expert está bastante solido em relação ao tratamento de trades em curso, ordens em aberto, ele consegue se recuperar em caso de desconexão estou bem tranquilo com essa parte. Agora as ordens SL que estão complicadas da muito (slippage). Cheguei a tentar colocar ordens Sell Limit e Buy Limit opostas mas elas executa assim que a posta executa. Monitorei que as Sell Limit e Buy Limit aparecem na hora no home broker da corretora, o que não acontece com as SL. Cheguei a tentar usar as buy stop e sell stop mas ao menos na Modal onde está meu expert no DMA4 não aparecem no home broker da corretora igual as Sell e Buy Limit. As ordens Buy Stop e Sell Stop tem menos slippage que as SL, você consegue colocar elas no Home Broker da corretora?

 
Márcio Andrade:

Monitorei que as Sell Limit e Buy Limit aparecem na hora no home broker da corretora, o que não acontece com as SL. Cheguei a tentar usar as buy stop e sell stop mas ao menos na Modal onde está meu expert no DMA4 não aparecem no home broker da corretora igual as Sell e Buy Limit.

A explicação é simples.

As ordens Sell Limit e Buy Limit são enviadas imediatamente para a B3 pelo servidor MT5 da corretora, assim que este as recebe do seu terminal.

Como as ordens Sell Limit e Buy Limit têm preços abaixo do BID e acima do ASK, respectivamente, ao chegarem na B3 elas são enfileiradas no book de ofertas (na "pedra", como chamavam os antigos operadores de pregão). Por isso você (e todo mundo) vai vê-las no home broker da sua corretora (e das outras corretoras também).

Já as ordens Sell Stop e Buy Stop são ordens que têm preços acima do BID e abaixo do ASK, respectivamente. A intenção dessas ordens é que sejam executadas somente quando o preço de mercado atingir aquele patamar.

Os dois usos mais comuns desses tipos de ordens são proteger posições (servir como "stop-loss" de uma outra ordem) ou então especular aproveitando o rompimento de um suporte ou de uma resistência (comprar somente quando o preço subir rompendo uma resistência ou vender somente quando o preço cair rompendo um suporte).

Essas ordens não são enviadas a B3 imediatamente, pois, como têm preço de venda abaixo do BID ou preço de compra acima do ASK, seriam executadas imediatamente (antes do desejado pelo trader) caso fossem enviadas à B3. Elas ficam armazenadas no servidor MT5 da corretora até que o preço de mercado (BID ou ASK )atinja o patamar configurado para execução. Por isso você vai vê-las no seu terminal MT5, mas não as verá no home broker na corretora, pois o home broker da corretora está mostrando o que está lá na "pedra" da B3 e nesse caso a sua ordem não está lá, ela está retida no servidor MT5 aguardando o preço chegar no valor programado para envio.

Márcio Andrade:

 As ordens Buy Stop e Sell Stop tem menos slippage que as SL, você consegue colocar elas no Home Broker da corretora?

Consegue sim. No home broker da Modal o envio de ordens "stop" fica na segunda aba da janela de envio de ordens (aba "stop"). É só preencher o preço de disparo e o preço limite (se quiser que execute a mercado é só colocar o preço limite igual ao de disparo):


 
Trader_Patinhas:

A explicação é simples.

As ordens Sell Limit e Buy Limit são enviadas imediatamente para a B3 pelo servidor MT5 da corretora, assim que este as recebe do seu terminal.

Como as ordens Sell Limit e Buy Limit têm preços abaixo do BID e acima do ASK, respectivamente, ao chegarem na B3 elas são enfileiradas no book de ofertas (na "pedra", como chamavam os antigos operadores de pregão). Por isso você (e todo mundo) vai vê-las no home broker da sua corretora (e das outras corretoras também).

Já as ordens Sell Stop e Buy Stop são ordens que têm preços acima do BID e abaixo do ASK, respectivamente. A intenção dessas ordens é que sejam executadas somente quando o preço de mercado atingir aquele patamar.

Os dois usos mais comuns desses tipos de ordens são proteger posições (servir como "stop-loss" de uma outra ordem) ou então especular aproveitando o rompimento de um suporte ou de uma resistência (comprar somente quando o preço subir rompendo uma resistência ou vender somente quando o preço cair rompendo um suporte).

Essas ordens não são enviadas a B3 imediatamente, pois, como têm preço de venda abaixo do BID ou preço de compra acima do ASK, seriam executadas imediatamente (antes do desejado pelo trader) caso fossem enviadas à B3. Elas ficam armazenadas no servidor MT5 da corretora até que o preço de mercado (BID ou ASK )atinja o patamar configurado para execução. Por isso você vai vê-las no seu terminal MT5, mas não as verá no home broker na corretora, pois o home broker da corretora está mostrando o que está lá na "pedra" da B3 e nesse caso a sua ordem não está lá, ela está retida no servidor MT5 aguardando o preço chegar no valor programado para envio.

Consegue sim. No home broker da Modal o envio de ordens "stop" fica na segunda aba da janela de envio de ordens (aba "stop"). É só preencher o preço de disparo e o preço limite (se quiser que execute a mercado é só colocar o preço limite igual ao de disparo):



cvcv

Obrigado novamente, seu conhecimento é fantástico! Eu gostaria de conseguir fazer como no ProfitChart, ao colocar uma ordem de SL ou Buy/Sell Stop ela aparece no home broker da corretora e executa no valor definido dela caso o preço passe por ela. Qual a melhor solução que usa nos seus experts?

 
Márcio Andrade:

Obrigado novamente, seu conhecimento é fantástico! Eu gostaria de conseguir fazer como no ProfitChart, ao colocar uma ordem de SL ou Buy/Sell Stop ela aparece no home broker da corretora e executa no valor definido dela caso o preço passe por ela. Qual a melhor solução que usa nos seus experts?

Nunca usei o ProfitChart. Nesse caso eu imagino que a corretora deve ter implementado uma integração entre o ProfitChart e o home broker dela, de modo que o home broker "enxerga" as ordens stop que estão no ProfitChart. 

Não vejo possibilidade (*) de fazer isso por meio de um EA, pois o EA roda no terminal MT5 instalado no seu computador (ou máquina virtual) e se comunica exclusivamente com o servidor MT5 da corretora. Ele não tem acesso ao home broker da corretora. Para o home broker da corretora enxergar as ordens stop do MT5, o pessoal da corretora teria que implementar uma integração de dados dentro da própria corretora, entre o servidor MT5 e o home broker, tal como eu imagino que tenham feito para o ProfitChart.

(*) "não vejo possibilidade" não significa afirmar que é impossível, significa apenas que não consigo imaginar como poderia ser feito ... este pato velho que aqui escreve já viveu o suficiente para ver muita coisa que ele não conseguia imaginar como poderia ser feita, kkk

 
Márcio Andrade:
Alguém consegue colocar ordens de SL direto no servidor da B3 igual as SellLimit?

Você tinha até colocado esta pergunta no Forum em Inglês... resolvi pesquisar um pouco, já que com o Tryd você tem a escolha de enviar ordens Stop para a B3, ou deixá-las em seu computador.

Com o MT5 creio que isso não é possível, muito provavelmente pelo fato de ser uma plataforma usada no mundo inteiro e eles, em sua arquitetura, provavelmente adotarem o Máximo Denominador Comum quando se trata de recursos... Um exemplo clássico é o MT5 não mostrar o nome das Corretoras, onde o Brasil é um dos poucos ainda a mostrar esta informação no Times&Trades.

Quando se fala em ordens Stop, provavelmnente também seja o caso de não ser possível enviar para os servidores da "Bolsa", porque por exemplo, primeiro não existe nos EUA uma única Bolsa (https://en.wikipedia.org/wiki/Category:Stock_exchanges_in_the_United_States), depois, elas usam na sua grande maioria o conceito de ECNs (https://en.wikipedia.org/wiki/Electronic_communication_network), pra você ter uma ideia da zona que isso fica, cada ECN tem seu próprio Book de Ofertas. Esta é minha suspeita, não tenho certeza.

Na B3, as ordens Stop ficam em um Book de Ofertas separado, até que sejam disparadas e enviadas para o Book "Oficial".

É difícil achar algo aqui neste Brasil, mas encontrei um um PDF de 2009 da BMF que explica isso (https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=2ahUKEwih-_iRsZzeAhWFhJAKHR4fBs8QFjACegQIRBAB&url=http%3A%2F%2Fwww.bmfbovespa.com.br%2Fbr%2Fcom%2Fbvmf%2Finternet%2Fservice%2Fcommon%2Ffile%2FfileDownload.jsp%3FdocumentId%3D8A828D294F270E45014FE2426F5D395F&usg=AOvVaw0LnZ8tomsBxwTPSaCt_47E)

Não sei se o link vai ser publicado direito, segue uma prévia:

3.1.4 - Oferta Stop – Preço de Disparo (S)

É uma oferta de compra ou venda limitada que especifica um preço de disparo a partir do qual a oferta deve
ser registrada. Esta oferta é armazenada pelo sistema em um livro de ofertas diferenciado, tornando-se uma
oferta limitada e sendo registrada no livro de ofertas comum tão logo o preço de disparo seja alcançado.
Este tipo de oferta é aceita somente durante a fase contínua de negociação.

Características:
a)  Uma oferta Stop de compra deverá ter o preço limite maior ou igual ao preço de disparo e este deverá
ser maior que o último preço do ativo;
b)  Uma oferta Stop de venda deverá ter o preço limite menor ou igual ao preço de disparo e este deverá
ser menor que o último preço do ativo;
c)  A validade de uma oferta Stop é mantida quando a mesma é disparada e torna-se uma oferta limitada;
d)  Uma oferta limitada registrada no sistema poderá ser alterada para oferta Stop e uma oferta Stop
poderá ser alterada para uma oferta limitada;
e)  A oferta Stop não permite quantidade mínima;
....


;)

 

Esqueci de comentar... não estou falando de Ordens OCO... No Tryd tinha esse detalhe... Para desfazer uma operação OCO, a plataforma tinha que estar ligada, do contrário, por mais que uma das Ordens Stop na B3 fosse executada, a outra permanecia aberta, podendo ser executada. Sofri com isso em quedas de luz.

Concluindo, acho que o MT5 na sua infraestrutura, seja superior nesse caso, pois as ordens Stop ficam em um "Servidor MT5", e mesmo que você perca conexão de seu Terminal, as ordens serão executadas corretamente. Claro, terá a latência entre esse servidor e a B3, talvez pra micro-scalping seja inviável.

Não fui tão fundo ainda nesta pesquisa do MT5... Vale checar...

;)

 
Minions Labs:

Esqueci de comentar... não estou falando de Ordens OCO... No Tryd tinha esse detalhe... Para desfazer uma operação OCO, a plataforma tinha que estar ligada, do contrário, por mais que uma das Ordens Stop na B3 fosse executada, a outra permanecia aberta, podendo ser executada. Sofri com isso em quedas de luz.

Concluindo, acho que o MT5 na sua infraestrutura, seja superior nesse caso, pois as ordens Stop ficam em um "Servidor MT5", e mesmo que você perca conexão de seu Terminal, as ordens serão executadas corretamente. Claro, terá a latência entre esse servidor e a B3, talvez pra micro-scalping seja inviável.

Não fui tão fundo ainda nesta pesquisa do MT5... Vale checar...

;)

Muito obrigado pelo seu conhecimento!

 
Minions Labs:

Você tinha até colocado esta pergunta no Forum em Inglês... resolvi pesquisar um pouco, já que com o Tryd você tem a escolha de enviar ordens Stop para a B3, ou deixá-las em seu computador.

Com o MT5 creio que isso não é possível, muito provavelmente pelo fato de ser uma plataforma usada no mundo inteiro e eles, em sua arquitetura, provavelmente adotarem o Máximo Denominador Comum quando se trata de recursos... Um exemplo clássico é o MT5 não mostrar o nome das Corretoras, onde o Brasil é um dos poucos ainda a mostrar esta informação no Times&Trades.

Quando se fala em ordens Stop, provavelmnente também seja o caso de não ser possível enviar para os servidores da "Bolsa", porque por exemplo, primeiro não existe nos EUA uma única Bolsa (https://en.wikipedia.org/wiki/Category:Stock_exchanges_in_the_United_States), depois, elas usam na sua grande maioria o conceito de ECNs (https://en.wikipedia.org/wiki/Electronic_communication_network), pra você ter uma ideia da zona que isso fica, cada ECN tem seu próprio Book de Ofertas. Esta é minha suspeita, não tenho certeza.

Na B3, as ordens Stop ficam em um Book de Ofertas separado, até que sejam disparadas e enviadas para o Book "Oficial".

É difícil achar algo aqui neste Brasil, mas encontrei um um PDF de 2009 da BMF que explica isso (https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=2ahUKEwih-_iRsZzeAhWFhJAKHR4fBs8QFjACegQIRBAB&url=http%3A%2F%2Fwww.bmfbovespa.com.br%2Fbr%2Fcom%2Fbvmf%2Finternet%2Fservice%2Fcommon%2Ffile%2FfileDownload.jsp%3FdocumentId%3D8A828D294F270E45014FE2426F5D395F&usg=AOvVaw0LnZ8tomsBxwTPSaCt_47E)

Não sei se o link vai ser publicado direito, segue uma prévia:

3.1.4 - Oferta Stop – Preço de Disparo (S)

É uma oferta de compra ou venda limitada que especifica um preço de disparo a partir do qual a oferta deve
ser registrada. Esta oferta é armazenada pelo sistema em um livro de ofertas diferenciado, tornando-se uma
oferta limitada e sendo registrada no livro de ofertas comum tão logo o preço de disparo seja alcançado.
Este tipo de oferta é aceita somente durante a fase contínua de negociação.

Características:
a)  Uma oferta Stop de compra deverá ter o preço limite maior ou igual ao preço de disparo e este deverá
ser maior que o último preço do ativo;
b)  Uma oferta Stop de venda deverá ter o preço limite menor ou igual ao preço de disparo e este deverá
ser menor que o último preço do ativo;
c)  A validade de uma oferta Stop é mantida quando a mesma é disparada e torna-se uma oferta limitada;
d)  Uma oferta limitada registrada no sistema poderá ser alterada para oferta Stop e uma oferta Stop
poderá ser alterada para uma oferta limitada;
e)  A oferta Stop não permite quantidade mínima;
....


;)

Minions, tá aí uma coisa que eu não sabia!

Há tempos atrás eu vi certa vez o meu stop-loss do MT5 ser sumariamente ignorado e atravessado porque o servidor MT5 da corretora congelou (eles assumiram a responsabilidade, enviei o log e eles me ressarciram).

Depois dessa experiência, fiquei achando que a B3 não aceitava ordem stop e que eram sempre as plataformas que gerenciavam as ordens stop, e não a B3. 

Pelo que estou vendo isso só é verdade no MT5, dado que a B3 na verdade aceita ordem stop e existem plataformas que enviam ordem stop para a B3.

Vivendo e aprendendo! Obrigado por esta iluminação!

Abraço!