Ordem Start no Metatrader 5

 

Pessoal,

alguém pode ajudar com a ferramenta?

 

Como enviar ordem start de compra e de venda no MetaTrader5?

 

Ou seja, uma ordem que fica esperando o preço atingir aquele valor para ser disparada?

 

Desde já agradeço.

 

Como enviar ordem start de compra e de venda no MetaTrader5?

Olá dasarobr,

seria interessante se você pudesse nos mostrar onde, exatamente, você está "empacado"... caso tenha trechos específicos de código, por favor poste-os aqui, para que possamos auxiliá-lo com sua dúvida.

Nesse meio tempo, seria interessante você ir estudando um pouco sobre os tipos de ordens que o MetaTrader coloca, uma vez que as ordens do tipo start podem ser de dois tipos básicos: Buy/Sell Stop e também Buy/Sell Stop Limit.

Assim que você estiver familiarizado com esses tipos de ordens, seria interessante estudar e estrutura de dados necessária para que essas ordens possam ser enviadas pelo MetaTrader.

Espero ter ajudado.

Abraços,
Malacarne 

 
dasarobr:

Como enviar ordem start de compra e de venda no MetaTrader5?


Olá dasarobr, o que você está buscando se chama 'ordens pendentes' no MT5, como a tabela abaixo (a partir das ordens a mercado) que você encontra na documentação de propriedades das ordens.

ENUM_ORDER_TYPE

Identifier

Description

ORDER_TYPE_BUY

Market Buy order

ORDER_TYPE_SELL

Market Sell order

ORDER_TYPE_BUY_LIMIT

Buy Limit pending order

ORDER_TYPE_SELL_LIMIT

Sell Limit pending order

ORDER_TYPE_BUY_STOP

Buy Stop pending order

ORDER_TYPE_SELL_STOP

Sell Stop pending order

ORDER_TYPE_BUY_STOP_LIMIT

Upon reaching the order price, a pending Buy Limit order is places at the StopLimit price

ORDER_TYPE_SELL_STOP_LIMIT

Upon reaching the order price, a pending Sell Limit order is places at the StopLimit price

 
Uma forma de entender bem esses tipos de ordens pendentes é entender a nomenclatura de STOP e LIMIT no tipo de ordem.

Para isso, pense como LIMIT o T/P e STOP o S/L de sua posição, considerado a partir do preço no momento do envio da ordem.

Uma dica para facilitar teu desenvolvimento é que as ordens pendentes devem aparecer no terminal juntamente com as posições abertas, e se você conseguir programar corretamente irá visualizar essas ordens após a execução (ou seja, existe uma forma fácil de validar seu código fonte) e após elas se transformarem em posições, caso os preços alvo sejam atingidos.

 
figurelli:

Olá dasarobr, o que você está buscando se chama 'ordens pendentes' no MT5, como a tabela abaixo (a partir das ordens a mercado) que você encontra na documentação de propriedades das ordens.

ENUM_ORDER_TYPE

Identifier

Description

ORDER_TYPE_BUY

Market Buy order

ORDER_TYPE_SELL

Market Sell order

ORDER_TYPE_BUY_LIMIT

Buy Limit pending order

ORDER_TYPE_SELL_LIMIT

Sell Limit pending order

ORDER_TYPE_BUY_STOP

Buy Stop pending order

ORDER_TYPE_SELL_STOP

Sell Stop pending order

ORDER_TYPE_BUY_STOP_LIMIT

Upon reaching the order price, a pending Buy Limit order is places at the StopLimit price

ORDER_TYPE_SELL_STOP_LIMIT

Upon reaching the order price, a pending Sell Limit order is places at the StopLimit price

 
Uma forma de entender bem esses tipos de ordens pendentes é entender a nomenclatura de STOP e LIMIT no tipo de ordem.

Para isso, pense como LIMIT o T/P e STOP o S/L de sua posição, considerado a partir do preço no momento do envio da ordem.

Uma dica para facilitar teu desenvolvimento é que as ordens pendentes devem aparecer no terminal juntamente com as posições abertas, e se você conseguir programar corretamente irá visualizar essas ordens após a execução (ou seja, existe uma forma fácil de validar seu código fonte) e após elas se transformarem em posições, caso os preços alvo sejam atingidos.

figurelli, muito obrigado pela resposta. ;-)
 
Malacarne:

Olá dasarobr,

seria interessante se você pudesse nos mostrar onde, exatamente, você está "empacado"... caso tenha trechos específicos de código, por favor poste-os aqui, para que possamos auxiliá-lo com sua dúvida.

Nesse meio tempo, seria interessante você ir estudando um pouco sobre os tipos de ordens que o MetaTrader coloca, uma vez que as ordens do tipo start podem ser de dois tipos básicos: Buy/Sell Stop e também Buy/Sell Stop Limit.

Assim que você estiver familiarizado com esses tipos de ordens, seria interessante estudar e estrutura de dados necessária para que essas ordens possam ser enviadas pelo MetaTrader.

Espero ter ajudado.

Abraços,
Malacarne 

Malacarne, muito obrigado pela resposta.
 

figurelli:

Obrigado pela sua contribuição!

Gostaria de solicitar a sua confirmação no teste do meu entendimento...

No HomeBroker, quando coloco uma ordem de compra, por exemplo, tenho duas situações usualmente:

1. Compra simples, onde o preço usualmente é colocado abaixo do preço atual. Neste caso, a ordem é enviada e registrada imediatamente na bolsa.

2. Compra com start, onde o preço usualmente é mais alto que o atual e existe também um preço de trigger. Neste caso, a ordem não é enviada para a bolsa imediatamente, mas somente após atingir o trigger.

Para o item 1 (Compra simples), entendo que deveria usar o identificador ORDER_TYPE_BUY_LIMIT. Neste caso, configuraria os parâmetros ‘tp’ e ‘sl’ como ZERO.

Para o item 2 (Compra com start), entendo que deveria usar o identificador ORDER_TYPE_BUY_STOP_LIMIT. Neste caso, o ‘price’ é o valor do trigger e o ‘sl’ é o valor de compra efetivo.

Além disso, entendo que o campo ‘action’ deve ser configurado necessariamente como TRADE_ACTION_PENDING.

Estou correto na minha avaliação?

Abraços,

André Barbisan.

 
barbisan:


1. Compra simples, onde o preço usualmente é colocado abaixo do preço atual. Neste caso, a ordem é enviada e registrada imediatamente na bolsa.

2. Compra com start, onde o preço usualmente é mais alto que o atual e existe também um preço de trigger. Neste caso, a ordem não é enviada para a bolsa imediatamente, mas somente após atingir o trigger.

Para o item 1 (Compra simples), entendo que deveria usar o identificador ORDER_TYPE_BUY_LIMIT. Neste caso, configuraria os parâmetros ‘tp’ e ‘sl’ como ZERO.

Para o item 2 (Compra com start), entendo que deveria usar o identificador ORDER_TYPE_BUY_STOP_LIMIT. Neste caso, o ‘price’ é o valor do trigger e o ‘sl’ é o valor de compra efetivo.

Além disso, entendo que o campo ‘action’ deve ser configurado necessariamente como TRADE_ACTION_PENDING.


Olá André, segue minha análise:

Item 1) o tipo de ordem está correto, mas note que o TP/SL podem (e devem, na minha opinião, no caso do SL) serem 'setados' como qualquer outra ordem. Note que aqui no preço atual você tem justamente um ponto de TP, por isso o nome BUY_LIMIT para esse tipo de ordem pendente (considere o LIMIT como o objetivo do trade).

Item 2) pelo que entendi você precisaria apenas de uma ORDER_TYPE_BUY_STOP já que seu gatilho pode ser programado de forma similar ao Item 1, apenas nesse caso o gatilho está acima e não abaixo do preço atual. Note que aqui, no preço atual, você tem justamente um ponto de SL, por isso o nome BUY_STOP para esse tipo de ordem pendente.

Quanto ao campo 'action' (ENUM_TRADE_REQUEST_ACTIONS) é isso mesmo.

Abraço e bons trades automáticos! 

 

figurelli: 

Obrigado pela resposta!

O conceito parece simples (e tenho convicção que o é), mas quando tento fazer um paralelo com o sistema usual de ordens do homebroker, não consigo ver um De-Para muito claro... Fiz alguns testes na conta demo e entendi que, quando seto um valor para TP ou SL, estou programando o equivalente a duas ordens: uma inicial de compra ou venda e, quando esta for executada, é inserida uma segunda ordem com o Take Profit e Stop Loss. Favor, confirme se não estou dizendo bobagem...

Ainda não fiz testes na conta real, por isso, não pude ainda verificar no terminal de ordens do homebroker da XP... Ainda não ficou claro quando se usa gatilhos (por exemplo com o identificador ORDER_TYPE_BUY_STOP), onde devo programar os valores de disparo e do preço de compra. Entendo que não é nos parâmetros TP e SL. Certo? Pode informar exatamente onde devo inserir estes valores?

Aproveitando tenho outra pergunta: na conta demo (backtesting), o MT5 analisa o volume de títulos para a efetivação de uma compra ou venda?

Pelos teste que fiz, não! Ou seja, testei ordens com alto volume de títulos em ativos de baixíssima liquidez e, mesmo sabendo que não houve volume suficiente no dia, o MT5 registrou a posição com o volume total solicitado. Pode esclarecer por favor?

Muito obrigado pela ajuda aos que estão aprendendo o MT5.

Abraços.

 
barbisan:

figurelli: 

Obrigado pela resposta!

O conceito parece simples (e tenho convicção que o é), mas quando tento fazer um paralelo com o sistema usual de ordens do homebroker, não consigo ver um De-Para muito claro... Fiz alguns testes na conta demo e entendi que, quando seto um valor para TP ou SL, estou programando o equivalente a duas ordens: uma inicial de compra ou venda e, quando esta for executada, é inserida uma segunda ordem com o Take Profit e Stop Loss. Favor, confirme se não estou dizendo bobagem...

Ainda não fiz testes na conta real, por isso, não pude ainda verificar no terminal de ordens do homebroker da XP... Ainda não ficou claro quando se usa gatilhos (por exemplo com o identificador ORDER_TYPE_BUY_STOP), onde devo programar os valores de disparo e do preço de compra. Entendo que não é nos parâmetros TP e SL. Certo? Pode informar exatamente onde devo inserir estes valores?

Aproveitando tenho outra pergunta: na conta demo (backtesting), o MT5 analisa o volume de títulos para a efetivação de uma compra ou venda?

Pelos teste que fiz, não! Ou seja, testei ordens com alto volume de títulos em ativos de baixíssima liquidez e, mesmo sabendo que não houve volume suficiente no dia, o MT5 registrou a posição com o volume total solicitado. Pode esclarecer por favor?

Muito obrigado pela ajuda aos que estão aprendendo o MT5.

Abraços.

Olá André, você não precisa programar duas ordens já que pode definir o SL/TP na mesma ordem de compra/venda. Minha sugestão é realmente fazeres testes em conta demonstração, pois em conta real essas ordens devem funcionar da mesma forma.

Quanto à segunda pergunta, realmente o backtesting e a operação em conta demonstração é apenas uma emulação da realidade, principalmente nessa questão de liquidez de mercado e volume operacional. Portanto todo cuidado é pouco e esse é um dos pontos que apresento como de risco em meu checklist que deve ser verificado antes de operar com robôs em conta real.

 

Olá pessoal, estou usando uma conta demo da XM, mas não estou vendo meu gráfico movimentar e toda vez que eu abro uma ordem ele fala que estou sem capital, mas tenho, não estou entendendo nada e queria saber também como adcionar sinais free. Grata

Razão: