Colocar ordem SL na pedra, servidor B3. - página 4

 
Marcio Andrade:

Condensei sim, achei ser irrelevante para a avaliação, perdão!

Cara, o código, segundo a sua lógica parece correto - com exceção da variável
EstopeMinimaAnterior

que vc está usando para ambos os casos. Compra e Venda.

Por algum motivo nos BUYS que você mostrou na sua tela, os SLs estão sendo colocados nos preços de Entrada... Provavelmente por causa dos iLows e iLowest que você colocou no código... sobreescrevendo o valor de 50 que você originalmente colocou... Você que entende mais do seu código, dá uma olhada, mas as 4 operações que você realizou, os BUYs estão estranhos. Os SELLs estão OK, inclusive você está tomando o Spread de Book do mini que é completamente natural...

;)

 

Marcio Andrade:

https://c.mql5.com/3/244/image__4.png

Oi Marcio.

Não vou poder olhar seu código-fonte agora pq estou na pressa, mas olhando a imagem dos seus trades, eu diria que:

1) Alguns stops estão exatamente no mesmo preço de entrada. Suponho que seu EA deva ter entrado nessas posições com um stop mais recuado e posteriormente moveu o stop para o preço de entrada, correto?

2) Os slippages de 5 pontos no stop-loss são normais, pois esse é o degrau de preço do contrato de índice futuro. Tudo normal aí, é assim mesmo.

3) O slippage de 35 pontos (7 degraus de preço) é que é um pouco estranho, isso só ocorreria em raros momentos de súbita volatilidade decorrente de notícias, ou então no rompimento súbito de um ponto de suporte ou resistência muito forte.

4) Para entender melhor o que aconteceu nesse slippage de 35 pontos, seria bom você colar o conteúdo da aba "Journal" (em português acho que é "Diário" o nome da aba, é a última aba, logo após a aba "Experts"). Nessa aba tem todo o detalhamento do que aconteceu (envio de ordem, aceitação de ordem, execução de ordem, alteração de stop, execução de stop, etc.). Vai dar pra entender exatamente o que aconteceu olhando essa aba. Espero que não a tenha apagado.

Abraços

 
Trader_Patinhas:

Oi Marcio.

Não vou poder olhar seu código-fonte agora pq estou na pressa, mas olhando a imagem dos seus trades, eu diria que:

1) Alguns stops estão exatamente no mesmo preço de entrada. Suponho que seu EA deva ter entrado nessas posições com um stop mais recuado e posteriormente moveu o stop para o preço de entrada, correto?

2) Os slippages de 5 pontos no stop-loss são normais, pois esse é o degrau de preço do contrato de índice futuro. Tudo normal aí, é assim mesmo.

3) O slippage de 35 pontos (7 degraus de preço) é que é um pouco estranho, isso só ocorreria em raros momentos de súbita volatilidade decorrente de notícias, ou então no rompimento súbito de um ponto de suporte ou resistência muito forte.

4) Para entender melhor o que aconteceu nesse slippage de 35 pontos, seria bom você colar o conteúdo da aba "Journal" (em português acho que é "Diário" o nome da aba, é a última aba, logo após a aba "Experts"). Nessa aba tem todo o detalhamento do que aconteceu (envio de ordem, aceitação de ordem, execução de ordem, alteração de stop, execução de stop, etc.). Vai dar pra entender exatamente o que aconteceu olhando essa aba. Espero que não a tenha apagado.

Abraços

1 = Sim! ele sobe para o Breakinving (0x0) ao atender uma condição.

2 = Esse é um dos grandes motivos para a abertura desse tópico, no ProfictChart atende no preço colocado, não no BID/ASK após o preço passar no valor de ativação.

3 = Então, era para ter saído no 0x0.

4 = Tenho todo histórico de log, vou postar o print.




Muito estranho, marquei a transação com maior desvio e que era para ter saído no 0x0, foi mandada no valor correto e executada com valor bem diferente!

Nesse print abaixo executa tudo certinho, leva para o 0x0 e sai no 0x0;


 
Marcio Andrade:

1 = Sim! ele sobe para o Breakinving (0x0) ao atender uma condição.

2 = Esse é um dos grandes motivos para a abertura desse tópico, no ProfictChart atende no preço colocado, não no BID/ASK após o preço passar no valor de ativação.

3 = Então, era para ter saído no 0x0.

4 = Tenho todo histórico de log, vou postar o print.




Muito estranho, marquei a transação com maior desvio e que era para ter saído no 0x0, foi mandada no valor correto e executada com valor bem diferente!

Nesse print abaixo executa tudo certinho, leva para o 0x0 e sai no 0x0;


Olá Marcio,

Verifiquei agora no log da Modal o que aconteceu com o WINZ18 no momento do acionamento do seu stop-loss e vi que a sua perda de 35 pontos foi por slippage mesmo (mais precisamente 30 pontos por slippage e 5 por spread).

O que ocorreu foi que exatamente às 11:19:26.922, algum tubarão gigante vendeu um volume enorme de WINZ18 a mercado, varrendo todos os níveis de preço desde 84340 até 84280 de uma vez só em apenas 47 milésimos de segundo. É raro isso acontecer, pois esses predadores geralmente vendem aos poucos, para obter um preço médio melhor, mas às vezes acontece. Esse aí parece que tinha alguma urgência e torrou milhares de minicontratos de uma vez só enxugando 60 pontos de uma vez só (talvez ele tenha feito isso no indice cheio e os robôs de arbitragem que refletiram automaticamente a operação no mini-índice, teria que olhar o log detalhado da B3 pra saber).

O seu stop-loss, que realmente estava programado para 84310, foi acionado cerca de 1 segundo depois, exatamente às 11:19:28.049, momento em que o preço BID já havia descido para 84275 e vendeu o minicontrato nesse valor (o stop-loss emite ordem a mercado, vendendo pelo preço BID).

Como você está usando DMA4, essa demora de 1 segundo entre o seu stop-loss ter sido furado e a posição ter sido zerada certamente não foi latência de rede, deve ter sido a demora no processamento da grande fila de transações que estavam à frente da sua ordem de stop-loss (uma p*rrada dessas de 12 degraus de preço de uma vez só sempre vai causar um congestionamento da fila de transação durante algumas frações de segundo).

Mas o motivo principal do seu prejuízo foi o slippage mesmo. Mesmo que a execução do seu stop-loss tivesse sido instantânea, vc teria na melhor das hipóteses conseguido vender a 84280, perdendo 30 pontos em vez de 35.

Resumindo: foi um fenômeno natural do mercado e o slippage era inevitável. Nem a corretora, nem o plataforma e nem o seu EA têm culpa pelo que aconteceu.

Abraços!

 
Trader_Patinhas:

Olá Marcio,

Verifiquei agora no log da Modal o que aconteceu com o WINZ18 no momento do acionamento do seu stop-loss e vi que a sua perda de 35 pontos foi por slippage mesmo (mais precisamente 30 pontos por slippage e 5 por spread).

O que ocorreu foi que exatamente às 11:19:26.922, algum tubarão gigante vendeu um volume enorme de WINZ18 a mercado, varrendo todos os níveis de preço desde 84340 até 84280 de uma vez só em apenas 47 milésimos de segundo. É raro isso acontecer, pois esses predadores geralmente vendem aos poucos, para obter um preço médio melhor, mas às vezes acontece. Esse aí parece que tinha alguma urgência e torrou milhares de minicontratos de uma vez só enxugando 60 pontos de uma vez só (talvez ele tenha feito isso no indice cheio e os robôs de arbitragem que refletiram automaticamente a operação no mini-índice, teria que olhar o log detalhado da B3 pra saber).

O seu stop-loss, que realmente estava programado para 84310, foi acionado cerca de 1 segundo depois, exatamente às 11:19:28.049, momento em que o preço BID já havia descido para 84275 e vendeu o minicontrato nesse valor (o stop-loss emite ordem a mercado, vendendo pelo preço BID).

Como você está usando DMA4, essa demora de 1 segundo entre o seu stop-loss ter sido furado e a posição ter sido zerada certamente não foi latência de rede, deve ter sido a demora no processamento da grande fila de transações que estavam à frente da sua ordem de stop-loss (uma p*rrada dessas de 12 degraus de preço de uma vez só sempre vai causar um congestionamento da fila de transação durante algumas frações de segundo).

Mas o motivo principal do seu prejuízo foi o slippage mesmo. Mesmo que a execução do seu stop-loss tivesse sido instantânea, vc teria na melhor das hipóteses conseguido vender a 84280, perdendo 30 pontos em vez de 35.

Resumindo: foi um fenômeno natural do mercado e o slippage era inevitável. Nem a corretora, nem o plataforma e nem o seu EA têm culpa pelo que aconteceu.

Abraços!

Muito obrigado por seu carinho e compartilhamento de conhecimento! Gostaria muito de fugir da fila colocando ordens na pedra, mas como não tem essa opção no MetaTrader tudo bem. Quanto a seu conhecimento ele é impar, super coerente e investiga o ocorrido de forma espetacular. Grande @Trader_Patinhas! Peço a Deus que o abençoe com muita saúde, paz e realizações.

 
Marcio Andrade:

Muito obrigado por seu carinho e compartilhamento de conhecimento! Gostaria muito de fugir da fila colocando ordens na pedra, mas como não tem essa opção no MetaTrader tudo bem. Quanto a seu conhecimento ele é impar, super coerente e investiga o ocorrido de forma espetacular. Grande @Trader_Patinhas! Peço a Deus que o abençoe com muita saúde, paz e realizações.

Obrigado @Minions Labs, os sábios ensinam que a melhor forma de aprender é ensinando! Não há nada grande sem grandes conselheiros, seu carinho em tirar tempo e analisar o meu questionamento e motivo de grande gratidão de minha parte, precisando vocês podem contar comigo no que puder ajudar @Minions Labs e @Trader_Patinhas.

 
Marcio Andrade:

Obrigado @Minions Labs, os sábios ensinam que a melhor forma de aprender é ensinando! Não há nada grande sem grandes conselheiros, seu carinho em tirar tempo e analisar o meu questionamento e motivo de grande gratidão de minha parte, precisando vocês podem contar comigo no que puder ajudar @Minions Labs e @Trader_Patinhas.

Imagina! Sua pergunta inclusive é mega-válida. Muita gente mal sabe qual é o funcionamento da "cozinha" da B3...

Eu ainda estou finalizando o Core da minha central de robôs. Opero manualmente ainda. Quando chegar a hora vou entrar em contato com alguém técnico das corretoras com que vou operar (vou diluir o risco de falha de infraestrutura - afinal, não posso confiar em um terceiro, apenas no meu lado), para conhecer tecnicamente como é a rota dessas ordens e onde estariam os POFs (Points of Failure). Uma dica que fica é: É tão ruim uma corretora DMA2 mal dimensionada como uma corretora DMA1 okzinha. Fuja de DMA1, pois tudo custa, portanto o planejamento de tráfego de todas tem um limite, mas uma de DMA1 okzinha só vai te dar dor de cabeça em diversas situações de mínima instabilidade de tráfego (nem estou falando de operar em Payroll...).

Abração!

Live Long and Prosper.

;)

 
Marcio Andrade:

Muito obrigado por seu carinho e compartilhamento de conhecimento! Gostaria muito de fugir da fila colocando ordens na pedra, mas como não tem essa opção no MetaTrader tudo bem. Quanto a seu conhecimento ele é impar, super coerente e investiga o ocorrido de forma espetacular. Grande @Trader_Patinhas! Peço a Deus que o abençoe com muita saúde, paz e realizações.

Prezado, a melhor forma de agradecer qualquer bem que nos façam é fazendo o mesmo bem a outros. Isso gera uma reação em cadeia positiva que eu acredito que tenha potencial para transformar uma sociedade egoísta e corrupta como a nossa.

Quanto a esse "conhecimento ímpar", tem mais a ver com disposição a pesquisar do que com conhecimento, rsrs.

Grande abraço!

 
Muito boa a discussão. Vou ter que reescrever o meu e mudar o raciocínio do envio de ordens stop gain/loss para enviar ordem a partir da diferença de pontos do preço de entrada, embora isso não me deixe muito confortável. 
Para vcs que tem mais experiência, qual a possibilidade da corretora mudar isso no Server do mt5, haja vista que em outros brokers já funciona?
Existe alguma corretora que já aceite estas ordens nativas do mt5?
 

Pelo que andei fuçando, e diferente de outras plataformas brasileiras, que estão bem mais íntimas e conectadas com a B3, com exceção talvez do Protrader e do novo TradingView, o Metatrader gerencia tudo em um Servidor Metatrader, antes das ordens serem encaminhadas para a B3.

MT5 Architecture

A visão que temos, do lado do Broker é esta:

MT5 Broker Architecture

Mais detalhes em este artigo da própria MetaQuotes:

https://www.metatrader5.com/en/brokers

E quando falamos de DMA4, provavelmente teremos o tal de Servidor Metatrader em co-location em algum lugar dentro do ambiente físico da B3 - *Acho, não tenho certeza*

;)

MetaTrader 5 trading platform for brokers and banks
MetaTrader 5 trading platform for brokers and banks
  • www.metatrader5.com
Do you want to start a brokerage business? The MetaTrader 5 multi-asset institutional platform is the best solution for you! With the MetaTrader 5 platform, you can run your brokerage business in various financial markets including forex, stock exchange and Futures markets. MetaTrader 5 is a full-cycle platform that includes all elements that a...
Razão: