Critério para execução de ordem em conta demo

 

Prezados,

Estou testando um EA na conta demo da XP e estou com dúvida de qual(is) o(s) critério(s) especificamente para que o uma ordem seja efetivamente executada.

Até o momento entendia que a única condição deveria ser igual ou "melhor" que o valor da oferta disponível no momento. Por exemplo, se quero fazer uma compra, deve haver uma oferta disponível (ASK) com valor igual ou maior o que da minha ordem.

Pois bem, fiz um EA de teste que verifica o valor da oferta no momento (e também o volume) e envio uma ordem limite neste mesmo valor (simulando uma ordem a mercado). Eu notei que o ordem fica pendente por algum período antes de ser executada, mesmo tendo oferta igual ou melhor disponível no momento.

Existe alguma condição ou aspecto que não estou prestando atenção?

Obs: não testei na conta real. Imagino que na conta real isto não pode (deve) acontecer!

Obrigado.

Abraços,

André Barbisan.

 
barbisan

Obrigado.

Olá barbisan,

você diz que "se quero fazer uma compra, deve haver uma oferta disponível (ASK) com valor igual ou maior o que da minha ordem".

A qual tipo de ordem especificamente você está se referindo?

Se for uma oferta a mercado, o preço é de pouca relevância, uma vez que o tipo de preenchimento de sua ordem vai determinar se a mesma irá ou não ser executada.

Mas se for uma ordem limite, ela ficará na pedra se o preço da ordem for menor que o ASK (no caso de ordens de compra); entretanto, se o preço da ordem for maior ou igual ao ask (ordens de compra), então você executará sua ordem, sendo que sua correta execução dependerá do volume disponível no book e do tipo de preenchimento definido em sua própria ordem;

Abraços,
Malacarne 

 
Malacarne:

Olá barbisan,

você diz que "se quero fazer uma compra, deve haver uma oferta disponível (ASK) com valor igual ou maior o que da minha ordem".

A qual tipo de ordem especificamente você está se referindo?

Se for uma oferta a mercado, o preço é de pouca relevância, uma vez que o tipo de preenchimento de sua ordem vai determinar se a mesma irá ou não ser executada.

Mas se for uma ordem limite, ela ficará na pedra se o preço da ordem for menor que o ASK (no caso de ordens de compra); entretanto, se o preço da ordem for maior ou igual ao ask (ordens de compra), então você executará sua ordem, sendo que sua correta execução dependerá do volume disponível no book e do tipo de preenchimento definido em sua própria ordem;

Abraços,
Malacarne 

Obrigado Malacarne.

Na verdade, deveria ter especificado que estou falando especificamente de ordem limite.

Eu fiz testes pelo próprio terminal do MT5 e, por exemplo, quando enviei uma ordem limite de compra com o preço igual ao Ask (ou até maior), ela ficou na pedra por algum tempo antes de ficar como filled. O volume usado foi o minimo para garantir que este não seria o problema.

Eu fiz o mesmo teste, neste mesmo momento, com ordem a mercado e executou imediatamente.

Por isso achei estranho, pois entendia que a ordem limite deveria ser executada instantaneamente.

A propósito, estou usando a conta demo da XP. Não testei em conta real. Imagino que deva executar imediatamente na conta real.

A dúvida é: qual o trigger que o terminal do MT5 usa para ter como executada uma ordem limite? (levando em conta que o preço e o volume estão OK).

Obrigado.

Abraços,

André Barbisan.

 
barbisan :

Obrigado Malacarne.

Na verdade, deveria ter especificado que estou falando especificamente de ordem limite .

Eu fiz testes pelo próprio terminal do MT5 e, por exemplo, quando enviei uma ordem limite de compra com o preço igual ao Ask (ou até maior), ela ficou na pedra por algum tempo antes de ficar como filled. O volume usado foi o minimo para garantir que este não seria o problema.

Eu fiz o mesmo teste, neste mesmo momento, com ordem a mercado e executou imediatamente.

Por isso achei estranho, pois entendia que a ordem limite deveria ser executada instantaneamente.

A propósito, estou usando a conta demo da XP. Não testei em conta real. Imagino que deva executar imediatamente na conta real.

A dúvida é: qual o trigger que o terminal do MT5 usa para ter como executada uma ordem limite? (levando em conta que o preço e o volume estão OK).

Obrigado.

Abraços,

André Barbisan.

Volume é irrelevante com conta demo.

Veja https://www.metatrader5.com/en/mobile-trading/iphone/help/trade/general_concept/order_types

 

Obrigado angevoyageur.

Neste mesmo texto diz que o critério é realmente baseado no preço da oferta de compra ou venda.

Mas, sinceramente, não entendi porque quando este critério é atendido a ordem não é executada imediatamente.

Agradeço se alguém souber explicar.

Obrigado.

Abraços.

André Barbisan.

 

Estava lendo novamente a documentação e entendi que a Ordem Pendente (Buy Limit, por exemplo), não é enviada pelo terminal quando não for "triggered". Ou seja, tem que ocorrer um novo negócio com preço igual ou "melhor" do que preço colocado na ordem. Meu entendimento está correto?

Provavelmente este seja o porque da minha ordem não seja executada imediatamente quando submetida, mesmo existindo uma melhor oferta compatível.

Pergunta: qual o tipo de ordem que envia a ordem imediatamente pelo terminal (que fique registrada na bolsa) e que tenha um preço pré-definido pelo usuário? Existe isso no MT5?

Obrigado!

Abraços,

André Barbisan.

 
barbisan :

Obrigado  angevoyageur .

Neste mesmo texto diz que o critério é realmente baseado no preço da oferta de compra ou venda.

Mas, sinceramente, não entendi porque quando este critério é atendido a ordem não é executada imediatamente.

Agradeço se alguém souber explicar.

Obrigado.

Abraços.

André Barbisan.


Seu pendente será acionado (tornar-se uma ordem de mercado) quando Último (Last) preço toca ao preço da ordem.

  • For symbols with the "Exchange execution" mode, all the types of pending orders trigger according to the Last price (price of a last executed deal). In other words, an order triggers when the Last price touches the price specified in the order. But note that buying or selling as a result of triggering of an order is always performed by the Bid and Ask prices.
 

Valeu angevoyageur.

Foi exatamente o que comentei!

Trigger significa enviar a ordem do terminal do MT5 para a corretora (ocorre quando um novo negócio acontece com preço igual ou "melhor").

A execução (Buying ou Selling), porém, só ocorre quando o preço da oferta (Bis ou Ask) atinge o preço da ordem.

DUVIDA: qual o tipo de ordem que envia a ordem imediatamente pelo terminal (que fique registrada na bolsa) e que tenha um preço pré-definido pelo usuário? Existe isso no MT5?

Abraços,

André Barbisan.

 
barbisan :

Valeu  angevoyageur .

Foi exatamente o que comentei!

Trigger significa enviar a ordem do terminal do MT5 para a corretora (ocorre quando um novo negócio acontece com preço igual ou "melhor").

A execução (Buying ou Selling), porém, só ocorre quando o preço da oferta (Bis ou Ask) atinge o preço da ordem.

DUVIDA:  qual o tipo de ordem que envia a ordem imediatamente pelo terminal (que fique registrada na bolsa) e que tenha um preço pré-definido pelo usuário? Existe isso no MT5?

Abraços,

André Barbisan.

Desculpe, eu usei a tradução automática, o que não parece bom o suficiente.
 

Olá barbisan,

acho que agora eu entendi o que está acontecendo com você, vamos lá.

DUVIDA:  qual o tipo de ordem que envia a ordem imediatamente pelo terminal (que fique registrada na bolsa) e que tenha um preço pré-definido pelo usuário? Existe isso no MT5?

Foi o que o Malacarne falou, as ordens limit ficam na pedra, você define o valor delas e envia para o servidor. É possível visualizar ela no book de ofertas do mt5 e no XP Pro.

Já na conta demo, hoje eu vi algo que nunca havia reparado, creio que seja exatamente a mesma situação sua.

Os meus testes foram o seguinte na conta demo:

Tenho 2 EA's que diferem somente no tipo da ordem, um é a mercado e o outro é limit.

em caso de uma compra, o EA a mercado executa a ordem no preço de fechamento (bid), ele não leva em conta as ofertas de vendas

já o EA com limit a 5pts acima de bid (em um cenário real em que o spread é de 5pts, a ordem seria que nem a mercado), a execução não foi instantânea, ela foi executada somente quando o fechamento foi igual ao valor da ordem.

Se fosse em um cenário real, o EA com execução a mercado, na melhor das hipóteses(spread=5), seria executado 5pts acima de bid, o mesmo que o limit.

Achei esquisito esse tipo de comportamento...

Para EA's que seguram posições por um longo período de tempo, não deve haver tanto problema, já aqueles que dão tiro curto, em uma conta real podem ser um desastre, justamente por não levar em conta o book de ofertas.

Se eu errei em algo, por favor me corrijam.

Abraços,

Romeu.

 

Obrigado Romeu.

A propósito, eu li muito da documentação do MT5 sobre ordens...

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.

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.

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.

Ainda sobre Pending Order, o preço de disparo é de acordo com o preço do último negócio. Já o preço de execução da ordem é de acordo com a melhor oferta (Ask ou Bid).

Por todos os testes que fiz (somente em conta demo da XP), não encontrei nenhuma "divergência" na descrição acima... E, para os mais experientes, favor me corrigir se estou com algum entendimento incorreto.

Bom, a minha necessidade real seria a Instant Execution ou Request Execution que, infelizmente, não esta disponível na XP.

Porém, se houver alguma solução contorno, agradeço se me informarem.

Abraços,

André Barbisan.

Razão: