Critério para execução de ordem em conta demo - página 2

 

Olá barbisan,

vamos por partes:

Basicamente existem dois tipos diferentes: Market Order e Pending Order. Além disso, existem quatro tipos diferentes de execução: Instant, Request, Market e Exchange (pelo que entendi, estes quatros tipos estão relacionados somente com o tipo Market Order). Ainda, a XP disponibiliza somente a Exchange Execution.

Ao meu ver, os modos de execução por solicitação "SYMBOL_TRADE_EXECUTION_REQUEST" , instantânea "SYMBOL_TRADE_EXECUTION_INSTANT" e a mercado "SYMBOL_TRADE_EXECUTION_MARKET" funcionam somente para o mercado de FOREX, que é um mercado descentralizado. Já a bolsa, é um mercado centralizado, por isso é disponibilizado para nós somente a execução em um sistema de negociação externo (Exchange) "SYMBOL_TRADE_EXECUTION_EXCHANGE".

obs: a execução da corretora de FOREX que eu utilizo é via SYMBOL_TRADE_EXECUTION_MARKET


Como o próprio nome diz, Market Order são enviadas (e potencialmente executadas) instantaneamente pelo terminal do MT5 para a corretora (XP). Porém, somente os tipos Instant Execution e Request Execution, podem ter o preço efetivamente definido pelo terminal do MT5 (caso não seja possível, uma confirmação de um novo preço acontece - "Requote"). Já para os tipos Market Execution e Exchange Execution, o preço é sempre definido pelo lado da corretora(XP)/mercado e o usuário (terminal MT5) tem estar de acordo.


Instant Execution e Request Execution o preço é definido pela corretora também, não é você que escolhe o preço (muda a forma de se operar manualmente), no caso da instantânea você escolhe o valor do desvio que seria sua tolerância quanto ao preço que você está disposto a fazer negócio o Requote acontece quando o preço extrapola sua tolerância exigida.  Já para os tipos Market Execution e Exchange Execution foi exatamente o que o Malacarne disse.

Já para o tipo Pending Order, por definição, a ordem só é enviada pelo terminal do MT5 para a corretora (XP) quando ocorrer um novo negócio com o preço igual ou melhor que o preço do gatilho. Ou seja, mesmo que o preço que você coloque esteja igual ou melhor que a oferta disponível no mercado no momento, a ordem fica "retida" no terminal do MT5 até que ocorra um novo negócio que habilite o disparo da mesma.

O disparo das Pendig orders se faz somente para as ordens do tipo stop, se for por exemplo uma stop buy/sell quando o mercado bater o preço de disparo, é lançado uma ordem a mercado.

quanto as ordens limit, o Malacarne também disse tudo.

Acredito que seja limitação da conta demo mesmo, como eu disse no post acima, tive um comportamento parecido com o seu ontem. Já na conta real isso nunca aconteceu comigo.

Se eu falei alguma besteira acima, por favor me corrijam.

Abraços,

Romeu.

 

Obrigado Romeu, pelos esclarecimentos.

Só um detalhe: quando disse que, para as ordens Instant Execution e Request Execution, "podem ter o preço efetivamente definido pelo terminal do MT5", na verdade quis dar a entender que o usuário tem algum controle sobre o preço da ordem. Ficou claro que, na prática, funciona exatamente como você mencionou. Obrigado!

Quanto a Pending Order, tomara que o disparo seja realmente somente para as ordens tipo Stop e não Limit e que este "comportamento" que vemos seja somente na conta demo.

Vou testar na real na próxima semana.

Obrigado a todos!

Abraços.

 

Se a ordem limite possui perço para entrar a mercado, deveria ser consumida sem entrar no livro de ofertas.

Se o match-engine do MT5 não faz assim, é uma falha da simulação. 

Existem outras limitações na simulação dele, como não consumir ordens em formato parcial.

Simulação é sempre simulação. Temos que entender as vantagens e desvantagens de cada modelo de simulação e tomar cuidado o tempo todo para suportar as diferenças para o real. 

 
humbertobrandao:

Se a ordem limite possui perço para entrar a mercado, deveria ser consumida sem entrar no livro de ofertas.

Simulação é sempre simulação. Temos que entender as vantagens e desvantagens de cada modelo de simulação e tomar cuidado o tempo todo para suportar as diferenças para o real. 

Olá pessoal, só pra complementar: não existe "book" de ofertas no Testador de Estratégias do MetaTrader ... Apenas best bid e best ask offers ...

Portanto, mesmo dentro do Testador de Estratégias algumas condições devem ser satisfeitas para o envio de ordens.

Por exemplo, ordens do tipo Buy Stop / Sell Stop e também Buy Stop Limit / Sell Stop Limit devem ter os seus preços de gatilho fora do bid-ask spread, do contrário a mesma não será enviada. Esse comportamento funciona exatamente da mesma forma tanto em contas DEMO quanto em contas REAIS.

Entretanto, ordens a mercado serão sempre executadas no best bid / best ask no Testador de Estratégias.

Com relação às ordens limit, as mesmas podem ser colocadas tanto dentro do spread quanto fora dele, desde que o preço não ultrapasse o best bid / best ask em sua respectiva direção de venda e compra. Isso é assim tanto em conta DEMO quanto em conta REAL. Nesse caso tenho uma ressalva a fazer: alguns sistemas de negociação aceitam ordens limite em preços "piores" do que aqueles disponíveis (best bid / best ask), e, obviamente, essas ordens são executadas nesses preços e, dependendo do seu volume, saem "varrendo" o book até que sejam executadas em sua totalidade, e parando no preço determinado (podendo o saldo do volume ficar "na pedra"). Mas esse não é o caso no MT5, que simplesmente não aceita ordens do tipo limite caso o preço de execução seja "pior" do que aquele existente no intervalo de spread. 

Com relação às ordens parcialmente executadas, essa é mesmo uma limitação "de fábrica" do Testador de Estratégias. Minha sugestão: escrever para o Service Desk da MetaQuotes pedindo que essa funcionalidade seja implementada no Testador de Estratégias. Acredito ser bem difícil, mas não é impossível, concordam? 

Abraços,
Malacarne

 

Obrigado Malacarne e a todos!

Este tema parece ser bastante polêmico ou, no mínimo, complexo o suficiente e que gera várias dúvidas nos detalhes.

Sem a intenção de ser chato, mas não sei se ficou claro o "problema" que tenho e vou colocá-lo de forma bem específica para tentar ter um "veredito" final.

Fiz testes tanto com um EA como pelo envio de ordens diretamente do terminal do MT5 da seguinte forma, por exemplo:

Enviei uma ordem BUY LIMIT com o preço de 12.96. Neste momento, o último negócio era a 12.96 e os preços de Ask e Bid eram, respectivamente, 12.96 e 12.95. Minha ordem ficou com "placed" no terminal do MT5.

Notei que a ordem foi executada somente quando houve a atualização de um novo negócio.

Ou seja, por tudo que falamos aqui, todos os critérios para a execução imediata desta ordem foram preenchidos quando a enviei, mas a mesma não foi executada imediatamente.

Entendo que, mesmo a ordem estando como "placed", ela não foi disparada ainda (do terminal do MT5 para a XP) e que precisava um novo negócio para que este disparo acontecesse (obviamente, desde que o critério de preço fosse atendido).

Como disse antes, estou testando em conta demo da XP. Não sei se em conta real isto vai acontecer também. Ou seja, se nestas mesmas condições, ela será disparada automaticamente ou ainda precisará da atualização de um novo negócio.

Agradeço de alguém puder esclarecer...

Ótimo 2015 a todos!!! 

Abraços,

André Barbisan.

 
barbisan:

Obrigado Malacarne e a todos!

Agradeço de alguém puder esclarecer...

Olá barbisan,

uma ordem do tipo buy limit não é "disparada", mas sim, vai direto pra "pedra" na bolsa... caso tenha vendedor no mesmo preço da ordem (como no seu caso) ela será imediatamente executada em conta real. Logo, esse deve ser um comportamento (bem estranho na minha opinião, mas confesso que nunca testei) apenas nas contas demonstração, mas posso afirmar que em conta real apenas uma das duas situações descritas acima irá ocorrer.

Abraços.
Malacarne 

 

Obrigado Malacarne.

Que bom saber que em conta real vai funcionar da forma que você descreveu e é a que eu preciso mesmo!

Vou testar em conta real e informo a todos.

Abraços,

André Barbisan.

 

Ordem na Pedra no MT5 Malacarte? kkkkk aonde isso? Voce nao opera na vida real? Isso nao existe no MT5, as ordens ficam na plataforma e sao executadas a mercado quando atingem o valor. Por exemplo se colocar uma ordem Limite Compra a 58000 no mini, a ordem aparece no book do MT5, mas nao vai pra bovespa, tanto e que se for conferir no book de outra plataforma nao vera a ordem na "pedra". 

Todos tipos de ordens ficam na Plataforma, e quem me confirmou isso foi o pessoal de TI da corretora, pois nem o rapaz reponsavel por tirar duvidas sobre a implantacao da plataforma nao sabia dizer.

Essa e uma falha grave dessa plataforma, so nao sei se isso e intencional, pois pelo menos no mundo forex, para o qual a plataforma foi desenvolvida, isso funciona a favor das corretoras, ja que as mesmas ganham com o spread e nao com corretagem. Aqui no Brasil e diferente, ou pelo menos deveria ser, ja que cobram corretagem.

Deixa eu explicar melhor o que ocorre. Pelo HB da mesma corretora, se voce colocar uma ordem de 1 contrato de mini indice limitada de compra a 58000, sera executado no 58000 por que ela tera ido pra pedra la na bovespa, no MT5 isso nunca acontece.... deixa eu reafirmar " NUNCA " , muito pelo contrario, sempre executa a 58010.....SEMPRE (10 pontos de spread). Ordens profit target que tbem sao a mercado , NUNCA executam no preco ou a um preco melhor, SEMPRE a um preco pior, justamente 10 pontos..... . Ou seja, 20 pontos ou 4 Reais por contrato mini fora a corretagem por operacao fechada no daytrade. 20 pontos sendo comido da minha conta por operacao, isso tira o lucro ou parte do lucro de qualquer estrategia e em alguns casos a torna inviavel.

(sao 10 pontos FIXOS......SEMPRE....., nao, nao e spread comum de entrada com stop, nao estou falando disso) .

Senao porque que NUNCA numa ordem de profit taking numa operacao comprada num dia que o mercado disapara nunca executa acima do valor e sempre abaixo? Ex.: se estou comprado com take profit a 59000, o preco dispara e executa a 58990, sendo que o preco deu uma cacetada pra cima? Se fosse mesmo a mercado nessa estilingadas uma ou outra teriam de executar acima. Pelo HB as vezes executaria a 59020 outra vezes nos 59000 e outras abaixo disso no caso de corretoras em que o gain tem disparo e execucao. Mas pelo MT5 nao sempre 10 pontos abaixo.

 Pensa 100 contratos operados = 10 pontos spread * R$ 0.20 valor do ponto * 100 contratos = R$200

Ou seja, tudo tem seu custo, e com o MT5 nao e diferente. Apesar de oferecerem a plataforma de graca acaba custando muito caro ainda mais pra que opera com alto volume... So deveriam explicar as minucias tecnicas com relacao a execucao, que afinal e o que mais importa numa plataforma e nao um trilhao de indicadores e possibilidades de desenvolver trade systems e programacao, etc..... isso deveria vir depois.

Ou sera que estou equivocado, se estiver por favor me expliquem. 

Inte. 

 
Marreta:

Ordem na Pedra no MT5 Malacarte? kkkkk aonde isso? Voce nao opera na vida real? Isso nao existe no MT5, as ordens ficam na plataforma e sao executadas a mercado quando atingem o valor. Por exemplo se colocar uma ordem Limite Compra a 58000 no mini, a ordem aparece no book do MT5, mas nao vai pra bovespa, tanto e que se for conferir no book de outra plataforma nao vera a ordem na "pedra". 

Todos tipos de ordens ficam na Plataforma, e quem me confirmou isso foi o pessoal de TI da corretora, pois nem o rapaz reponsavel por tirar duvidas sobre a implantacao da plataforma nao sabia dizer.

Essa e uma falha grave dessa plataforma, so nao sei se isso e intencional, pois pelo menos no mundo forex, para o qual a plataforma foi desenvolvida, isso funciona a favor das corretoras, ja que as mesmas ganham com o spread e nao com corretagem. Aqui no Brasil e diferente, ou pelo menos deveria ser, ja que cobram corretagem.

Deixa eu explicar melhor o que ocorre. Pelo HB da mesma corretora, se voce colocar uma ordem de 1 contrato de mini indice limitada de compra a 58000, sera executado no 58000 por que ela tera ido pra pedra la na bovespa, no MT5 isso nunca acontece.... deixa eu reafirmar " NUNCA " , muito pelo contrario, sempre executa a 58010.....SEMPRE (10 pontos de spread). Ordens profit target que tbem sao a mercado , NUNCA executam no preco ou a um preco melhor, SEMPRE a um preco pior, justamente 10 pontos..... . Ou seja, 20 pontos ou 4 Reais por contrato mini fora a corretagem por operacao fechada no daytrade. 20 pontos sendo comido da minha conta por operacao, isso tira o lucro ou parte do lucro de qualquer estrategia e em alguns casos a torna inviavel.

(sao 10 pontos FIXOS......SEMPRE....., nao, nao e spread comum de entrada com stop, nao estou falando disso) .

Senao porque que NUNCA numa ordem de profit taking numa operacao comprada num dia que o mercado disapara nunca executa acima do valor e sempre abaixo? Ex.: se estou comprado com take profit a 59000, o preco dispara e executa a 58990, sendo que o preco deu uma cacetada pra cima? Se fosse mesmo a mercado nessa estilingadas uma ou outra teriam de executar acima. Pelo HB as vezes executaria a 59020 outra vezes nos 59000 e outras abaixo disso no caso de corretoras em que o gain tem disparo e execucao. Mas pelo MT5 nao sempre 10 pontos abaixo.

 Pensa 100 contratos operados = 10 pontos spread * R$ 0.20 valor do ponto * 100 contratos = R$200

Ou seja, tudo tem seu custo, e com o MT5 nao e diferente. Apesar de oferecerem a plataforma de graca acaba custando muito caro ainda mais pra que opera com alto volume... So deveriam explicar as minucias tecnicas com relacao a execucao, que afinal e o que mais importa numa plataforma e nao um trilhao de indicadores e possibilidades de desenvolver trade systems e programacao, etc..... isso deveria vir depois.

Ou sera que estou equivocado, se estiver por favor me expliquem. 

Inte. 

Meu querido Marreta... Com todo respeito, acho que você precisa se informar melhor...

Você deve estar utilizando algum robô extremamente mal programado, que apenas deve enviar ordens a mercado. Apenas para que você saiba: as ordens do tipo BUY_LIMIT e SELL_LIMIT ficam SIM na pedra, quando enviadas pela plataforma MT5.

Agora, se o seu robô envia ordens a mercado, aí realmente fica dependendo do terminal MT5, e você muito provavelmente na grande maioria das vezes irá pagar slippage tanto para entrar quanto para sair das operações.

Quanto a operar em conta real, faço isso "só" há 10 anos ...

Abraços,
Malacarne 

 

Nao uso e nunca usei robo, so usei o chart trading e boletas. So sei que na corretora que tenho conta, ordens limite so aparecem no book do MT5 e nunca em nenhum outro book de outra plataforma, o que comprova que a ordem nao foi mandada pra bolsa, portanto nao fica na "Pedra". Se o proprio profissional de TI da corretora me confirmou isso, e so mais uma comprovacao, ou sera que nem ele nao entende do que implementou e ambos estamos loucos?

Agora, se isso e uma limitacao da plataforma ou da forma que foi implementada pela corretora eu nao sei dizer, o que sei e que peca no quesito execucao, o que e crucial em termos de operacoes reais. E pelo HB deles isso nao ocorre.

Agora, se ao ser usado atraves de robo e executado de outra forma eu nao sei dizer. Mas para o meu uso que e discricionario usando boletas ou chart trading nao rola.

Desculpe se me expressei mal, mas seria bom verificar isso com as corretoras brasileiras, pois afinal voce acaba passando uma informacao que nao condiz com o que tenho experienciado.

Abraco

Razão: